Repository navigation
Conversation
Admit the seven F6 messages only from their exact target and level, with only their declared fields: bounded integers, fixed enums and keyed space_hash/db_hash of exactly 64 lowercase hex. Any invalid field rejects the whole record into the invalid_fields gate count; raw db names, the pool operation label, error text and nested values are never copied. Typed records bypass the diagnostic reduce. Regenerates the embedded Vector config; fields.json still needs the canonical schema re-pin.
Sam's decision (tc-959-f6-log-cap): the shipper admits at most 10 records per typed code per fixed 60 s window, each of the seven codes counted separately, as defence in depth over the node's per-key limiter. A Lua counter keyed only by the fixed codes enforces it. Excess records are dropped and only their count leaves, as the new typed_throttled gate reason. budget.mjs reserves the cap at each code's widest valid record: 70 records/min, 1,433,376,000 bytes per 30 sustained days.
…-allowlist # Conflicts: # docker-compose.dstack-postgres.yaml # scripts/tc959-docker.test.mjs
This was referenced Oct 19, 2026
Merged
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TC-959 / TC-1274. Log-shipper only: no Rust, node, image, or node per-key limiter change. #309's reviewed sidecar is unchanged except for the regenerated embedded Vector config.
What changes
The N0 Vector sidecar ships the seven TC-1274 (F6) SQL contention diagnostics as typed, per-occurrence records. It no longer folds them into the
unclassifiedcount.diagnostics.jsontypeddeclares each code's exact target, level and field list. The compiler generates straight-line VRL that checks each field against its closed type infields.json: bounded integers, fixed enums, andspace_hash/db_hashmatching^[0-9a-f]{64}$.invalid_fieldsgate count. No partial record ships.dbnames, the pooloperationlabel, error text, nested values.unclassified.event_route.typed_diagnosticsends typed records to the sink without the diagnostic reduce. Untyped codes keep their count aggregation.tc-959-f6-log-cap).throttlewould drop silently.typed_throttledgate reason inlogship_gate_summary_total.budget.mjsreserves the cap at each code's widest valid record (474 B): 70 records/min, 1,990,800 B per storm hour, 1,433,376,000 B per 30 sustained days. The runbook states the trade-off and the totals.VECTOR_CONFIG_JSONline.Known gates before merge
operationis deliberately not admitted;outcomeincludesincomplete.log-shipper/fields.jsonis canonical tinycloud-dev mainda29faa4plus the F6 fields,typed_throttled, and the seven event codes.canonical.jsonis not re-pinned, so CI'stc959-checkschema-pin assertion fails until the canonical F6 schema PR lands with these exact bytes and the pin is updated in this branch.Update
Merged main
65d0e3c9(#346). The embedded Vector config is regenerated with the byte-exact generator, and the N0 pin indocker.yml,docs/releasing.md, the runbook and the CI fixture now names this head's compose, superseding #346's6563d51b….db_hashstays F6-only, and the cap stays at 10 per code per minute.Evidence
Tests were written first and observed RED before the implementation.
errors_slow415/415 andall_requests415/415.node --test34/34;native-checkpassed: the F6 record is exact, no canary reached the console;vector validatepassed;lock_wait→ 10 shipped plustyped_throttled:6; 6 invalid shapes →invalid_fields:6; no canary on wire or console; nodb/operation/error/sqlkeys.No production, secret or Docker access.