32 lines
6.0 KiB
Markdown
32 lines
6.0 KiB
Markdown
# Mixed CLI launcher review
|
|
|
|
Read-only review; neither launcher, Cargo nor an application was executed. Compared the new helpers directly with the previously audited public-read launchers and inspected the complete affected gate setup/receipt paths.
|
|
|
|
Reviewed unpinned gate `.local/run-analysis-mixed-cli-gate-20260925.py` SHA256 `512dcc82ecb57fa60104d7332ea1cb9798ce1f4919cac6a4e2568d674f3abf1a`; ordinary CLI helper `.local/run-analysis-mixed-cli-ordinary-20260925.py` SHA256 `a8ae7e9c4cb15a87720e364772c3239eef1fe6f4753b1f74b1f9e5482c7bcdad`.
|
|
|
|
No actionable orchestration issue found in these deltas. New `mixed_source_files` targets oa-core, while `mixed_cli` and `source_cli` target oa-cli. Integration list/run receipts retain exact same-source input/artifact/name-set comparisons and all-passed summary checks. Strict all-target Clippy selects both packages. Existing core, ordinary integration, doctest, format and CLI-build commands remain recognizable and scoped. Complete Git/raw input capture already includes both crates. Full pre/post nonignored cleanliness and raw artifact/log binding remain present.
|
|
|
|
The doctest reconciliation is deliberately restricted to the two existing exact CheckedMixed source paths/line36 and line50 with Rustdoc's ` - compile fail` suffix. Raw names remain in outcomes; the mapping is recorded separately. It cannot collapse duplicate mapped names, waive a failed status or accept a mismatched inventory. Source-line movement or a new differently spelled example will fail closed and require inspection. Successful group summaries still must account for the exact nonzero listed names. This is the previously established spelling repair, not a generic result normalization.
|
|
|
|
The ordinary CLI helper's only differences are output folder and receipt/stem names. Its actual literals, report/byte oracles, arguments, source/build/input/environment validation and subprocess behavior are unchanged. This review does not cover the forthcoming separate mixed executable fixture helper.
|
|
|
|
Before execution, replace the gate's `PENDING_REVIEWED_MIXED_CLI_SOURCE` with the independently reviewed committed source and bind that exact final helper hash. The current pending marker intentionally prevents a run against the worktree. Parent owns execution; final runtime reconciliation must inspect actual process exits, all expected gate records and raw outcomes rather than treating this source review as a pass.
|
|
|
|
## Actual mixed executable helper
|
|
|
|
Read `.local/run-analysis-mixed-cli-behavior-20260925.py`, SHA256 `78b612d631175032c7a7819105e03262e21630a1139be62ae78bbe9b5d387a7b`, without executing it. No blocker found. It validates the captured successful build receipt, log/input hashes, actual binary bytes and matching environment; then invokes actual `check-mixed` for valid JSON, unresolved JSON and valid human output. Three authored files form a real nested include chain with CRLF/Unicode, scoped repeated parameter UUIDs and a misleading commented include. It checks exact input file bytes and complete relative file/directory inventory around every command, while preserving raw streams and per-command receipts.
|
|
|
|
The expected unresolved report independently computes the byte span of the alias `missing`, excluding `@`, and source-character line/column. This agrees with the existing Cursor::name span and lower.rs unknown-global-reference branch. It compares the whole Report and exact exit/stderr, not only status; valid human output has an independently fixed complete byte string. Successful model equality and substantial OA/SA coverage are explicitly assigned to integration tests rather than invented report fields.
|
|
|
|
This helper covers its three declared commands, not every CLI failure or platform case. New argument/path/journal/UUID tests remain necessary elsewhere. Creation of fixture files is launcher setup, distinct from the command's no-write assertion. Its exclusive fixture/receipt creation intentionally refuses rerunning into existing evidence; any actual failure must be preserved before a revised attempt.
|
|
|
|
## Actual dependency omission and final recipe repair
|
|
|
|
While preparing runtime reconciliation, found an actual newly exercised source_cli dependency missing from the inherited declaration recipe: `include_str!` loads `harness/experiments/textual-authoring-20260911/alarm-response.arcadia`, outside `harness/fixtures`. The initial f232482 six receipts remain intact with566 declared inputs; do not retrospectively claim the launcher captured that file's raw bytes. Its immutable Git identity can be checked separately.
|
|
|
|
Parent added exactly that path and pinned final f10490b13bb3332ff60c2372d554e276f6f44959 before final runs. Reviewed final helper SHA256 `15d3bae6c4235f20a4b5ae523e9cde38842118397bf1accbf5837fb18de356b4`; replacing only the source pin yields template `0349a19e62b9c57231e6ef3abad30643f39d7ed2fa4ac1fcab4b314159a39d52`. Removing only the added path from that template reproduces the original reviewed512dcc82 hash exactly. Final declared inventory is567. No other recorder behavior changed. The independent checker recognizes these exact two recipes and preserves the omission caveat for historical receipts.
|
|
|
|
## Evidence packager source review
|
|
|
|
Read `.local/package-analysis-mixed-cli-20260925.py`, SHA256 `d98cbd11e29d44d1a9e68b5ddfe7971343766e7e7737adf47bab904d758a333b`, without executing it. No material bug found. It pins the completed readback and source, checks every selected receipt against the reader's receipt hash, requires six initial plus30 final Cargo records and five CLI records, and preserves complete raw gate contents. Human CLI stdout uses the recorded `stdout_file` (.stdout.txt) rather than a forced JSON suffix. Input/launcher/log hashes and566/567 distinction are retained; review mirrors, exact Git diffs/oracles and selected immutable baseline evidence are included. Destination creation is non-overwriting and occurs after required payload collection, followed by CRC/member-byte verification and a per-member manifest. This is a bounded pre-execution packaging review, not a claim that a packet or publication already exists.
|