Add explicit read-only mixed source8 CLI checking
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user