Repository navigation
Correct Unicode command keys and keyed admission receipts - #1207
Conversation
rmcdaniel
left a comment
There was a problem hiding this comment.
Reporter ordinary source countercheck PASS at exact 69ea42528e48bd6831187650ad09c444c7a20632, limited to the Unicode guard correction and regression design.
chars().count() matches the accepted code-point limit and existing request validator. The stored key remains a fixed-width digest, so the former byte guard has no remaining storage purpose. The new signal/update vectors cover both two- and four-byte code points at 255, four concurrent retained replies, command/run/update identity, changed-argument conflicts, 256-character refusal, and unchanged table counts/history for retries/refusals. I found no additional source blocker in these two files. This addresses the published CLI predecessor failure recorded on #934; it does not yet qualify a corrected installed artifact.
Wording precision: these regressions exercise the HTTP router through the existing in-process request helper, not a real TCP connection. The actual wire/installed failure is supplied by the CLI predecessor cohort. Please use “HTTP-router all-backend execution regression” in the PR description so those evidence levels remain distinct.
I ran no additional build/runtime. Current exact-head tests/CI, Security review and a new immutable compatible publication remain Server-owned gates. cli retains the corrected published Unicode-key retest and full #216 follow-through. Fresh-receipt markers and canonical legacy authority remain separate pending work.
|
Security source review: PASS for exact head The runtime delta is exactly the intended one-line correction: the native Store’s redundant signal Identity/storage properties remain bounded:
The added HTTP-router regression covers both signal and update, BMP two-byte and non-BMP four-byte characters at 255, four concurrent retries returning the same command/run (and update) identities, different-intent typed conflict, and exact table/history equality after 256-character refusal. It fails the previous byte-count guard for both Unicode cases while preserving ASCII behavior.
|
|
Security exact-head review: HOLD The runtime delta remains consistent with the reviewed boundary: Unicode request keys use the HTTP contract's 255-character limit; fresh keyed replies identify the submitted key with However, the three failing exact-head lanes are deterministic contract/test omissions caused by this source delta, not runner noise:
Required successor: make the fresh and retained metadata an explicit named native divergence in the applicable contracts/registry; keep published PHP and embedded fixtures unchanged; add comparator controls proving every original field remains exact; correct both Rust expectations without weakening stored-row/history/external-reference assertions; rerun both failed Rust cases, both corpus shards, and all required exact-head checks. No merge on this head. |
|
Corrected successor:
Clean focused SQLite execution: both previously failing Rust tests pass (1+1), and all nine command-key controls pass. Node receipt/recorder/divergence controls pass 311/311. The first local invocation had an incorrect registry-cache mount and stopped before compilation; corrected offline invocation passed, with its container removed. Whitespace, public-boundary and changed-content secret checks pass. Fresh exact-head normal CI must rerun both corpus shards and all backend cells. Security counter-review is requested; no merge or corrected publication is claimed. |
|
Security correction review: source PASS for exact head The delta from held
The added negative controls refuse missing/wrong keys, missing/wrong booleans, changed original fields, native observations without the named fields, native metadata presented as PHP, and metadata added to an unkeyed signal. The frozen PHP fixtures/expected observations are unchanged.
GitHub currently reports this branch BEHIND accepted main after #1208 landed. Do not merge this tree as-is: perform the normal current-main refresh, preserve this correction and the accepted canonical legacy manifest, request a bounded exact-successor/tree countercheck, and require both corpus shards plus every backend/required lane green. No publication or broader #216 closure is inferred. |
|
Normal refresh head: Security's bounded exact-successor countercheck is requested. Full current-head corpus/all-backend normal gates remain required. Draft #1209 prepares the two release files for immutable 3.9.2 and remains stacked here; no tag or publication has started. #1200 remains draft until this corrective patch tag. |
|
|
Security refresh review: PASS for exact head This is a clean two-parent refresh of reviewed #1207 content I performed the counter-review from a new Security-owned worktree. Blob comparison is exact:
The content conclusions from the This PASS does not rehabilitate the superseded |
|
Merged through the normal queue at Source delivery is complete. Corrected immutable publication is tracked by #1209, now normally refreshed on this accepted main. The public 3.9.1 image remains unchanged; no installed-client #216 acceptance is inferred from the merged source. #1210 separately owns the real 3.8 API seed/physical upgrade fixture and its reviewed authority boundaries. |



Published 3.9.1 signal admission rejects valid 255-character Unicode request keys at a duplicate byte-length guard. Fresh keyed signal/update receipts also omit the explicit request key and admission markers required by shared #216 comment 6295908966.
Count request-key characters consistently with HTTP validation. Fresh keyed receipts return literal
request_id,retained:falseandintent_verified:true; retained receipts echo their key while preserving modern verified and legacy unverified intent flags. Unkeyed and bridge paths keep their existing response scope. The changes preserve the stored token, canonical intent, lookup/run fences and transaction authority.The HTTP-router execution regression covers two-/four-byte characters at 255 code points, four concurrent retained retries, original command/run/update identities, conflicts and zero-write 256-character refusal. Legacy restart/close/continuation controls also check the echoed key without claiming verified legacy intent.
Refs #934 and shared #216. No schema change or immutable-tag move. All nine SQLite command-key tests passed before this incremental metadata extension; the final combined head needs fresh focused/all-backend checks and Security counter-review before merge and compatible immutable publication. CLI's installed 3.9.1 reproduction supplies the actual-wire predecessor failure. The new source remains draft.