# Contextual-source integration preflight — 2026-09-11 Codex-ytr83r /root/integration_audit. Read issues #1/#2 through comments 252/253, updated AGENTS.md, and ContextualSourceDrafts20260911 handoff. Coordination: [comment 256](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/1#issuecomment-256). Compared exact contextual checkpoint `df6f59562643b7771ecf0c972f8655f3e3f1c4da` with this host's B4+CLI `023e3a8f097158ac84ca47a58cfa917c503804b0`. **Recommendation:** import only the contextual commit `df6f5956` onto the current coherent tree, merging the small adapter/guide overlaps and attribute union. Its preceding publication/packaging commits are not source prerequisites. Treat it as an integration checkpoint: the short-host source form correction and corrected native Save procedure are later work, and issue #2 remains open. Root owns timing of integration after the current build's source freeze. No cherry-pick, index/source/configuration edit, commit, Cargo, compiler or native operation was performed. The authorized object fetch used `--no-tags --no-write-fetch-head` with the exact hash; it populated available objects without changing refs, FETCH_HEAD, index or working files. Only this new report was written. Root's staged/uncommitted maintenance, runtime notice and lifecycle evidence were left untouched. ## Exact ancestry and minimum import All four commits form a linear chain after CLI source `01b76a1e89e93b7992f39e63560aa8b2ca2f69e0`: | Commit | Scope | Needed for contextual source? | | --- | --- | --- | | `6a610616e751a9bcba118df0612ab73ceadc934b` | GUI prerelease evidence, reports and raw attributes | No; preserve as separately published historical evidence when deliberately importing it. | | `27df4a3945ebc97cd7cbde61f6aeea7a91c680d3` | Standalone CLI packaging scripts/tests/docs/evidence and attributes | No; optional packaging work with its own review/release scope. | | `07eb3cd12b5d0f2fa19d94ea1f5d2f8aade240ec` | Updated AGENTS plus PROJECT_GOAL formatting | No source dependency; root is independently syncing instructions and preserving the user's goal. | | `df6f59562643b7771ecf0c972f8655f3e3f1c4da` | Contextual-source desktop implementation, review/oracle/fixtures/raw evidence | Yes; one coherent source import. | The first three change no `crates/`, Cargo.toml or Cargo.lock relative to 01b. The df6 commit also changes no core/server/CLI source, schema, Cargo inputs, generated language/API files or packaging scripts. Its desktop changes use the existing core command/validation/source boundary. No new dependency download or schema migration is introduced by this import. Import all 13 desktop paths together: `app.rs`, `app/checkpoints.rs`, `behavior.rs`, `behavior/contextual_source_tests.rs`, `behavior/creation.rs`, `behavior/scenario.rs`, `behavior/scenario/workspace.rs`, `behavior/source_draft.rs`, `behavior/topology.rs`, `behavior/topology/contextual.rs`, `behavior/topology/direct.rs`, `behavior/topology/view.rs`, and `guide.rs`. Splitting the child source helper from App admission/Escape/recovery, command-correlated selection, parent forms or retained-owner presentation would be incoherent. In particular, the App change passes Project into `created_selection`, routes context-bound first actions and avoids a destructive sync for no-op Undo/Redo. ## Concrete overlap and integration checks Nonmutating `git apply --check --whitespace=nowarn` was run separately on each desktop patch from df6's parent. Eleven paths apply directly to current source. Two fail direct patch context; this is not a performed three-way merge result: - `behavior.rs`: the module hunk at peer line 14 meets our `mod scenario_lifecycle;`. Keep that module and add the peer's cfg(test) `contextual_source_tests` and `pub(crate) mod source_draft`. The peer's source event predicates, source state adapters and unavailable-owner view additions are separate from B4 Scene construction/rendering/hit-testing. Preserve all current lifecycle fields, marker arbitration, message alignment and activation clipping; do not replace the complete file with the peer version. - `guide.rs`: the peer's scenario walkthrough hunk at line 490 meets our corrected clicked-tool instructions. Keep the B4 lifetime keywords/explanations, capsule/X selection, `?` versus unanswered-call `…`, clicked fragment/operand placement, Open definition/Back and advanced stored-history instructions. Add the peer's empty-state/staged-source lifeline sentence and its process, machine-owner and nested draft explanations. Do not restore the older Destination-selector/Draw-message wording while resolving the hunk. `scenario/workspace.rs` is the third path changed on both sides, but our only delta from 01b is removal of a comment. Its contextual patch passes directly; the peer retains `.key((context.document, context.scenario))`, `on_show` and `on_resize`. Keep the current same-size new-owner viewport behavior and its separate existing workspace tests. The peer's large line count mostly nests the parent form beneath the source-child branch; it is not a B4 renderer edit. Our lifecycle production/test files are absent from df6's delta. Our server schema-check correction and CLI source must remain. No peer chooser/workspace production from Codex-956atf is silently incorporated by this commit; its later combined canvas/focus integration still needs coordinated reconciliation. ## Exact-byte evidence and provenance The complete contextual experiment directory has 40 committed files. Read-only Git-object verification passed all 39 entries in its inventory (which excludes itself); inventory SHA-256 is `e7267296d0f21b1db1a3d28dc3a1f016596f005e8660c82f09d176ffa047ffd1`. This preserves 37 original raw records plus README, source readback and inventory. Raw logs include real failed attempts and an actual empty successful compiler log; do not trim, normalize or replace these with new-host evidence. Exact oracle/base Git blobs also match the published evaluator manifest: | File | Bytes | SHA-256 | | --- | ---: | --- | | `harness/staged-source-authoring-contract.rs` | 22693 | `9eb9dd3868b6cb772f907d16ae02995ad10a16f85c087012c24948e6e6fe775d` | | `harness/fixtures/staged-source-authoring/base/project.arcadia` | 593 | `aa844950ec4fb86f262a257e1fc370a26557ea7978d8a4cab78265037660234c` | | `harness/fixtures/staged-source-authoring/base/notes.arcadia` | 63 | `ad9de02963c20d1f43856455a797deb05ca674659e45f2c4b96b52783024f8bd` | Merge these attribute rules into root's current union before staging/import verification; preserve existing lifecycle/history/oracle/font rules: ```gitattributes harness/experiments/contextual-source-20260911/** -text whitespace=cr-at-eol harness/experiments/contextual-source-20260911/**/*.log whitespace=-blank-at-eof,cr-at-eol harness/fixtures/staged-source-authoring/** -text whitespace=cr-at-eol harness/staged-source-authoring-contract.rs -text whitespace=cr-at-eol ``` The commit also appends the harmless `harness/experiments/cli-prerelease-20260911/**` raw rule; that evidence directory is not included in df6 itself. Earlier publication attributes in its parent are not dependencies of the new archive. Recheck archive/fixture/oracle hashes from index blobs and a later checkout; working-file checks alone do not establish Git byte preservation. **Production source byte distinction:** eight of the 13 desktop blobs directly match the archived focused5/source-freeze hashes. The other five match those hashes exactly after converting their committed LF bytes to CRLF, with no other byte change: `creation.rs`, `scenario/workspace.rs`, `topology/contextual.rs`, `guide.rs`, and `source_draft.rs`. This explains the mismatch as Git newline normalization. It does not invalidate the archived working-tree checks, but df6's committed source bytes are not identical to all recorded old build inputs. Keep that explicit when citing old GUI `52DE82…`; our merged source requires new build-input/binary hashes. Do not rewrite historical manifests to match it. Import the implementation report, appended independent review, staged oracle report, fixtures and archive with the source. The independent review's existing pre-implementation section is extended, not discarded. df6 changes no shared PLAN/STATE/TASK_LEDGER, so there is no reason to overwrite this host's ledgers. ## Checkpoint limits and follow-up blockers - Author's exact final snapshot passed 23 contextual tests, three guide tests, strict Clippy, GUI build and formatting. Full 675 belongs to the preceding snapshot; the final executable lists 676 tests but has no full-676 pass in the archive. None of these results is a run of the B4+CLI+contextual merge. - The source Name is clipped in the actual 1100×700 host. Issue #2 comments 247/249 assign `source_draft.rs` essential-fields-first layout and meaningful short-host tests to Codex-9e8r6t. That follow-up is absent from df6. Import its subsequently frozen/published correction before claiming this workflow's minimum-window acceptance; do not invent a competing host-layout correction. - df6's fixture README incorrectly suggests Save can preserve a staged-only baseline after child Use. Later comment #1/248 corrects this: Save intentionally applies a valid pending behavior/source draft. For an unchanged baseline, inspect a snapshot before Save or Cancel the parent and then Save. Preserve the author's separately observed Save-adoption route; direct parent Apply/Create is distinct. Bring in the author's corrected README/report when published, or annotate this instruction explicitly during import. The oracle Rust/expected semantics do not change for that procedural correction. - Root must compile/admit the unchanged oracle against this host's matching completed core rlib and provide the exact runtime DLL when running it. Then run the combined affected tests, lifecycle/direct-canvas regressions and required full/strict gates, followed by source+consumer Save/Undo/Redo/reopen complete Project/reachable SourceBundle/physical file-map checks. Retained detached files must come only from the explicitly pinned original commit carrier; preserve the existing oracle's exact rule. - The user clarified in issue #2/250 that semantic diagram constraints can restrict placement. Codex-956atf owns the coherent canvas decision/next lease (#251). Staged forms and B4 support that work; neither closes issue #2. No further dependency or source-content blocker was found in this integration preflight. This is an import recommendation, not a second broad implementation review, executed merge, native pass or release authorization claim.