diff --git a/harness/STATE.md b/harness/STATE.md index 096db75c..138f30c7 100644 --- a/harness/STATE.md +++ b/harness/STATE.md @@ -3,17 +3,22 @@ ## Objective and phase Direct process/chain editing is frozen in `codex/process-direct` at production -7a1e12b, based on 1bf8ebc, in `D:/CodexBuilds/Capella2-scenario-direct`. The prior -scenario branch is retained. Full Windows desktop tests pass 303/303, strict -all-target desktop Clippy and optimized build pass; independent existing core -topology/diagnostics/nested-source suites pass 19/19. The frozen binary, manifest -and logs are at `D:/CodexBuilds/Capella2-scenario-target/freeze-process-7a1e12b`. -`release-process-editing.md` records the identity-preserving direct gestures, -derived nesting, bounded forms, observed regression fixes and exact artifact hash. -No native operation was performed by this worker. Root independent review and -Windows/Linux native trials are pending. The accepted model/source/API contract -is unchanged; cross-reference inner-chain linking and disconnected exchange-only -topology remain explicit model boundaries, not implied completed semantics. +8bc564b, based on 1bf8ebc, in `D:/CodexBuilds/Capella2-scenario-direct`. The prior +scenario branch is retained. Independent review found and this revision fixes +the empty-owner → first exchange continuation dead end: **Append exchange…** +captures the last ordered contribution and creates the next occurrence plus its +explicit sequence link in one validated model/source Batch. No mode flag or +arbitrary topology is added. Both OA/SA regressions cover exact source history, +reopen, preservation of longer ordered paths and incompatible-source rejection. +Full Windows desktop tests pass 305/305; strict all-target desktop Clippy and +optimized build pass. Original independent core topology/diagnostics/nested-source +verification remains 19/19 at 7a1e12b. The current frozen binary, manifest and logs +are at `D:/CodexBuilds/Capella2-scenario-target/freeze-process-8bc564b`. +`release-process-editing.md` records behavior, verification and exact artifact hash. +No native operation was performed by this worker. Root review/native follow-up +must include empty → first exchange → Append exchange on Windows/Linux. The +accepted model/source/API contract is unchanged; cross-reference inner-chain +linking and disconnected exchange-only topology remain explicit model boundaries. Direct scenario work is now in isolated `codex/scenario-direct`, checkout `D:/CodexBuilds/Capella2-scenario-direct`, base ab661f2, dedicated target `D:/CodexBuilds/Capella2-scenario-target`. Scope and acceptance are recorded in diff --git a/harness/release-process-editing.md b/harness/release-process-editing.md index 3b3d7842..df9c3ec3 100644 --- a/harness/release-process-editing.md +++ b/harness/release-process-editing.md @@ -54,7 +54,7 @@ optimized desktop build with --locked --offline and the dedicated target. Record actual evidence and remaining native tasks before freezing. Root independently reviews and native-tests the freeze; full-release completeness remains separate. -## Implementation freeze and actual evidence — 2026-09-06 +## Original implementation freeze and actual evidence — 2026-09-06 Production is `7a1e12bc7c18c5693de688f054293bacd095f4d8` (`7a1e12b`). The prior `codex/scenario-direct` branch remains at its original head. Production @@ -76,10 +76,11 @@ SetSteps command, and successful edits reveal it in the graph. The 100% default and manual 50% zoom floor keep authoring legible. Explicit Fit may produce a small overview; choosing a drawing tool leaves that overview at 100%. No positions are persisted. A source-only exchange sequence retains its -legacy linear meaning: two or more entries have explicit Convert; one exchange -has no implied link to materialize and exposes Work/Control/Reuse form entry to -begin explicit topology. Disconnected exchange-only topology cannot be represented -by the accepted contract; the editor does not introduce an invisible mode flag. +legacy linear meaning: two or more entries have explicit Convert. The original +one-exchange fallback offered only Work/Control/Reuse; independent review found +that this blocked exchange-only continuation. The correction is recorded below. +Disconnected exchange-only topology cannot be represented by the accepted +contract; the editor does not introduce an invisible mode flag. The new App resize regression initially failed because existing window handling only invalidated scenario contexts; it now invalidates process contexts too. @@ -116,6 +117,46 @@ It contains the binary, manifest and five verification/probe logs. Binary size: `701ECE6CD329A1CBE50D4DAEBFCE33AD7A93E6906295E74C3290653706F8455A`. The frozen copy was hash-compared with the release target binary. +## Independent-review correction — exchange-only continuation + +Production follow-up is `8bc564b4b2c3b6d12eb61fc09aec7f129f6e45b7` (`8bc564b`). +Independent review found a real dead end: after the first Exchange was created in +an empty process/chain, the accepted model classified it as an ordered exchange +path. There was no path to convert and the fallback omitted another Exchange. + +Ordered paths now offer **Append exchange…**, including a single contribution. +The form names the captured final contribution and explains that Create adds an +explicit sequence link. Its contextual picker accepts exchanges whose source +matches the preceding exchange's target. Create emits one existing validated +Batch: new exchange occurrence, preceding-to-new SequenceLink and SetSteps; +existing implied links in longer ordered paths are materialized in that same +transaction. The second contribution therefore restores the direct topology +palette without inventing disconnected topology, global exchanges or a mode flag. +Source reuse, same-owner endpoints and the cross-reference semantic boundary remain. + +Two new regressions both exercise OA and SA. The App regression starts with an +empty owner, creates its first exchange, invokes the actual Append event and +creates its second exchange. It verifies exactly one link, two distinct occurrence +IDs, unchanged shared records, one history entry per Create, exact model/source +Undo/Redo and source reopen. The independent proposal regression preserves a +multi-entry ordered path, rejects an incompatible exchange without losing its +form, and validates the serialized ordinary Batch through core execution. + +Focused regressions: **2 passed**. Full desktop tests: **305 passed**, zero +failed/ignored. Strict all-target desktop Clippy: **passed** (`-D warnings`). +Commands used `--locked --offline` and the same dedicated target. The final full +suite took 10.75 seconds; Clippy took 4.96 seconds. Production changes are confined +to `topology/direct.rs`, `topology/view.rs`, local tests and `app/process_canvas.rs`. +No native input or new actual HTTP transport trial was performed. + +Updated optimized build: **passed** in 38.80 seconds. Current frozen Windows +artifact, manifest and three verification logs are in +`D:/CodexBuilds/Capella2-scenario-target/freeze-process-8bc564b`. +Binary size: 20430336 bytes; SHA-256: +`8BD5C84DF0F4E333C1955E6E9299F431081912E1A504ED13355E0BFA70F8B8BD`. +The frozen copy was hash-compared with the release target binary. The prior +`freeze-process-7a1e12b` remains available as historical evidence. + ## Root-owned native acceptance still required At 1440x900 and 1100x700 on Windows and Linux, operate the actual application: @@ -135,7 +176,8 @@ At 1440x900 and 1100x700 on Windows and Linux, operate the actual application: unfocus during an armed or held gesture. Verify no stale endpoint/slot commits. Confirm Create/Cancel remains accessible while a long form is open, search/page changes retain its values, navigation is guarded and save-time scrolling recovers. -5. Convert a legacy multi-exchange path and try the single-exchange entry actions. +5. Start an empty owner, add its first exchange, use Append exchange for its second, + and verify the visible link/direct palette. Also append/convert a legacy multi-exchange path. Undo/Redo the conversion and direct edits, save/reopen a nested source project, then inspect the same occurrence/link IDs, guards and shared source records.