Skip to content

Decisions

One decision per record: what was chosen, what was rejected, and what it cost.

Record Status Date
Record kudos movements as events; keep balances as projections accepted 2026-07-24
Separate currency postings from statistic postings accepted 2026-07-24
Fold events with one database-serialized projector accepted 2026-07-24
Admit spends under a payer lock against reserved availability accepted 2026-07-24
Cut over through a temporary shadow mode accepted 2026-07-24
Keep the archive permanent and repair only by compensation accepted 2026-07-24
Match each accounting table's foreign keys to its lifetime accepted 2026-07-24
Promote users to trusted inside the projector accepted 2026-07-24
Balance every currency event against system accounts proposed 2026-07-25
Gate mode pins and transitions on an advisory lock accepted 2026-07-25
Separate sampler trajectory, estimated work, and execution ceilings accepted 2026-08-18
Publish versioned sampler contracts from one authoritative registry accepted 2026-08-18
Treat image job TTL as a conservative prefetch lease accepted 2026-08-18
Quarantine deterministically invalid statistic events without stopping the projector accepted 2026-08-30
Decay moderation evidence in tiers under an anonymizing ceiling accepted 2026-09-29
Protect koboldcpp instruct placeholders and publish the style contract accepted 2026-09-13
Keep evidence text in object storage and bound rejection floods with countermeasures accepted 2026-09-30
Carry chat requests as a text request subtype accepted 2026-10-28
Select chat service behaviour through a horde request body object accepted 2026-10-28
Select chat service behaviour through base-URL service profiles rejected 2026-10-28
Declare chat capabilities by pop fields alone accepted 2026-10-28
Run the chat front as a separate ASGI process woken by a Redis signal accepted 2026-10-28
Stream chat deltas through a retained Redis stream per request accepted 2026-10-28
Stream chat deltas through progress rows in Postgres rejected 2026-10-28
Classify client retries at the front and recover ambiguous submits by operation key accepted 2026-10-28
Price chat generations by the text output estimate, with the basis isolated accepted 2026-10-28
Price chat generations on reported completion tokens rejected 2026-10-28
Route by declared parameter support and refuse unsupported values accepted 2026-10-28
Route by declared parameter support and drop unsupported sampling values by default rejected 2026-10-28
Prefer the worker that last served a conversation's prefix rejected 2026-10-28
Send chat images to workers by the transport each worker declares accepted 2026-10-28
Fill OpenAI sampling defaults server-side and map the developer role to system accepted 2026-10-28
Map chat errors to the OpenAI envelope with OpenRouter's status vocabulary accepted 2026-10-28
Keep anonymous access on the chat front accepted 2026-10-28
Route chat requests by declared guarantees under a conformance mode accepted 2026-10-28
Size the free output allowance by the request's estimated wait accepted 2026-10-28
Lease text jobs for a fixed term renewed by progress accepted 2026-10-28
Settle requests after cancellation and repeated faults accepted 2026-10-28
Estimate text queue wait from the request's eligible workers accepted 2026-10-28
Enforce the speed gate for chat requests and shadow it for legacy text accepted 2026-10-30
Keep 30 days of exact kudos history online, roll statistics up by day, and archive currency rows accepted 2026-11-04

Relationships

An edge points from a record to a record it references.

flowchart TD
    r0001["0001: Record kudos movements as events; kee…"]
    r0002["0002: Separate currency postings from stati…"]
    r0003["0003: Fold events with one database-seriali…"]
    r0004["0004: Admit spends under a payer lock again…"]
    r0005["0005: Cut over through a temporary shadow m…"]
    r0006["0006: Keep the archive permanent and repair…"]
    r0007["0007: Match each accounting table's foreign…"]
    r0008["0008: Promote users to trusted inside the p…"]
    r0009["0009: Balance every currency event against…"]
    r0010["0010: Gate mode pins and transitions on an…"]
    r0011["0011: Separate sampler trajectory, estimate…"]
    r0012["0012: Publish versioned sampler contracts f…"]
    r0013["0013: Treat image job TTL as a conservative…"]
    r0014["0014: Quarantine deterministically invalid…"]
    r0015["0015: Decay moderation evidence in tiers un…"]
    r0017["0017: Protect koboldcpp instruct placeholde…"]
    r0018["0018: Keep evidence text in object storage…"]
    r0019["0019: Carry chat requests as a text request…"]
    r0020["0020: Select chat service behaviour through…"]
    r0021["0021: Select chat service behaviour through…"]
    r0022["0022: Declare chat capabilities by pop fiel…"]
    r0023["0023: Run the chat front as a separate ASGI…"]
    r0024["0024: Stream chat deltas through a retained…"]
    r0025["0025: Stream chat deltas through progress r…"]
    r0026["0026: Classify client retries at the front…"]
    r0027["0027: Price chat generations by the text ou…"]
    r0028["0028: Price chat generations on reported co…"]
    r0029["0029: Route by declared parameter support a…"]
    r0030["0030: Route by declared parameter support a…"]
    r0031["0031: Prefer the worker that last served a…"]
    r0032["0032: Send chat images to workers by the tr…"]
    r0033["0033: Fill OpenAI sampling defaults server-…"]
    r0034["0034: Map chat errors to the OpenAI envelop…"]
    r0035["0035: Keep anonymous access on the chat fro…"]
    r0036["0036: Route chat requests by declared guara…"]
    r0037["0037: Size the free output allowance by the…"]
    r0038["0038: Lease text jobs for a fixed term rene…"]
    r0039["0039: Settle requests after cancellation an…"]
    r0040["0040: Estimate text queue wait from the req…"]
    r0041["0041: Enforce the speed gate for chat reque…"]
    r0042["0042: Keep 30 days of exact kudos history o…"]
    r0001 --> r0003
    r0001 --> r0004
    r0001 --> r0005
    r0001 --> r0006
    r0002 --> r0006
    r0002 --> r0007
    r0003 --> r0001
    r0003 --> r0005
    r0003 --> r0014
    r0004 --> r0001
    r0004 --> r0003
    r0005 --> r0003
    r0005 --> r0008
    r0005 --> r0010
    r0006 --> r0005
    r0007 --> r0002
    r0007 --> r0014
    r0008 --> r0003
    r0008 --> r0005
    r0008 --> r0006
    r0010 --> r0005
    r0012 --> r0011
    r0013 --> r0011
    r0014 --> r0003
    r0014 --> r0007
    r0017 --> r0012
    r0018 --> r0015
    r0019 --> r0022
    r0019 --> r0024
    r0019 --> r0026
    r0019 --> r0027
    r0019 --> r0037
    r0019 --> r0038
    r0019 --> r0039
    r0019 --> r0040
    r0020 --> r0021
    r0020 --> r0026
    r0020 --> r0036
    r0021 --> r0020
    r0022 --> r0036
    r0024 --> r0023
    r0024 --> r0025
    r0024 --> r0038
    r0025 --> r0024
    r0027 --> r0024
    r0027 --> r0028
    r0028 --> r0027
    r0029 --> r0022
    r0029 --> r0030
    r0029 --> r0036
    r0030 --> r0029
    r0034 --> r0026
    r0035 --> r0037
    r0036 --> r0020
    r0036 --> r0022
    r0036 --> r0027
    r0036 --> r0029
    r0036 --> r0033
    r0042 --> r0002
    r0042 --> r0003
    r0042 --> r0006
    r0042 --> r0007
    r0042 --> r0010
    r0042 --> r0014
    r0042 --> r0015
    r0042 --> r0038
    r0042 --> r0039