97 lines
6.0 KiB
Markdown
97 lines
6.0 KiB
Markdown
# Independent ordered semantic review
|
|
|
|
Working-tree slice on DATA `c091f80`. This does not claim full semantic GUI or
|
|
release acceptance. Owned production files are `semantic_review.rs` and its subtree;
|
|
the public Workflow interface, core, language and REST contract remain unchanged.
|
|
|
|
## Implemented contract
|
|
|
|
Members / rows now exposes ordered Steps and Fragment branches using the existing
|
|
explicit OA/SA pair and presence workflow. Paths cover Process / FunctionalChain,
|
|
Scenario, Branch occurrences and Fragment branches. Membership does not create or
|
|
reparent a referenced object. Keep, Take and Candidate presence affect only the
|
|
selected entry; the existing exact pairing/reset and constructor-overlap checks
|
|
remain applicable.
|
|
|
|
Order is an independent fact. Keep retains the frozen target order. Take follows
|
|
typed explicit correspondences; destination-only members retain their positions
|
|
when the mapped source already agrees with their surrounding order. Taking an
|
|
incoming member uses the core's unique adjacent-anchor rules. Ambiguous placement
|
|
blocks until an explicit final Order is selected.
|
|
|
|
Set final value shows named positions with Up/Down controls. Its complete order
|
|
must include every surviving destination member once. The order draft is initialized
|
|
from the proposed membership, then remains authored state: changing membership,
|
|
leaving decisions unselected, preview errors and recovery do not silently replace
|
|
it. The explicit Reconcile with selected membership action removes excluded rows,
|
|
retains surviving authored positions, and appends newly included rows for deliberate
|
|
placement. Invalid or obsolete order drafts remain visible and block Apply until
|
|
repaired. A provisional membership list exists only for these editing controls;
|
|
the actual request always receives complete validation.
|
|
|
|
The GUI composes members before order, submits one complete candidate record, and
|
|
uses the unchanged core for exact history, scope overlap, impacts and atomic
|
|
Document/source application. Recovery adds typed ordered draft rows with the same
|
|
accepted-model fingerprint check and no persisted computed commands.
|
|
|
|
## Review and verification
|
|
|
|
The independent behavior-review agent compared the anchor algorithm, target-local
|
|
Take exception, final member-set checks and recovery path against the core and
|
|
reported no concrete defect. Their suggested multi-insertion falsifier was added:
|
|
two incoming members must retain source order despite independent UUID ordering.
|
|
|
|
Eight focused tests cover both directions, all four owner shapes, single and
|
|
multiple uniquely anchored insertions, ambiguous insertion with a destination-local
|
|
step, independent Keep/Take/Candidate removal, order-only scope, membership picker
|
|
ownership, rejected/stale/restored draft retention and explicit reconciliation,
|
|
direct core preview/result comparisons, and exact source/history Undo/Redo/reopen.
|
|
The first test run found an invalid scenario fixture using sequence-only Controls;
|
|
the fixture was corrected to scenario Actions without changing production behavior.
|
|
The focused run passed **8 tests, 0 failures, 0 ignored** (4.70 seconds;
|
|
`.local/semantic-ordered-test.log`). Owned-file rustfmt passed. Full desktop
|
|
regression, strict checks and native acceptance remain root-owned gates.
|
|
|
|
## Native acceptance still required
|
|
|
|
Validated standalone fixtures and exact core request/result/source oracles are
|
|
available in ignored `.local/native-fixtures/semantic-ordered*`, with main steps in
|
|
`semantic-ordered.steps.md`. Five fixtures cover the main sequence, reverse sequence,
|
|
Scenario, Branch steps and Fragment branches. Each initial/final model validates and
|
|
round-trips through source and JSON; ambiguous Take rejects and the explicit final
|
|
order has zero additional impacts. These are programmatic oracles, not native evidence.
|
|
|
|
Use an OA Process traced to an SA FunctionalChain, with explicit corresponding
|
|
occurrences Request start, Energize and Verify interlock. OA order is Request,
|
|
Verify, Energize. SA order is Request, Local self-test, Energize, with the mapped
|
|
Verify occurrence owned by the chain but not included. Supply explicit reference
|
|
pairs for the three mapped occurrences.
|
|
|
|
1. In Members / rows choose Ordered steps, stage the Verify pair and Take
|
|
Operational. Expect a unique-anchor error; Local self-test makes placement
|
|
ambiguous. No accepted model/source/history change occurs.
|
|
2. Use Review final order, then Set final value. The initial named draft retains
|
|
Request, Local self-test, Energize and appends Verify. Move Verify Up once to
|
|
choose Request, Local self-test, Verify, Energize. Preview must preserve the
|
|
independent local occurrence and show only the explicit member/order facts.
|
|
3. Toggle membership of another paired occurrence while retaining the order draft.
|
|
Expect an exact-member-set error. Reconcile explicitly, inspect the retained
|
|
positions, then move the newly appended entry. Cancel/reopen recovery must retain
|
|
the rejected raw order; stale accepted models must reject recovery.
|
|
4. Apply, inspect the unchanged unrelated source/comment text and exact history,
|
|
Undo once, Redo, Save and reopen. Repeat in reverse and for Scenario, Branch and
|
|
Fragment branch order at normal and minimum window sizes.
|
|
|
|
Root also observed Reference pairs buttons clipped at the right edge in the
|
|
previous native binary. This slice explicitly bounds that panel's scrollable,
|
|
content column and rows to available width. Recheck Use pair and every Remove pair
|
|
with long identity labels at 1440x900 and 1100x700; the layout change has not yet
|
|
received native acceptance. The footer now accurately leaves attached-record and
|
|
multi-source review pending.
|
|
|
|
Root also observed top-level Model checks and Engineering guide disappearing at
|
|
1100x700 behind the previous horizontal navigation. The exact navigation container
|
|
in `views.rs::view` now uses `task_nav.wrap()` with unchanged buttons/actions/styles.
|
|
No `app.rs` handler was changed. Owned rustfmt passed; verify all nine pages remain
|
|
visible and usable at 1100x700 and 1440x900 in the rebuilt native binary.
|