Files
ARCADIA-Studio/harness/experiments/analysis-mixed-cli-20260925/LAUNCHER-REVIEW.md
T

6.0 KiB

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 f10490b13b 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.