127 lines
6.8 KiB
Markdown
127 lines
6.8 KiB
Markdown
# CLI-only integration review — 2026-09-11
|
||
|
||
Reviewer: Codex-ytr83r / server_audit. Bounded read-only review of commit
|
||
`01b76a1e89e93b7992f39e63560aa8b2ca2f69e0` over
|
||
`2ec72d4241fa8971fa6fe9f626937de9dfd7c7eb`, against local HEAD
|
||
`b853a1eca3df93ec9434e301e2b5521210f2579d` and the current B4/guide working changes.
|
||
Coordination: Gitea issue #1, ownership comment #197; upstream handoff #185.
|
||
|
||
## Verdict and import recipe
|
||
|
||
No new material correctness finding in this bounded review. Importing ONLY 01b is
|
||
self-contained against the local core. Do not import its parent 2ec or the other
|
||
host's branch history. A plain patch is not entirely conflict-free: coordination
|
||
files need the preservation decisions below. Actual three-way cherry-pick and
|
||
execution were not performed by this reviewer.
|
||
|
||
1. After the root's current serialized gate ends, apply only the 01b change.
|
||
2. Retain current `AGENTS.md` unchanged: its blob already equals the 01b target,
|
||
`d93cddacdd45341abb7bbea1d3e3fd4493484d9e`.
|
||
3. Retain every current `.gitattributes` rule and add only
|
||
`harness/experiments/source-cli-independent-20260911/** -text whitespace=cr-at-eol`.
|
||
In particular preserve `PROJECT_GOAL.md`, both history/archive directories,
|
||
and existing constructor/native/textual-analysis/fixture rules. Do not replace
|
||
this file with the remote whole-file version.
|
||
4. The remaining 14 paths can take the exact commit diff. Preserve all unrelated
|
||
B4, guide, language-documentation and ledger working changes. Verify incoming
|
||
archived evidence bytes with its attributes in force before staging.
|
||
5. Root owns fresh locked CLI tests/build/lint and any executable probes against
|
||
the integrated source. Existing evidence is attributed below. Release asset
|
||
packaging and Linux verification remain separate claims.
|
||
|
||
Read-only `git diff 01b76a1^ 01b76a1 --binary | git apply --check -` rejected
|
||
only `.gitattributes` and `AGENTS.md` (and emitted fixture CRLF whitespace warnings).
|
||
The same check excluding these two files, with `--whitespace=nowarn`, exited 0.
|
||
All eleven added paths were absent locally, and the five integration input paths
|
||
had no worktree edits. These are patch checks, not a promise that Git's three-way
|
||
operation will require exactly the same conflict resolution.
|
||
|
||
## Exact changed paths
|
||
|
||
Modified:
|
||
|
||
- `.gitattributes`
|
||
- `AGENTS.md`
|
||
- `Cargo.lock`
|
||
- `Cargo.toml`
|
||
- `README.md`
|
||
|
||
Added:
|
||
|
||
- `crates/oa-cli/Cargo.toml`
|
||
- `crates/oa-cli/src/lib.rs`
|
||
- `crates/oa-cli/src/main.rs`
|
||
- `crates/oa-cli/tests/source_cli.rs`
|
||
- `docs/source-cli.md`
|
||
- `harness/experiments/source-cli-independent-20260911/alias-expected-final.arcadia`
|
||
- `harness/experiments/source-cli-independent-20260911/alias-input.arcadia`
|
||
- `harness/experiments/source-cli-independent-20260911/probe.ps1`
|
||
- `harness/experiments/source-cli-independent-20260911/result.json`
|
||
- `harness/release-source-cli-20260911.md`
|
||
- `harness/release-source-cli-review-20260911.md`
|
||
|
||
No desktop, `docs/language.rst`, `PROJECT_GOAL.md`, or shared ledger path is in
|
||
this commit. Keep both incoming reports as their authors' historical evidence;
|
||
do not rewrite them as local B4 or integrated-release verification. README's new
|
||
CLI usage section and `docs/source-cli.md` complement the existing guide rather
|
||
than replacing it. README's desktop/server package statement is not a CLI asset
|
||
publication claim.
|
||
|
||
## Verified dependency and write-path facts
|
||
|
||
The entire `crates/oa-core` tree is identical at local b853, remote parent 2ec,
|
||
and 01b: `a9c71e2c3fc9260d06f191c0d65b1e63e41edbec`. The referenced
|
||
`harness/experiments/textual-authoring-20260911/alarm-response.arcadia` fixture is
|
||
also identical (`f401ca5459d3b678a1c701d49c6ae122b2f0bb87`), as are the checked
|
||
text-first examples and source7 fixtures. Cargo/README input bases match.
|
||
Cargo.lock adds only the local oa-cli package using existing dependencies.
|
||
|
||
Source references below refer to 01b for CLI files and the identical local core:
|
||
|
||
- `crates/oa-cli/src/lib.rs:191` consumes the prepared operation and calls
|
||
`source_files::save_project` at line 197 with its original disk snapshot, even
|
||
when the proposed changed-file list is empty. It does not reload and silently
|
||
accept a changed dependency before writing.
|
||
- `crates/oa-core/src/source_files.rs:799` checks every snapshot expectation,
|
||
including unchanged reachable includes. The saver begins at line 819; pending
|
||
journal refusal and conflict checks precede its no-op return. A removed or
|
||
edited unchanged include therefore remains a meaningful refusal case even
|
||
though it is absent from the preview's changed-file list.
|
||
- `crates/oa-cli/src/lib.rs:220` loads the source snapshot; line 243 obtains raw
|
||
lint diagnostics, and line 254 gates invalid input before mutation. Loader
|
||
discovery/path/encoding/recovery diagnostics are retained. Lines 271–281 omit
|
||
unauthored provisional object IDs from those diagnostics. Migration notes are
|
||
captured at line 305 before alias updating.
|
||
- Alias rename prepares the core SetAlias command at line 321, then calls the
|
||
identity-aware source updater at line 325. This is not a textual replacement;
|
||
source bytes and detached files are governed by the existing source saver.
|
||
- `crates/oa-cli/src/main.rs:75` prints and flushes the human preview before the
|
||
write at line 78; JSON emits the resulting report at line 86. Proposed changes
|
||
remain reviewable in a failed write report. A later output failure must not be
|
||
interpreted as proof that no disk write occurred.
|
||
|
||
Concrete falsifiers retained for the root's gate are an unchanged included file
|
||
edited after prepare, a pending journal introduced before a no-op write, an alias
|
||
occurring in comments/prose and references, and malformed UTF-8 or a missing
|
||
include. Existing CLI tests target these behaviors. This review found no source
|
||
counterexample requiring a production fix.
|
||
|
||
## Evidence boundary
|
||
|
||
This reviewer ran source comparisons and read-only patch checks only: no Cargo,
|
||
CLI execution, native validation, production edit, or Git mutation. The only new
|
||
file from this assignment is this report.
|
||
|
||
The incoming author report attributes 12 passing CLI tests and final lint/build
|
||
to Codex-9e8r6t / palette_finish. The incoming independent report attributes 183
|
||
assertions over 21 processes to Codex-9e8r6t / behavior_audit against frozen CLI
|
||
SHA-256 `BAD169F8BE78DCFA74B32714569C886DD2132727080684FC2BA618D5822E3559`.
|
||
Those are prior executable results, not fresh passes against b853 plus B4.
|
||
Their earlier pre-implementation findings are recorded as closed in that work.
|
||
|
||
The preview describes changed files, not a persisted approved plan or full
|
||
project digest. Provisional IDs can differ across separate invocations until
|
||
stabilized. Core persistence documents recoverability rather than multi-file
|
||
atomic visibility, cross-process compare-and-swap, or guaranteed power-loss
|
||
durability. These existing boundaries are not newly discovered regressions.
|