Repository navigation
fix(repo): harden engine and cli lifetimes (wave 3 steps 1-8) - #95
Merged
Merged
Conversation
Record PR #94 completion on main and join final reviewed-source evidence. Reconcile living guides, exit criteria and related ADR landing notes while preserving historical ADR bodies, approved limits and open phase work. Validation: merge tree equals reviewed head; relative links and anchors resolve; all 25 ADR edits are append-only; git diff --check passes. This documentation-only update starts no Wave 3 implementation. Refs: #94, ADR-0105, ADR-0106, ADR-0107, ADR-0108, ADR-0109 Co-Authored-By: Codex <[email protected]>
Reconcile historical findings against current source before implementation. Record four proposed decisions, concrete compatibility choices, a confirmed synthetic context-taint leak and the serialized seventeen-step review plan. Dependent implementation awaits maintainer approval. Existing accepted ADRs and product code are unchanged; detailed reviews remain Git-ignored. Validation: 2,882 relative links and anchors resolve; diff check passes. Scoped unchanged-source suites pass 319 tests; no full CI is inferred. Refs: ADR-0110, ADR-0111, ADR-0112, ADR-0113, Wave 3 Co-Authored-By: Codex <[email protected]>
Assign the independently verified omitted UTF-8 resolver correction to the first increment with distinguishing multibyte and overflow controls. Clarify existing structural evidence, process exit dependencies and the required core coverage promotion before whole-wave closure. Record both complete finding-bearing proposal reviews without claiming maintainer approval or implementation acceptance. Fresh review follows. Refs: Wave 3, ADR-0110, ADR-0111, ADR-0112, ADR-0113 Co-Authored-By: Codex <[email protected]>
Record the maintainer choice of public-recipient encrypted CI archival. Propose vetted isolated GnuPG tooling, pinned recipient identity and per-version ciphertext retention beyond workflow artifact expiry. Keep overall ADR and execution-plan approval pending. No production key configuration, archive upload or product implementation is inferred. Fresh cumulative proposal reviews follow this source update. Refs: ADR-0111, Wave 3 Co-Authored-By: Codex <[email protected]>
Record two new complete independent clean cumulative proposal reviews at 3996707, including the selected encrypted CI archive method. The receipt changes no reviewed decision or proposed implementation step. Keep all four ADRs Proposed and dependent code gated on maintainer approval. Existing product acceptance, tests and review scopes are not expanded; detailed working reports remain Git-ignored. Validation: relative links/anchors and diff check pass; four proposed ADR files equal the reviewed bytes; pre-existing ADRs are unchanged. Refs: ADR-0110, ADR-0111, ADR-0112, ADR-0113, Wave 3 Co-Authored-By: Codex <[email protected]>
Correct the token replay premise and define executable process, context, config and packaging contracts before maintainer approval. Split the source-dependent plan into nineteen reviewed increments. Refs: ADR-0110, ADR-0111, ADR-0112, ADR-0113 Co-Authored-By: Codex <[email protected]>
Specify primitive VM outcome transport and uncached private map builds. Define owned diagnostic frames and finite native teardown scope, and reconcile the active roadmap tasks with verified source facts. Refs: ADR-0110, ADR-0111, ADR-0113 Co-Authored-By: Codex <[email protected]>
Keep required package gates independent of production recipients while requiring encryption before any trusted release candidate handoff. Prevent promotion of test artifacts after private maps are discarded. Refs: ADR-0111 Co-Authored-By: Codex <[email protected]>
Attribute both fresh complete clean reviews to the frozen proposal head. Keep all four ADRs Proposed and implementation gated on maintainer approval. Preserve separate feasibility, product and production-release claims. Refs: ADR-0110, ADR-0111, ADR-0112, ADR-0113 Co-Authored-By: Codex <[email protected]>
Reopen prior proposal readiness after the second maintainer source review. Specify per-owner CLI health and teardown, distinct output-failure exits, permissioned release discovery/recovery, live HTTP narrowing across failed Home builds, and finite secret-access semantics with exact result parity. Keep all four ADRs Proposed and product source unchanged. Record explicit compatibility and canonical landing obligations before requesting approval. Refs: ADR-0110, ADR-0111, ADR-0112, ADR-0113 Co-Authored-By: Codex <[email protected]>
Resolve the three verified Medium findings from the complete proposal rereview. Bind fresh release builds to same-attempt discovery, attribute map checks to the original candidate, and preserve complete context/input key ordering while excluding denied values. Keep operational recovery advice and readonly membership back-references explicit. All four ADRs remain Proposed; no product implementation changes. Refs: ADR-0110, ADR-0111, ADR-0113 Co-Authored-By: Codex <[email protected]>
Close the complete proposal review's two Low wording cautions. Identify ADR-0049 clauses 5 and 6, preserve absent-input non-enumerability, and record exact review provenance before the final independent full rounds. Refs: ADR-0110, ADR-0113 Co-Authored-By: Codex <[email protected]>
Resolve the Medium independently verified by both complete final reviewers: non-enumerable accessors still create properties. Keep omitted optional secret inputs truly absent while denying present secret values. Preserve declaration-based template refusal and existing required/default admission. Record the superseded review verdicts and require two new complete rounds. No product implementation or ADR status changes. Refs: ADR-0113 Co-Authored-By: Codex <[email protected]>
Resolve the scheduling conflict independently verified by both complete reviewers. Keep original queue groupings as scope inventory and make the nineteen reviewed increments the sole proposed execution-order authority. Clarify preservation and later-I scope without closing implementation work. Refs: Wave 3, ADR-0110, ADR-0111, ADR-0112, ADR-0113 Co-Authored-By: Codex <[email protected]>
Record two new independent clean complete cumulative reviews at 76065d2 across all fourteen proposal paths and nineteen steps. Keep superseded and nonclean verdicts distinct, preserve exact evidence scope, and request the required approval with all four ADRs still Proposed and code unchanged. Refs: ADR-0110, ADR-0111, ADR-0112, ADR-0113 Co-Authored-By: Codex <[email protected]>
Record maintainer approval of the final four ADRs and nineteen increments. Annotate only replaced historical clauses, append forward notes and retain unshipped reference status until each implementation passes its gates. Reconcile compatibility criteria and record the approved Wave 5a wrap owner. Refs: ADR-0110, ADR-0111, ADR-0112, ADR-0113 Co-Authored-By: Codex <[email protected]>
Share safe owned cleanup without masking primary outcomes, reuse guarded source labels and align UTF-8 prechecks with the parser character ceiling. Make session and picker event handling exhaustive and render bounded live reasoning separately from durable answer text. Preserve host lifetime joins. Full workspace lint/typecheck/test and build pass. Native close regressions exercise real SQLite; four removal controls break the intended regressions and exact restoration is followed by the green complete author suite. Independent complete cumulative review remains pending. Refs: Phase 2.5.5 Wave 3 Step 1, ADR-0103 Co-Authored-By: Codex <[email protected]>
Join two complete clean cumulative reviews and actual author gates. Correct the author file-count sum to 590 without changing product bytes, close the serialized queue findings and advance the live plan to step 2. Refs: Phase 2.5.5 Wave 3 Step 1 Co-Authored-By: Codex <[email protected]>
Validate duplicate parallel branches, typed condition matches and fallback identities at leaf and full boundaries. Share human-gate timeout validation and preserve legacy-compatible logical run fields while refusing present status contradictions. Keep one duplicate diagnostic and safe MCP reasons. Refs: ADR-0023, Phase 2.5.5 Wave 3 Step 2 Co-Authored-By: Codex <[email protected]>
Report schema literal expectations and standalone agent constraint reasons through one internal helper, preserving typed field identities and excluding received payloads. Keep strict unknown-key diagnostics linear. Update the resource-ceiling fixture to isolate ceilings from duplicate admission. Refs: ADR-0023, Phase 2.5.5 Wave 3 Step 2 Co-Authored-By: Codex <[email protected]>
Use the actual inclusive or exclusive schema bound on loader and writer validation failures without echoing the rejected number. Exercise the real config-file boundary as well as the shared formatter. Refs: ADR-0033, Phase 2.5.5 Wave 3 Step 2 Co-Authored-By: Codex <[email protected]>
Attribute shared admission and diagnostic changes, preserved guards and six causal removals to their actual author evidence. Independent complete cumulative review remains required before the next increment. Refs: Phase 2.5.5 Wave 3 Step 2 Co-Authored-By: Codex <[email protected]>
Separate historical structural validation from fresh fallback uniqueness. Persisted session snapshots retain their ordered entries and attempt budgets while authored standalone and inline agents still reject duplicate tuples. Shared regressions retain existing structural and MCP identity checks. Refs: Wave 3 Step 2, ADR-0024, ADR-0086 Co-Authored-By: Codex <[email protected]>
Plant a historical JSON snapshot in real SQLite, then verify history load, listing, full transcript access and session updates preserve it. Fresh agent admission remains a rejecting control; no reader rewrite or deduplication. Refs: Wave 3 Step 2, ADR-0024 Co-Authored-By: Codex <[email protected]>
Name the authored versus historical boundary and record the verified first review finding, real SQLite regression, causal removal and corrected author gates. Two new cumulative clean rounds remain required before Step 3. Refs: Wave 3 Step 2 Co-Authored-By: Codex <[email protected]>
Share structural fields and document invariants across authored and frozen workflows. Keep new branch/gate/fallback checks at author admission while retaining all former historical checks, including parallel uniqueness. Refs: Wave 3 Step 2, ADR-0026, ADR-0083, ADR-0086 Co-Authored-By: Codex <[email protected]>
Use the historical workflow contract for exact frozen-content identity. Pin old-valid/current-author-invalid snapshots and content mismatch refusal. Preserve legacy export entries and qualify current-author round-trip claims. Refs: Wave 3 Step 2, ADR-0026, ADR-0083, ADR-0086 Co-Authored-By: Codex <[email protected]>
Read frozen workflow snapshots through their historical contract. Real SQLite/engine gate controls retain branch order, timeout semantics, outputs and snapshot identity. Export notices name historical validation repair. Refs: Wave 3 Step 2, ADR-0026, ADR-0083, ADR-0086 Co-Authored-By: Codex <[email protected]>
Reconcile the export round-trip scope and frozen workflow reader boundary. Record the second verified review, complete regression/causal evidence and final author gates without claiming acceptance before two new clean rounds. Refs: Wave 3 Step 2, ADR-0026, ADR-0083, ADR-0086 Co-Authored-By: Codex <[email protected]>
Join two new complete cumulative clean rounds at the final corrected source. Close the scoped admission/diagnostic items and certified existing guards; retain exact author/reviewer attribution and historical-reader dispositions. Advance automatically to approved ADR-0113 Step 3 and its security sitting. Refs: Wave 3 Step 2, Wave 3 Step 3, ADR-0113 Co-Authored-By: Codex <[email protected]>
Record the complete nonclean source scope, actual diagnostic disclosures and Node-floor preparation failure without promoting author corrections or older green gates into new independent acceptance. Refs: PR #95, ADR-0110 Co-Authored-By: Codex <[email protected]>
The exact Node floor job already serializes workspaces, but file workers still contend for the unchanged admitted-size preparation bound. Pass the one-worker limit to every existing test script and pin that forwarding in the scheduling guard. Preserve all cases, phase bounds, cache isolation, explicit native concurrency and ordinary required-CI workers. Refs: PR #95, ADR-0111 Co-Authored-By: Codex <[email protected]>
Recheck the permanent Home seal before publishing a failed or successful default-write result. Pin the actual native writer path with a post-seal subscriber witness while preserving the live classified-refusal hint and original finite exit. Refs: PR #95, ADR-0110, ADR-0103 Co-Authored-By: Codex <[email protected]>
Enumerate original-boundary candidates and separator runs natively, retaining the canonical standalone matcher and bounded JWT preview. Derive the diagnostic absence preflight from its existing canonical rule. Retarget boundary controls to their actual guards and name the unchanged stored-header message assertion on accessor-backed native errors. Refs: PR #95, ADR-0080, ADR-0110 Co-Authored-By: Codex <[email protected]>
Run enforced coverage in one file worker, retaining every case, threshold and native concurrency assertion. Give both complete serialized suites a finite 25-minute job budget; per-case bounds remain unchanged. Exercise the actual coverage entry with a fixture child and pin exact arguments, enforcement and nonzero propagation. Refs: PR #95, ADR-0111 Co-Authored-By: Codex <[email protected]>
Record the complete nonclean round, reproduced Home publication fault, source-bound coverage and compatibility failures, and refused missing diagnostic witness. Keep subsequent clean reviews and publication evidence explicitly outstanding. Refs: PR #95, ADR-0110, ADR-0111 Co-Authored-By: Codex <[email protected]>
Build the unchanged standalone matcher and its bounded necessary-prefix preflight from one fragment definition. Absence bypasses dense public candidate loops; present prefixes still use original boundaries and the bounded canonical JWT probe. Keep existing admitted-size controls and five-second limits. Refs: ADR-0110, PR #95 Co-Authored-By: Codex <[email protected]>
Attribute completed reviews and physical evidence to their exact source while retaining the failed publication gate. Record the canonical-prefix correction and renewed complete review, security and publication obligations. Refs: ADR-0110, PR #95 Co-Authored-By: Codex <[email protected]>
Apply the same alphabet narrowing to its single fragment-table declaration without changing control identity, workload or required witnesses. Preserve the superseded review preparation and source-scoped evidence in the owning register. Refs: ADR-0110, PR #95 Co-Authored-By: Codex <[email protected]>
Replace the stale literal/static-analyzer claim with the composed alternation, prefix absence preflight and bounded runtime proof. Preserve the complete R10 low finding and source-scoped author evidence in the owning register. Compiler output with comments removed is identical. Refs: ADR-0110, PR #95 Co-Authored-By: Codex <[email protected]>
The recorded push check exceeded its 25-minute job maximum after 1481 seconds of complete Vitest work plus setup. Give only coverage a finite 30-minute whole-job budget; retain every case, single-worker isolation, case deadlines, thresholds and required dependencies. Pin the updated bound and preserve independent diagnosis. Refs: ADR-0110, PR #95 Co-Authored-By: Codex <[email protected]>
Preserve native storage origin for the fixed session update transaction while validating caller data outside that authority boundary. Actual readonly recovery and foreign-client/accessor refusals cover the export regression. Refs: ADR-0110 Co-Authored-By: Codex <[email protected]>
Replace the preclassified store-error fixture with real SQLite refusals through human and JSON export, preserving successful publication and the unchanged row. Clarify existing refresh, probe and export comments without changing their runtime policy. Refs: ADR-0026, ADR-0110 Co-Authored-By: Codex <[email protected]>
Pin the full eighteen-case command cohort after adding real native human/JSON metadata-refusal controls. Keep every control identity and required witness; update the independent workload guard and living declarations. Refs: ADR-0110 Co-Authored-By: Codex <[email protected]>
Retain R12 CLEAN and R13 NONCLEAN source scopes, the actual SQLite regression, red/green and author gate evidence, preparation failures and the requirement for two new cumulative rounds plus a separate security sitting. Refs: ADR-0110 Co-Authored-By: Codex <[email protected]>
Join the two new complete cumulative clean rounds and separate security sitting after the actual native export repair. Preserve historical failed and source-bound evidence, distinguish live publication criteria, and keep Wave 3 steps 9-19 unstarted. Refs: ADR-0110, ADR-0113, PR #95 Co-Authored-By: Codex <[email protected]>
Prepare the real Home source graph under the existing captured fixture and pending-work owner. Keep the default argv route, service observations, every admission assertion, five-second case bound and actual cleanup joins. Retain the Windows failure and separate source-preparation scope. Refs: ADR-0105, ADR-0110, PR #95 Co-Authored-By: Codex <[email protected]>
Use the neighboring native lifecycle suite budget after Windows migration alone exceeded the default case bound. Join runner and scenario cancellation, retain actual closure and add a safely spied real PID-less spawn regression. Product deadlines and native SQLite busy policy are unchanged. Refs: ADR-0103, ADR-0110, PR #95 Co-Authored-By: Codex <[email protected]>
Record independent preparation and concurrency fixture reviews, retain failed Windows attempts and separate final-source publication criteria. Refs: ADR-0103, ADR-0110, Wave 3 Steps 1-8 Co-Authored-By: Codex <[email protected]>
Correct the supplemental security index and retain NONCLEAN metadata rounds plus the mutable progress-snapshot qualification. Refs: ADR-0103, ADR-0110, PR #95 Co-Authored-By: Codex <[email protected]>
|
cemililik
added a commit
that referenced
this pull request
Oct 19, 2026
PR #95 merged to main as 6d2a737 at 22:44 UTC on 2026-10-18. Record the merge checkpoint in the Phase 2.5.5 register, point current.md and the agent guides at Step 9, and keep Wave 3 open: Steps 9-19 are not started. - phase register: merge checkpoint (completed scope, review attribution, the independent review's dispositions, publication state) and the maintainer-approved 9a-9d split of Step 9 as rows 9a-9d of the increment table - deferred-tasks: the independent review's unactioned findings, and the SonarCloud main-branch gate recorded as done - limits stated rather than implied: a3e164b has author verification only; CI for the merged head and the merge commit finished green after the merge; the SonarCloud dispositions were applied on main on 2026-10-19 Refs: ADR-0111 Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
cemililik
added a commit
that referenced
this pull request
Oct 19, 2026
a3e164b (corrections from the third independent review of PR #95, including a secret-scrubbing rule) merged with author verification only. Record the independent review that followed and the open findings it left. - phase register: the merge checkpoint no longer claims the commit has no independent acceptance, and a new section records four review rounds and a security sitting (per-area results, the findings and their dispositions, what the reviewers did and did not cover, the follow-up commits) - deferred-tasks: the residuals the review found and did not fix, two of them security items that predate the follow-up (an api-key:Bearer token leak, and userinfo with a raw ? or # before the first colon left unmasked), plus the examined-and-unchanged waitFor bound and the review's nits - current.md, CLAUDE.md, AGENTS.md: the merge limits are stated as resolved or pointed at the open findings instead of "author verification only" Refs: ADR-0111 Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
cemililik
added a commit
that referenced
this pull request
Oct 21, 2026
A pre-implementation audit read the canonical documents for Wave 3 Steps 9-19 and the open PR #95 findings against the current source (sixteen auditors, fifteen adversarial verifiers and a completeness critic). The maintainer approved every recommendation on 2026-10-19. No new ADR is required. - Record the rulings, the PR95 plan amendment (scrubber residuals before 9a) and the recorded splits for Steps 9-19 in the phase register's increment table (29 increments, ID coverage unchanged apart from PR95). - Give every open PR #95 item an owner in deferred-tasks.md; LOW-1 and LOW-2 become approved deferrals with their triggers. - Reconcile stale status: the phase banner, the a3e164b review wording in current.md, where the post-merge follow-ups live (development, pushed, push CI 39275223233 green), README and CLAUDE/AGENTS status lines. - Add forward pointers from the preflight tables to the approval, a dated #45 note for ADR-0110's fixed infrastructure diagnostic, G30's pull forward to Step 13 in both phase files, and the Outcomes bullet's reconciliation with exit criterion 4. - Mark accepted Steps 1-8 task bullets DONE or certified. - AGENTS.md: describe the development-to-main PR branch model in use. Refs: ADR-0110, ADR-0111, ADR-0112, ADR-0113 Co-Authored-By: Claude Opus 5.5 <[email protected]>
cemililik
added a commit
that referenced
this pull request
Oct 21, 2026
The PR #95 independent review left two security residuals in the diagnostic secret backstop and several scanner gaps. The maintainer ruled the policy on 2026-10-19 (Wave 3 PR95 increment); this implements it in llm, in core's journal projection twin, in the secrets causal controls (repo tooling) and in the canonical docs. - An api-key, x-api-key or x-goog-api-key value that begins with a Bearer/Basic label (also LF/TAB-split) is masked together with its token, so the header rule no longer erases the later label rules' anchor and leaks the token. Like those rules, a label that ends a line takes the next token with it, failing closed. - Raw ?/# userinfo is public only after a host-shaped prefix that an = assignment follows, in scrub-secrets and in core's bounding.ts twin: https://us?er:TOKEN@h, http://#TOKEN@h and https://my.user:1234?TOKEN@h are masked, and a host fragment without an assignment fails closed. Core keeps its documented ']' and short vanity-handle differences. - The finite URL scheme list gains sixteen connection-string schemes (postgres ... smtps). They mask colon-bearing userinfo only, so ssh://git@host stays visible; an unlisted suffix scheme still matches. - The split-credential scanner compiles its probes once. A package- internal splitProbe checks its two invariants at module load with a typed error, and a :// window skips URL starts that cannot match: an 8 MiB letter-heavy diagnostic no longer costs a RegExp attempt per character. - New witnesses, a parity test between the two maskers and nine causal controls pin each mechanism (66 controls, 416 named witnesses). The eight-MiB cases now have a 15 s case deadline, inside the causal CAUSAL_TIMEOUT_BUDGET, instead of a 5 s wall-clock assertion. - The CLI supported-leaf guard admits the leaf's own dependency-free probe module; the leaf still reaches nothing else but terminal-safe. - error-handling.md gains the canonical diagnostic secret backstop policy. built-in-tools.md and the effect journal contract record the shared ?/# predicate and its v5 consequence: a resumed effect whose args carried such userinfo now refuses instead of replaying. Refs: ADR-0113 Co-Authored-By: Claude Opus 5.5 <[email protected]>
cemililik
added a commit
that referenced
this pull request
Oct 21, 2026
Round 10 of the PR95 increment's review (at 59c6449), the last under the maintainer's 2026-10-21 round cap, reported eleven verified findings: seven medium and four low as verified (three of the mediums are one finding), no high and no blocker. On 2026-10-22 the maintainer counted GEN-R10-1 as high and approved the two private-key block gaps found after round 9 as deferrals; every other finding is recorded in deferred-tasks.md, as the round cap provides. Core projection (packages/core/src/tools/bounding.ts): - In a structured result's JSON a query value at the end of a line ran on through the next line's key and took the backslash of its value's escaped quote, so a `cat .env` result's POSTGRES_PASSWORD="…" after `?sslmode=require` showed in the summary that agent:tool_result carries (GEN-R10-1, unchanged since base). A summary now opens a key's value whose escaped opening quote ends an earlier mask's backslashes where that mask keeps them, reading it only in the views that keep them. The journal keeps its reading, so v5 digests do not change; a test pins that. - The docblocks that counted one summary difference, or said that no text rule reads a whole-masked member, are corrected (DOC-R10-2). Tests and controls: - A test with five witnesses (run_command, MCP text part, CRLF, Mongo and a tab) and a journal pin; 218 bounding cases. A mutation run of six mutants on the new code kills four; the two survivors are output-neutral, since a mask the kept view keeps ends before a delimiter, where a view that keeps the backslashes closes no later than the filled one. - core-quoted-value-scan and core-escaped-quote are re-anchored on the changed lines; the family stays 130 controls / 513 targets and witnesses in two shards of 65, whose local exports held 1,177 files each and measured 50.24 MiB and 50.14 MiB. - Differentials against 59c6449 and base: the journal and display text identical on 250,000 inputs; every summary that differs on 320,000 inputs shows a subsequence of 59c6449's visible text; no planted-token regression in the generators or in an exhaustive run of 837,606 sequences. Docs: built-in-tools.md (the kept opening and its journal limit; the wrapped markers' whitespace bound, the U+E000 placeholder's fallback and a PEM END marker glued to another match, named where the document claimed more), effect-journal.md §11 (the closing readings of a value that closes, INT-R10-2), deferred-tasks.md (round 10's medium and low findings with examples and re-checks, the journal half of GEN-R10-1, the two approved private-key block entries, the PR95 items of the PR #95 review closed), the phase register (round 10, the rulings, the closure and the round-9 records that DOC-R10-1 found stale), the secrets controls README and the status lines. The increment closes under the round cap. It is not independently accepted in the sense of the approved bar: round 10 was NONCLEAN, and this correction has author verification only. Refs: ADR-0113 Co-Authored-By: Claude Opus 5.5 <[email protected]>
cemililik
added a commit
that referenced
this pull request
Oct 24, 2026
Wave 3 Step 9a.1, the first increment of the CLI release map/custody substrate (#46, ADR-0111): the candidate build and its prepack finalizer. The receipt stays compiled_package_test; symbolication, the private map manifest, custody and the release state controller remain Steps 9a.2-9d. - Owned candidate tree (tools/cli-package/candidate.mjs): the producer never builds in the developer's workspace. It records the checkout's commit and porcelain status, copies every file Git would ship (by the repository's ignore rules and the developer's global excludes file, which is the only global setting it reads) into a fresh owner-only tree with exact modes, refuses if the commit or status changed during the copy, installs the locked closure offline, frozen and without lifecycle scripts, and verifies that every workspace link resolves inside the tree. - Producer (produce.mjs, run by pack.mjs): fresh uncached upstream tsc maps for the five engine packages, the sole prepack build, a build cache check before the seal, owner-only staging outside the artifact, and removal of the private root on every path; its composition is tested through injected ports. - Prepack (prepack.mjs) runs tsup once; with a validated staging directory the candidate-mode build emits external maps without sourcesContent and the finalizer (finalize.mjs) accounts for every output, validates every upstream and final map, rewrites sources to repository-relative original TypeScript, removes only the exact map trailers before hashing and stages maps and metafile privately. - The seal reads the candidate and its staging explicitly; the closure guard is map-aware and refuses any map or map link in an ordinary build; the PR #95 fold-ins remove the archive's dead TAR_FORMAT branches and replace the installed smoke's ancestor loop. - release.yml's publish job runs a fail-closed guard first: its entry point exits 1 before it evaluates its rule, so no artifact and no way of invoking it can reach npm publish until Step 9d's custody exists (the Interim release guard ruling of 2026-10-19). An internal pre-review of the prepared change found seventeen issues, none high once verified; all are corrected here (the guard's entry point, the tested producer, the global excludes, exact modes and the test gaps). A mutation run of twenty mutants over the new code kills all of them. The full local CI then caught a top-level await in closure.test.mjs that ran after most tests were registered, so a slow fixture build let the runner remove the file's scratch directory before a later test; both fixtures are now built before the first test. Docs: packaging.md (Status and the 9a.1 implementation boundary), the release runbook, an ADR-0051 amendment, the tooling README, the phase register (9a.1 row and checkpoint, and the PR95 closure's post-closure CI corrections 2a1f735 and 4c3cafe), deferred-tasks.md (the PR #95 tooling nits) and the status lines. Refs: ADR-0111, ADR-0051 Co-Authored-By: Claude Opus 5.5 <[email protected]>
cemililik
added a commit
that referenced
this pull request
Oct 24, 2026
Round 13, a new independent complete cumulative review of 4c3cafe..cf97b7f, reported no blocker, high or medium finding and no regression. Its separate security sitting was clean. Under the maintainer's 2026-10-23 acceptance bar, Step 9a.1 is accepted at cf97b7f. - The register adds round 13 and the acceptance record, and the 9a.1 row links it. CLAUDE.md, AGENTS.md and current.md say 9a.1 is accepted and 9a.2 is next. - deferred-tasks.md records the round's ten verified findings (six distinct). The two test gaps stay open: forwardInterrupts' group forwarding and the map-source bound's refused side. So does the code half of the guard's exit-code nit. - The documentation-only findings are corrected: - packaging.md's store-discovery list names NPM_CONFIG_STORE_DIR; - the deadline's group kill happens when the grace ends or as soon as the stage exits; - the guard's wording says it sets its exit code to 1 before its rule runs; - the freshness lines are current. - The tooling half of the PR #95 nits item is accepted with 9a.1. The duplicate headings stay with 19b. No code changes. Gates: require-packed-cli, release-guard, require-w8-acceptance and workspace-scheduling tests, lint:tools, lint:test-isolation and prettier over the changed files. Refs: ADR-0111, ADR-0051 Co-Authored-By: Claude Opus 5.5 <[email protected]>
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.



Second maintainer review — corrective publication verified
Reviewed publication head:
19c999683ca00f6c760f8d4f52c96b0afdd83581. PR remains OPEN for maintainer review; it has not been merged.Verified failed-spawn cancellation, finite credential recognition, installed-command/Node-floor acceptance, native lifetime/notice forwarding, sealed UI/refresh, hostile diagnostics and credential-free CI corrections are complete. A subsequent independent review found a real native readonly export-metadata classification defect; the owned SQLite boundary and actual human/JSON/foreign-client/getter controls repair it. Original risk notes have explicit reasoned dispositions; no new deferral or universal secret-detection promise was introduced.
Source acceptance remains exact: NEW R14/R15 are COMPLETE CLEAN at
ec0f3e10, 108 corrective paths / 272 ordered U3 hunks each, with a separate CLEAN security sitting (764 source + 148 tooling tests). Later owned Home preparation at154d832dhas two NEW complete CLEAN reviews (3 paths / 3 hunks) and scoped security inspection; ordinary R2 owns its twelve-case execution. Native concurrency at1c7aec25has two NEW complete CLEAN reviews (2 paths / 12 hunks) and a separate scoped CLEAN security sitting; all three native reviewers execute nine cases independently. Closing metadata has two NEW limited CLEAN checks at this head, after the earlier attribution error; NONCLEAN history is retained. These are correction/increment scopes, not a new whole-PR review. All product/build/configuration/dependency/CI bytes remain identical to EC0F; only two tests and three documents differ.Both earlier Windows failures remain retained. The real Home module is prepared through captured/retained fixture work before the unchanged five-second case clock. The native suite uses the neighboring finite 30-second functional case budget, combines runner/scenario cancellation and adds a safely spied real ENOENT/no-PID regression. All eight original native cases and SQLite's five-second busy policy remain. Timers cannot preempt synchronous migration or mint a close/receipt ACK. Actual current PR and push Windows logs both pass nine native plus twelve admission cases, including joined actual child closes and zero cleanup faults; no definitive earlier Windows root cause is claimed.
Verified current-head publication:
b72939dbab25cbea49ee13a4c0f92d04dc43a9364466263b483c2d1c91b72ebc. The same digest passes current Linux/macOS/Windows and minimum Linux Node 22.0.0; each executes the real installed help/version command, 177 bootstrap controls + ten behavior cases. Downloaded bytes and receipts were inspected; remote platforms were not rerun locally and no reproducible-build claim is made.Author-selected partial controls remain
complete:false; full publication above is separate. The supplemental source register joins source/read scopes, actual failures and the disclosed old mutable-progress-snapshot limitation. Detailed reviews/receipts remain local and Git-ignored.Wave 3 Steps 1–8 checkpoint only. Steps 9–19 have NOT STARTED; whole-wave acceptance and core required-CI coverage promotion remain Step 19. No merge, release, new ADR, paid/provider/keychain/GPG operation or new user-decision gate is claimed.
Maintainer review corrections — verified publication checkpoint
Long tool arguments could share an effect replay identity, and diagnostic clipping could retain part of a recognized credential. The corrections use the complete redacted
v5:projection, preserve own public data, normalize/recognize complete summaries before clipping, and retain the original invocation through actual MCP/native cleanup. All 13 Medium findings and 39 distinct Low concerns have explicit fixes or evidence-based dispositions, including Promise/cancellation boundaries, active-turn SIGINT/EOF, JSON gate purity, required CI guards and canonical documentation.Published head:
a5a5d45ebf9a57dbd8dfe0e20ae71ae9b33408cb. Reviewed runtime:ba14b1bd, against submitted05061d55. The later delta is four append-only Markdown files / 75 lines; executable, configuration and dependency bytes are identical. Nativev5:refuses unversioned andv2:/v3:/v4:rows, including unchanged small arguments, without rewriting history or granting automatic effect retry. Raw host/model/spill handling and finite redaction limits remain explicit.Two NEW complete cumulative CLEAN rounds, R9 and R10, each use four fresh independent review tasks covering 100 paths / 212 ordered hunks. Root verifies exact file/diff/hunk hashes, coverage unions and substantive assessments. Current code/test bodies and all deleted/replaced branches are read; historical documents receive identity/structure/status/links and complete changed/affected-clause review, not unrelated historical line-by-line recertification. A NEW separate CLEAN security sitting covers 40 paths / 100 hunks, explicitly static-only with zero tests executed. Two further independent CLEAN metadata checks cover the four-file documentation delta. Earlier nonclean/incomplete/interrupted rounds retain their own sources. This is correction-scoped acceptance, not a new whole-PR review.
Verified at the published head:
0fa52c13eb8197bd5ac37e0abca9f2c5a2c3c16b84bcc5d2c73793cce1a52afb. This is physical evidence inspection, not another local Windows/Linux execution or reproducible-build claim. Native Windows and Node 22.13 source advisories also pass.The completion register owns source/coverage attribution. Detailed private receipts remain Git-ignored. PR stays OPEN for the maintainer's new review. No merge, release or whole-Wave-3 completion is claimed; Steps 9–19 remain unstarted.
What changes
Complete the first eight approved Wave 3 increments. Declared-secret-derived context is kept out of public expression/template outputs, authored admission and historical replay have distinct validation boundaries, and CLI work stays owned through actual producer, native-process, terminal and database cleanup. Guarded lazy loading and exact installed-package controls make those boundaries testable in the shipped CLI.
This PR is the maintainer-requested Steps 1–8 publication checkpoint. Steps 9–19 have not started; Wave 3 is not complete. The original whole-wave Step 19 review, coverage and publication obligations remain for the later work.
Scope
Packages:
shared,llm,core,db,mcp, CLI and acceptance/CI tooling. Decisions: ADR-0110–0113, with append-only forward notes in affected earlier ADRs. No new runtime dependency; the SQLite type addition is development-only. Detailed review/private evidence remains Git-ignored.Compatibility and boundaries
cli_internal/output_unavailablediagnostics and exit 9. Classified workflow/turn failures, deliberate chat end, signals and actual workflow money/effect/durability precedence retain their defined meanings.Original checkpoint validation and review attribution
The original Step 8 runtime acceptance below applies to
c83c8575b0baaa9bf20765b03dffb00623ed96c6. The00fb72d2closure and4762f21fpublication were documentation-only. The subsequent Sonar correction source is887ff47eff6092d035df9442658f0eb24625f9e9;05061d55records its scoped evidence. Earlier results retain their source attribution.a64f4ff2cbd444d6bc37e6b0938c42e0a6ebca0ddcd7905799c718346764558f.d9625ff0throughc83c8575. Root reads every report/path assessment and independently verifies raw results, joins, hashes and matching source/dependency/dist freezes. These are whole-Step-8 reviews, not a new whole-PR review of all changed files.New push and PR checks run at the publication head. Their current results must be evaluated separately from the successful runtime-source run above.
Historical Sonar review corrections — 2026-10-18 (source
05061d55)The complete initial review covered 214 open Sonar records in 80 files. One confirmed tooling performance defect appeared at two sites: stack indentation could consume newlines and cause quadratic rescanning.
0eae1b8bbounds those scans to one line; permanent tests inspect the actual source assertion operands and retain stack/canary/file-URL detection. Each independent removal fails its regression, and exact restoration passes. Small equivalent CLI/tooling clarifications address seven other records without changing native ACKs, control inventories or deadlines.887ff47e. A separate final documentation/receipt check is clean. These are correction-scoped reviews, not a new whole-PR review.2dd80f46204a60e17d4abb72c5442425e29d09c73e60642cad40ccc254125d4e. This is one local consumer; fresh remote platform consumers are reported separately.Fresh Sonar analysis is successful at
05061d55, with security/reliability/maintainability A/A/A, zero bugs/vulnerabilities, nine FIXED records and 67 remaining open maintenance suggestions. GitHub Sonar check117511184731independently confirms that exact head. All four actual PR installed consumers now pass: current Linux/macOS/Windows on Node 24.21.0 and minimum Linux on Node 22.0.0, each with 177 bootstrap controls and eight smoke cases. Downloaded artifacts independently verify the same 446,752-byte / 70-file tarball, SHA-256192b281eab895241c35ad07fdb988c4420b4679539664de8af9ebb3ee54e999c. Their actual checkout is synthetic PR mergea9a921c1; its Git tree is independently identical to05061d55. New-head push CI 39071766923 and PR CI 39071769451 still contain running causal/coverage/main jobs; aggregate completion is not claimed. Earlier green runs retain their historical source attribution.Navigation and continuation
The timestamped detailed handoff is local/private and is not published in this PR. Before Step 9, the next agent must inspect this PR's state: further commits on
developmentwould extend this PR's scope. No Step 9 implementation or production release operation is performed here.Conformance
Refs: ADR-0110, ADR-0111, ADR-0112, ADR-0113; Phase 2.5.5 / Wave 3 Steps 1–8
Prepared with Codex assistance.