Files
ARCADIA-Studio/harness/analysis-mixed-cli-interface-20260925.md
T

2.4 KiB

Mixed CLI read interface

Implements the selected harness/analysis-mixed-cli-contract-20260925.md contract in the integration owner's root records. Local implementation checkpoint; no runtime claim is made by this note.

oa_cli::check_mixed(&Path) -> Report loads MixedSourceSnapshot, checks its borrowed original bundle only when discovery diagnostics are empty, and copies only returned diagnostics into the existing format-1 report. It never constructs Prepared, compiles ordinary source, stabilizes identities, migrates or saves. The closed Dispatch enum separates CheckMixed from Editable { operation, write }; Operation and prepare retain their existing ordinary semantics.

Reports preserve input locations and explicit object IDs. Successful warnings are retained. Source errors use invalid/1, loader missing/path/journal diagnostic refusals use invalid/3, and direct SourceFileError retains the existing rejected/3 mapping. Fixed fields are empty changes/notes, false written, zero identity stabilization, and null migration. Human output names a mixed source8 check, with no edit-candidate summary. --write, unknown/repeated options and wrong arity cannot enter either loader or preparation through mixed dispatch.

Six external mixed_cli tests execute the real Cargo-provided binary. The rich OA/SA fixtures reuse previously authored ordinary/typed literals and independently constructed public model values, with an explicit SA System, reordered call labels, escaped include paths, decoy include comments, Unicode and LF/CRLF. Their complete returned models and four ordered leaf warnings are checked before complete CLI report comparison. The four warnings represent two leaf declarations (allocation then coverage); they do not replace the earlier one-leaf oracle. Other cases cover all four missing-UUID classes, schema refusal, cross-file semantic failure, missing/cyclic/escaping includes, invalid UTF-8, pending journal, reserved root, human output and option refusal. Each subprocess compares complete file bytes and directory inventory before/after, including unrelated files. Platform-specific OS missing-file text is obtained from an independent filesystem metadata error; no parser, formatter or CLI output generates expected reports.

The parent owns compilation/runtime acceptance. This source note does not imply Linux coverage, full mixed editing, GUI adoption or an atomic disk snapshot.