Skip to content

fix(repo): harden engine and cli lifetimes (wave 3 steps 1-8) - #95

Merged
cemililik merged 222 commits into
mainfrom
development
Oct 18, 2026
Merged

cemililik merged 222 commits into
mainfrom
development

Conversation

@cemililik

@cemililik cemililik commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

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 at 154d832d has two NEW complete CLEAN reviews (3 paths / 3 hunks) and scoped security inspection; ordinary R2 owns its twelve-case execution. Native concurrency at 1c7aec25 has 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:

  • PR CI 39135159217 and push CI 39135153832: 15/15 successful jobs each, including required main/coverage, native advisories and installed consumers. Cached tasks retain their actual log attribution; the author-forced EC0F run remains a separate 24/24-task / 15,974-pass / 21-local-skip result. All 633 author acceptance-tool cases pass.
  • Current required coverage reports 748 files / 15,974 passes / 22 established CI skips; the source Node 22.13.0 floor has the same totals. LLM/MCP line/branch floors pass; core is measured and its required-CI promotion remains Step 19.
  • Exact-head SonarCloud gate OK, zero open bugs/vulnerabilities. Its 102 nonblocking maintainability recommendations remain visible; no blanket waiver or threshold weakening.
  • One actual installed archive, 449,851 bytes / 70 files, SHA-256 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.
  • Full filesystem evidence: 110 controls / 330 phases / 8160 executions / 188 required witnesses. Full secrets evidence: 57 / 171 / 14919 / 336. Every declared named/marked witness and restoration is verified; zero recorded runner-unhandled errors. Additional removal failures do not substitute for required witnesses.
  • Usage 23 mechanisms / eight groups / 3749 executions, with permanent native/100k-scale evidence; wire four mutations / 24-case matrix / 216 executions. Git source, evaluation/runtime/stdio bindings, inventories and restoration are checked. Fresh GitHub ZIP digests/sizes and every extracted byte agree for all nine selected acceptance artifact ZIPs. Absent remote dependency/native executable bytes remain explicit metadata-only limits.

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 submitted 05061d55. The later delta is four append-only Markdown files / 75 lines; executable, configuration and dependency bytes are identical. Native v5: refuses unversioned and v2:/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:

  • Push CI 39086945679 and PR CI 39086948646: 15/15 jobs successful each. Both actual main logs report 748 files / 15,886 passes / 22 established CI skips. Lint/typecheck17/17 and workspace tasks 11/11 each have five cache hits; build 6/6 has six. Cached work is not claimed rerun.
  • Fresh local ordinary coverage in CI mode also passes 748 / 15,886 / 22, retaining all three existing core/LLM/MCP 90% line and branch floors. Required remote enforced coverage passes; core's required-CI promotion remains Step 19. The earlier non-CI author workspace15,887/21 snapshot remains separately attributed.
  • All four actual installed consumers pass with one selected archive: current Linux/macOS/Windows on Node 24.21.0 and minimum Linux on Node 22.0.0, each 177 bootstrap controls + ten behavior cases. Independently downloaded archive/report and GitHub-origin checks verify 448,223 bytes / 70 files, SHA-256 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.
  • Current-source filesystem/secrets artifacts independently verify 110/41 controls and 330/123 phases, exact declarations/source/runtime/evaluation/stdio bindings, ZIP digests, zero recorded unhandled errors and the unchanged 2,000-file/64-MiB bounds. This does not rerun those matrices locally.
  • Budget replay smoke verifies 16 strict refusals / two legacy positive controls / zero fetches. All 599 local acceptance-tool cases pass. Eight author removals yield 89 specific assertion failures; every byte-exact restoration passes all 208 focused targets, with zero unhandled errors in committed runner receipts. Overlapping reviewer test selections are not added into a unique total.
  • Source-bound Sonar analysis passes at this exact head (GitHub check 117555791121), with no new record since the preceding candidate: 231 records / 90 files = 55 false positives + 86 accepted + 11 fixed + 79 open recommendations. Valid nonblocking recommendations, including the two reasoned regex-maintainability suggestions, remain visible; no rule or quality threshold is weakened.

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

Accepted increment Result
1 — Serialized reliability queue Shared close handling, safe source labels and UTF-8 admission parity, exhaustive surface switches and actual reasoning rendering.
2 — Admission and diagnostics Consistent value-free authored validation and numeric bounds, with separate historical workflow/session validation and resume compatibility.
3 — Secret provenance Engine-owned qualified context/input provenance at real VM/template/public sinks, with native SQLite persistence regressions and expression-result parity.
4 — Error/envelope substrate Shared error ancestry and event-envelope validation while preserving supported family names, discriminants, causes and seam boundaries.
5 — Tool and engine tails Tool input bounds and advertised semantics, alias/cycle safeguards, cancellation tails, deterministic plans and identifier ordering.
6 — Pure process/discovery substrate Early option/error/origin authorities, command descriptors and pure discovery projections, invocation work owners and observation priority.
7a/7b — Lazy runtime and installed graph Guarded entry/import failures, invocation catalog ordering, finite flat ESM chunks, complete emitted-graph checks and exact-tarball consumers.
8a–8d — Native/session/fatal integration Creation-owned process capabilities, partial-acquisition custody, retained discovery/MCP/media work, workflow/session/Home/management ownership, terminal restoration and fixed fatal/output/background diagnostics.

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

  • Public secret-context access is intentionally tightened under ADR-0113. Previously stored historical output is not retroactively erased.
  • Unexpected CLI infrastructure/output failures use fixed cli_internal / output_unavailable diagnostics and exit 9. Classified workflow/turn failures, deliberate chat end, signals and actual workflow money/effect/durability precedence retain their defined meanings.
  • Cancellation, timeout, public discovery completion and an SDK close promise never manufacture a native-close, receipt, terminal-delivery or DB-safe-close acknowledgement. POSIX tool groups, SDK MCP PIDs and verified Windows helpers retain distinct authority.
  • JSON-help integration, aliases/output-category UX, release maps/encrypted custody, later chat/Home/network-policy work, DB centralisation and whole-wave acceptance remain Steps 9–19. This PR does not activate a release or claim complete Phase 2.5.5/2.6.

Original checkpoint validation and review attribution

The original Step 8 runtime acceptance below applies to c83c8575b0baaa9bf20765b03dffb00623ed96c6. The 00fb72d2 closure and 4762f21f publication were documentation-only. The subsequent Sonar correction source is 887ff47eff6092d035df9442658f0eb24625f9e9; 05061d55 records its scoped evidence. Earlier results retain their source attribution.

  • Full source CI run 39044664485: 15/15 jobs successful. Main workspace reports: 743 files / 15,635 passes / 22 established skips. Lint/typecheck 17/17 (five cache hits), serialized workspace 11/11 (five cache hits), build 6/6 (six cache hits); cached results retain that attribution.
  • Required source fences, formatting/isolation, compiled smokes, 177 bootstrap controls, replay compatibility, wire/usage acceptance and filesystem/secrets causal jobs pass. Core's required ≥90% line/branch floor promotion remains Step 19; the current enforced job covers LLM/MCP.
  • All four actual installed consumers pass with the same tarball: current Linux/macOS/Windows on Node 24.21.0 and minimum Linux on Node 22.0.0. Independently inspected archive: 446,750 bytes / 70 public files, SHA-256 a64f4ff2cbd444d6bc37e6b0938c42e0a6ebca0ddcd7905799c718346764558f.
  • Downloaded current-source filesystem/secrets records independently verify 110/41 controls, 330/123 phases, exact source/runtime/restoration/physical bounds and zero unhandled errors. This is inspection of the executed CI artifacts, not another local mutation run.
  • Each increment has independent scoped acceptance. For final Step 8, R25 and R26 are two NEW complete cumulative CLEAN rounds, each eight independent reviewers covering 342 disjoint paths / 1,842 ordered hunks from accepted Step 7 d9625ff0 through c83c8575. 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.
  • A NEW separate CLEAN Step 8 security sitting runs 75 complete files / 1,105 passes / one Windows-only local skip, with explicit empty error channels and actual runtime joins. Earlier steps retain their separately recorded sittings. No operator-TTY, live-provider/keychain, opaque native-undici close or universal descendant-containment certification is inferred.
  • Failed reviewer-preparation receipts remain failed. In particular, R25 tooling's arithmetic wrapper and R26 Home's collection wrapper exited nonzero; their passing product-case records and empty error channels were audited directly with explicit qualifications. Missing callback history and native-child source/dist equivalence are not invented. Earlier NONCLEAN reviews and failed old-source CI remain historical.
  • Final closure documentation/handoff received an independent read-only review with no confirmed documentation issue; local links and append-only ADR/mirrored status checks pass.

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. 0eae1b8b bounds 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.

  • Two NEW independent complete cumulative CLEAN rounds, two reviewers per round, cover all 8 paths / 11 hunks at 887ff47e. A separate final documentation/receipt check is clean. These are correction-scoped reviews, not a new whole-PR review.
  • Author validation: workspace lint/typecheck 17/17 (15 cache hits), serialized workspace tasks 11/11 (10 cache hits), fresh CLI 362 files / 5,665 passes / 10 established skips, build 6/6 (five cache hits), and 551 acceptance-tool tests with no skips. Tooling lint/typecheck, formatting, seam/dependency fences pass.
  • The actual local macOS / Node 22.23.1 installed consumer passes 177 bootstrap controls / 8 smoke cases, tarball SHA-256 2dd80f46204a60e17d4abb72c5442425e29d09c73e60642cad40ccc254125d4e. This is one local consumer; fresh remote platform consumers are reported separately.
  • 52 false-positive and 86 intentional-design records have reasoned online dispositions, independently joined by exact key and saved comment. No rule, gate threshold or approved deferral changed. The trusted-host PATH assumption of the local Git fallback is explicit.
  • 67 valid nonblocking maintainability suggestions remain open, including larger decomposition suggestions; they were not labelled false positive or silently closed. All nine code-corrected records are now FIXED in fresh analysis; no new open issue was introduced. This does not start Steps 9–19 or grant a new deferral.

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 check 117511184731 independently 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-256 192b281eab895241c35ad07fdb988c4420b4679539664de8af9ebb3ee54e999c. Their actual checkout is synthetic PR merge a9a921c1; its Git tree is independently identical to 05061d55. 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 development would extend this PR's scope. No Step 9 implementation or production release operation is performed here.

Conformance

  • Accepted decisions and canonical contracts cited; ADR history append-only.
  • Strict TypeScript, SDK seam, engine platform purity and runtime-dependency boundaries preserved.
  • Increment-scoped reviews/security and runtime evidence attributed to their actual sources.
  • Private handoff/review records and credentials excluded from Git/public artifacts.
  • No whole-wave completion or later-step implementation claimed.
  • New correction-head push/PR checks and fresh Sonar analysis completed successfully.
  • Maintainer whole-PR review completed.

Refs: ADR-0110, ADR-0111, ADR-0112, ADR-0113; Phase 2.5.5 / Wave 3 Steps 1–8

Prepared with Codex assistance.

cemililik and others added 30 commits October 15, 2026 20:56
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]>
cemililik and others added 21 commits October 18, 2026 12:57
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]>
@sonarqubecloud

Copy link
Copy Markdown

@cemililik
cemililik merged commit 6d2a737 into main Oct 18, 2026
32 checks passed
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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant