Repository navigation
fix(relay): encode literal review paths as a YAML tree [H3,H16,V8] - #15
McHersheys wants to merge 6 commits into
Conversation
Signed-off-by: McHerpes <mchermes@edu.dreamcatcher.ai>
Signed-off-by: McHerpes <mchermes@edu.dreamcatcher.ai>
Signed-off-by: McHerpes <mchermes@edu.dreamcatcher.ai>
Signed-off-by: McHerpes <mchermes@edu.dreamcatcher.ai>
|
Minimum-supported Node gate at Smallest source/test remedies:
Other blockers remain: the fixture lacked Chrome, make, lsof and release-tag refs; the privacy guard flags unchanged upstream |
Signed-off-by: McHerpes <mchermes@edu.dreamcatcher.ai>
|
Pushed focused repairs in
Node v22.13.0 / npm10.9.2: 12 TAP tests PASS, 0 fail/cancel/skip, including nested lease controls: exact help/static-import case (1), static-style suite (2), sealed-review suite (6), exact queued-lease case (3). Three changed-file syntax checks also pass. Upstream runner/timeouts unchanged; owned fixture and descendants cleaned and absence read back. The original full gate remains FAIL (2,574 pass / 154 fail / 1 cancelled / 167 skipped). It was not rerun; the six passing YAML cases and original base/candidate control are retained, not replayed. Missing browser/make/lsof, omitted release-tag fixture refs, unchanged upstream privacy finding and unattributed timing/SQLite/cleanup failures remain unresolved. PR stays draft. No maintainer acceptance, coordinated reader release, mixed-version/deployment qualification, merge or CLA action is claimed. The PR body now distinguishes the fresh focused result from historical evidence. |
Compact only the unsent wire copy after native receipt reconciliation. Preserve durable intent, reverse captures, identity and order; exercise interleaving, lost acknowledgements and unavailable-journal custody. Remove the attribution prefix in the existing release comment without changing the scanner or workflow behavior. Signed-off-by: McHerpes <mchermes@edu.dreamcatcher.ai>
What changed?
Refs #14. Replace this draft's prefix-pair codec with a human-readable YAML block path tree at the existing
verifymove boundary. Every key is a quoted literal component, indentation is canonical,nullexplicitly marks an exact leaf, and an empty-key leaf handles file/directory-prefix cases. This is actual YAML text, not JSON renamed YAML.The dependency-free reader accepts only that documented emitted subset, rejects malformed/duplicate/ambiguous trees, and checks the expanded array's byte length and SHA-256. Stored reviews, snapshots and freshness still use the original sorted unique literal paths. No wildcard semantics, dropped paths, changed notes, larger relay cap, parser dependency or new runtime limit.
Use the tree only when its complete wire object is smaller. Keep upstream's
unassignedEngine()convention; no private engine number is assigned. Active prefix-pair code/docs/tests are replaced; ordinary Git history is retained. Public changes contain generic source, format documentation and synthetic tests only.Requirement rows
H3, H16 and V8. Exact-path freshness (E8, currently draft) is preserved, not generalized. Future generation/reading and native recovery of older queued literal-array reviews are addressed. Durable queued records are not manually rewritten; already sealed pending sends retain their existing custody rules.
Focused verification
At
da998f06ad7b6194b979b71b03c5bc146fbd9351, Node v24.21.0 in an admitted isolated development runtime:Narrow minimum-Node follow-up
At
16b41c5633c678e860bc2def3664fa980bf2b5a8, the three evidenced candidate/test seams are repaired:src/engine.js: one import binding per line; codec behavior is unchanged.test/team-engine.test.js: prepare a valid sender envelope, then inject the malformed receiver review. Sender and receiver validation remain strict.test/resources-lease-fixture.js: the historical negative control is belowSUBMIT_ADMISSION_ENGINE, not current-writer-minus-one. Admission/grant guards andunassignedEngine()are unchanged.Fresh focused qualification: PASS, Node v22.13.0 / npm10.9.2 in an admitted isolated development runtime. Unmodified upstream runner/timeouts:
help names come from the command declarationscase: 1 pass.test/static-style.test.js: 2 pass, including its malformed-import control.test/team-engine.test.js: 6 pass, including malformed receiver reviews and actual released-engine replay.a review waiting in the pool keeps its leasecase: 3 TAP passes including its two nested admission/renewal controls.node --check. Fixture source/scratch and process residue were removed and independently checked absent.The original failed full gate and six passing YAML cases are reused as historical evidence, not replayed or relabelled as a new full-gate PASS. Codec, feature-engine leaf and YAML tests are unchanged. The original base-PASS/candidate-FAIL admission control is retained; only the repaired candidate's affected seam was run here. No live board/relay effects, browser campaign or release/deployment qualification.
Native queued-review recovery increment
Candidate
356af3889a844b6451b4d7e6bb5e5141431a2123is a direct fast-forward from16b41c5633c678e860bc2def3664fa980bf2b5a8. It reuses the codec and completed checks above.sendQueuedapplies the existing smaller-only codec to the resolved, unacknowledged wire copy before sealing. The original move ID, actor, frozen/source/review bindings, logical intent, durable reverse captures and later queued moves are preserved. Native pull/rebuild/receipt reconciliation remains the recovery path; no queue amendment helper or replacement verdict is needed.Fresh Node22.13.0 / npm10.9.2, isolated non-production runtime; unmodified upstream runner/timeouts:
The source tested before publication was
bb1adf674d17acc9b7c2e903e11d399c37f3be96; publication commit has the identical treed0146958fca9878f8d7cfe6e2c74d95cd5ac3c19, integrated directly onto the existing public head with contributor sign-off. No source/test byte change between those identities. The preparatory native history remains in its original custody, not added to the public range.All 13 missing-tag/make failures and the privacy finding now have actual passing follow-ups. The remaining targeted run passed the former expired-auth cleanup and GUI verification-admission cases, but still failed startup/query/local-first performance, concurrent admission (SQLite locked), gate-profile/short-slot/landing waits and parity timeout. No threshold, policy or gate exclusion was changed. These failures are retained, not declared environment-only. A same-envelope exact-base control reproduced startup median183.07ms>100ms, both concurrent-admission SQLite locks, the gate-profile assertion and the short-slot wait: 6 native TAP failures including the nested modes/aggregate. Their test files, runner, resources and gate sources are byte-identical to base; this does not attribute the untested remaining failures or waive any gate.
Still not a full-gate PASS. The original
npm run gateFAIL remains unchanged. A broad rerun is held until a qualified sandboxed Chrome and real absolute-pathlsofare available and the remaining native failures are addressed. The initial browser lookup adapter failed on a missing library path; correcting that task-private path exposed the actual sandbox refusal above. No--no-sandbox, capability/profile weakening, shared tool install or hosted CI compute was used. The commit's[skip ci]keeps this source-only publication from dispatching hosted workflows.Executable CLI/device readers need the normally assigned landed feature engine. The relay keeps payloads opaque; browser ESM reads presentation snapshots and enforces exact engine equality, so its assets still need a coordinated release and actual browser qualification—not the Node codec imported into browser ESM. Maintainers must independently review, finish the minimum-Node gate in a qualified envelope, land/assign the feature engine, and qualify compatible CLI plus hosted assets/presentation before any native recovery. No live queue, runtime, credential, release or production effect was performed.
Why draft / remaining gates
Minimum-supported Node gate attempted: FAIL at
da998f06ad7b6194b979b71b03c5bc146fbd9351with Node v22.13.0 / npm10.9.2:npm run gateexited1. Native summary: 2,574 pass, 154 fail, 1 cancelled and 167 skipped (2,896 total). Wall-clock/spec stages and all six YAML regressions passed within that same run. The three candidate/test seams are repaired and focused-qualified above; the remaining original failures are tracked by the newer partial results above, not a new full-gate run. The review-handoff comment records the exact failures and smallest remedies; no full-gate PASS is claimed.The historical failure classes are retained in the original report. Their current disposition is recorded above: public refs, make, privacy and two formerly failing native cases have passing follow-ups; Chrome/lsof and the other named native failures still hold readiness. No waiver or full-gate PASS is claimed.
Not qualified: hosted browser runtime or mixed-version release/deployment qualification. Maintainer/second-verifier review of the relay/verification seam remains required.
Landing must assign the feature engine normally and release CLI plus hosted reader assets together. Older CLI engines stop before receipt/cursor changes; the current hosted browser's exact-engine check also stops, so this is not transparent mixed-version compatibility. The hosted
/relay/engine.jsderives its version from the package. Browser code consumes presentation snapshots rather than executable review args: do not import this Node-only codec into served browser ESM.