Record Windows and Linux direct state editing acceptance

This commit is contained in:
2026-09-06 03:31:47 +03:00
parent 9118218ac3
commit c5276b1943
6 changed files with 268 additions and 230 deletions
+5
View File
@@ -58,3 +58,8 @@ relative to a canvas whose origin may move when selection changes the toolbar.
Viewport notifications fit only on actual size changes. Native testing also showed
Iced WGPU places parent meshes after clipped child meshes; backgrounds must share
their content clip to avoid hiding vector geometry while leaving text visible.
State camera/tool lifetime follows effective machine and diagram identity, even
when selection changes through Catalog or Layer outside Behavior. Reset only on
actual context change; preserve same-view return. Independent review reproduced
the leak and native Windows/Linux tests verified the correction in316dc55.
+21 -8
View File
@@ -16,17 +16,30 @@ The current forms are a closed typed-record adapter, not a second metamodel. Exp
Nested source ownership and persistent REST bundles are implemented and verified: Windows minimum-size source-to-graphics, nested reparent/source/Undo/Redo/Save/reopen, recovery, rebuilt Linux source/history/Save/reopen, independent review and both platform suites passed. Preserve the existing grammar/updater and separate allocation/order semantics.
The user-directed contextual-menu/source-tree, movable-port and direct-connection milestone has scoped Windows/Linux native acceptance. See release-port-drawing.md for exact builds, saved trials and minimum-size boundaries. Continue direct state-machine editing in the isolated state-integration checkout: persist typed machine context, use shared state/route geometry, retain drafts until accepted document commit, then verify creation, movement, transition drawing/reconnection, undo and reopen. This first behavior slice precedes scenario/process gestures; all broader release milestones remain required.
Explorer/port discovery, custom routing, direct palette connections, four-side port
anchors, contextual menus and source folders have scoped Windows/Linux acceptance.
See release-explorer-usability.md, release-routing-verification.md,
release-routing-linux.md and release-port-drawing.md for exact evidence and limits.
The user-directed actor/system port and model-navigation milestone is accepted: visible Add port → Connect boundary exchange, grouped roots, focused containment, breadcrumbs, contextual search and paging, clear full-depth outline, and separate allocations. Native Windows authoring/save/reopen, 251-root paging, 12-level navigation, 1440×900/1100×700 inspection, rebuilt Linux save/reopen and single-line font correction passed. Independent requirements, correctness, native UI and simplicity findings are addressed; release-explorer-usability.md records exact evidence and remaining performance boundaries. Resume source recovery acceptance and the release milestones below; the full scope remains intact.
Direct state-machine editing is accepted through316dc55: typed persisted views,
explicit-owner creation, movement, direct transitions/reconnection, typed detail
forms, folding, placement and correct camera/tool lifetime. Windows default/minimum
and Linux native acceptance plus independent reviews are recorded in
release-state-editing.md. Direct scenario/process gestures remain required.
Editable connection routing has passed code/native acceptance and independent follow-up at desktop checkpoint `23535b4`, with the Linux-discovered viewport correction in `366ce44` also verified on the actual rebuilt Linux app. Current WSL automated checks and routing runtime acceptance are recorded in release-routing-linux.md. Continue production source authoring under release-source-integration.md and direct behavior editing. Typed port integration and its native authoring/reopen checks are complete at `fa096ce`; `release-diagram-port-correction.md` records the domain correction. Existing R5 state authoring is preserved and still needs direct gestures and full native acceptance.
R6 data contracts are active in the isolated data integration checkout. Freeze the
full payload/dictionary shape as schema/source4, keep existing typed ports, migrate
older formats explicitly while preserving lexical ownership/comments, then verify
GUI/text/REST parity and real engineering workflows. See release-data-contract.md
and the implementation plan in that checkout. R3 semantic drift/reconciliation
follows the R6 freeze; its current prose-only behavior is insufficient.
The user's routing correction is implemented as editable connection bend points with automatic obstacle-aware starting routes. Persistent commands, source/API parity, shared geometry and desktop gestures passed automated and native verification. `65fa9ab` resolves six default SA label-overlap pairs; follow-up typed reopen, short gestures and SVG export at 1100×700 passed. `release-routing-verification.md` records exact evidence, completed independent native follow-up and the 119 ms dense full-solve limitation. Route identity belongs to the diagram representation and does not alter semantic endpoints or ownership. Direct state gestures remain required and should reuse geometry/routing primitives only where semantics match.
Drag selection, typed port/schema 3 and routing corrections are complete. Make behavior diagrams directly editable using shared persisted geometry and ordinary commands, and replace the single huge source editing experience with a modular project/include workflow. These are release requirements, not future limitations. The source bundle core and nested source experiments provide evidence and reusable foundations, not production editor acceptance. Source projects must preserve identity, precise per-file diagnostics, Git-friendly ownership of declarations, cycle/missing/duplicate include failures, safe local include resolution and GUI/API parity. Behavior acceptance requires actual canvas movement and contextual creation/editing, not only selection plus external menus. The proposed first state-machine slice is in `release-state-gesture-design.md`; verify its interfaces before changing the shared schema.
Source direction: extend the production parser/span index and shared updater for selected nesting and shorthand constructs, retaining the existing virtual-bundle foundation. The 23-test experiment is evidence, not production code to copy: independent probes found item-comment misattachment, shorthand description rejection and unsupported deletion. Verify explicit comment ownership, all edit/delete paths, exact source Undo, invalid drafts and per-file diagnostics before adopting syntax. Direct behavior editing first tests a state-machine task (create in region, drag, draw/reconnect transition, edit guard, undo/reopen) before propagating the interaction design to scenarios/chains. Compare successful task completion, semantic clarity, mode switches and recoverability, not control counts.
Continue source authoring improvements only through the production parser/updater.
The23-test experiment is evidence, not architecture: independent probes exposed
comment misattachment and unsupported edits. Additional shorthand must preserve
complete edit/delete behavior and exact source history, and justify itself in real
human authoring tasks. Shared state placements are now validated; scenario/chain
interaction must preserve its own occurrence and ordering semantics.
1. **Release coverage audit and interfaces.** Compare actual core/UI/API with official Capella OA/SA semantics and the new objective. Freeze a coverage table and concrete variant/reference/transition contracts before editing shared interfaces. Distinguish unsupported later layers from missing OA/SA workflows; V2 exclusions are reconsidered. Native audit exercises onboarding/help/authoring at supported sizes. Independent audits have separate file ownership.
2. **Complete engineering semantics.** Fill verified gaps in capability relationships and mission involvement; operational process/functional-chain function/control topology; scenario/state/data constructs needed by OA/SA engineers. Add typed semantic-content drift and reviewed existing-counterpart reconciliation, including reference mapping and explicit dependency/ownership decisions. Every addition has a usable graphical authoring workflow, equivalent source/API representation, meaningful reject/undo/delete/reidentify/transition tests and a worked example. Exact additions and invariants are recorded in the coverage/interface artifact from milestone1, avoiding speculative LA/PA concepts.
+94 -169
View File
@@ -1,188 +1,113 @@
# First release — current engineering state
## Objective and current phase
## Objective and phase
The first-release goal remains active and incomplete. Deliver Rust/Iced Operational
Analysis and System Analysis/System Architecture for system engineers, equivalent
graphical/textual/REST semantics, hierarchical diagrams and typed ports, modular
source projects, artifact traceability, editable behavior, useful offline help,
and Windows/Linux release evidence. Later Arcadia layers remain future releases.
Authoritative objective: attachment
`07aee762-7d27-4cbe-81c3-2e82c7170711/goal-objective.md`, reread 2026-09-06.
PLAN.md, TASK_LEDGER.md and release-semantics-audit.md retain full release scope.
The first-release goal remains active and incomplete. Deliver usable Rust/Iced
Operational Analysis and System Analysis/System Architecture, equivalent graphical,
textual and REST semantics, artifact traceability, directly editable behavior,
offline guidance, and Windows/Linux release evidence. Later Arcadia layers remain
future releases. The full authoritative objective was reread on 2026-09-06:
attachment07aee762-7d27-4cbe-81c3-2e82c7170711/goal-objective.md.
PLAN.md retains the entire release scope; no subsystem acceptance completes it.
The latest user-directed drawing/port/menu/source-tree milestone is accepted at
`fef2e0d` plus tooltip-layer follow-up `ad7feb5`. It does not complete the release.
Root now integrates direct state-machine editing in an isolated worktree. There
is meaningful implementation, independent review and real runtime progress; no
external blocker or disk blocker exists.
Direct state-machine editing is accepted through production316dc55. The main
checkout can fast-forward to this integration. R6 data/interface contracts are now
being implemented in a separate checkout; they are not accepted or released.
Meaningful implementation and runtime progress continues; no external blocker exists.
## Accepted foundations and evidence
## Accepted foundations
- Typed OA/SA model, schema 3 ports, validated atomic commands and ordinary history
are shared across three Rust crates. Typed contracts and migration are documented
in release-port-contract.md, release-port-core.md and release-port-migration.md.
Desktop typed authoring checkpoint `fa096ce` passed native creation, generation,
undo/redo and persistence. Original Capella was operated in a disposable workspace;
exact observed semantics/workflows: release-capella-workflow-benchmark.md.
- Explorer/port discovery `d364d3c`: visible Add port, grouped roots, focused children,
breadcrumbs, contextual search/paging and full-depth outline. Windows port/Standard
exchange, 251-root paging, 12-level navigation and 1100x700 trials passed; rebuilt
Linux save/reopen/font correction passed. See release-explorer-usability.md.
- Editable routes `23535b4`, viewport fix `366ce44`, automatic labels `65fa9ab`:
authored bends/labels, nested group movement, folding/restoration, undo/redo,
save/reopen, SVG and minimum-size gestures passed native and independent review.
See release-routing-verification.md and release-routing-linux.md. Dense optimized
full solve measured119ms; arbitrary dense crossings remain possible.
- Nested source and coupled hosted source/model checkpoint `4e8575b`: source3
element nesting/includes, token/provenance-aware structural writes, exact model
source history, retained drafts and safe Save All/recovery. Full422 Windows and
425 Linux tests, strict checks and builds passed at that checkpoint. Actual REST
import/comment-only revision/cross-file reparent/stale ETag/restart passed.
Windows/Linux source and nested graphical edits, save/reopen and recovery were
exercised. See release-source-integration.md. Experiments remain evidence only;
do not adopt their independent parser/writer.
- Core typed OA/SA semantics, validated atomic commands and ordinary history are
shared by three Rust crates. Typed ports, explicit unresolved migration and
original Capella observations: release-port-{contract,core,migration}.md and
release-capella-workflow-benchmark.md.
- Explorer/port discovery d364d3c: Add port on participants, grouped roots, focused
children, breadcrumbs, contextual paging/search and full-depth outline. Actual
Windows creation,251-root/12-level trials,1100x700 and Linux reopen/font fixes:
release-explorer-usability.md.
- Routing23535b4, viewport366ce44, labels65fa9ab: authored bends/labels, group
movement, fold restoration, Undo/Redo, save/reopen and SVG, including minimum-size
native trials. Dense full solve measured119ms; arbitrary crossings remain possible.
See release-routing-verification.md and release-routing-linux.md.
- Source4e8575b: nested lexical ownership/includes, provenance-aware token writes,
exact accepted source/model history, retained drafts, Save All/recovery and coupled
hosted source/model revisions. Windows/Linux native and actual REST restart,
stale ETag, comment-only edit and cross-file reparent passed. Full422 Windows /
425 Linux tests at that checkpoint. See release-source-integration.md.
- Direct drawing fef2e0d plus tooltip ad7feb5: OA Interaction, SA Functional and
Boundary Exchange by palette click-click or drag; compatible highlights, automatic
function ports, four-side draggable anchors, contextual menus and source folders.
Independent pointer/tooltip findings fixed and native retested. Windows193 desktop
and Linux189+4 focused tests followed earlier full485/488 suites. Scoped native
Windows/Linux acceptance: release-port-drawing.md and release-context-menus.md.
## Drawing acceptance — current main checkout
## Newly accepted state workspace
`93fd32c` fixes candidate scaling without weakening validation; `35133de` supplies
persisted four-side normalized port anchors. `fef2e0d` adds direct palette drawing,
shared automatic labels, contextual menus and the source folder tree. OA Interaction,
SA Functional Exchange and Boundary Exchange accept click-click or drag. Function
cards create/reuse typed ports atomically. Compatible targets highlight; Standard
and Flow contracts remain distinct. Pan retains source; Escape cancels.
Production316dc55 includes typed machine views, shared persisted geometry, atomic
region/symbol/state creation, group movement, direct transitions and reconnection,
Internal rows, Local edges, typed detail forms, folding, placement and navigation.
Architecture and Behavior view selections are separate. Drafts survive rejected
source/model commits; passive camera events never apply a form.
Independent review reproduced batched-pointer click corruption and overview port
mispicking. Ordered CursorMoved coordinates, explicit context epochs and nearest
port glyph picking fix these, with production regressions. Native review then
reproduced port-tooltip overprint: separate Frames still share an Iced GPU layer.
The fix uses a passive second stacked Canvas (a real renderer layer). It preserves
interactive child state/input and resets held-button suppression on context change,
matching releases, Escape and focus loss. CursorLeft alone does not end suppression.
Independent/native findings fixed: covered GPU shapes, pseudo-label/edge collision,
selection-relayout drag displacement, missing typed form access, folded-content
access, wrong-view placement Apply, and camera/tool leakage on machine navigation.
An actual owner/view change resets gesture state and fits; returning to the same
view preserves camera/tool. Exact evidence and limitations: release-state-editing.md.
Evidence is in release-port-drawing.md and release-context-menus.md. Exact native
review report: `D:/CodexBuilds/Capella2-release1-01a06e2e/drawing-independent-native-review.md`.
Windows independent trials passed Standard rejection/completion, automatic function
ports, undo/redo, save/reopen and1100x700. Overprint was reproduced on9A7FF074 and
closed on3F534C67 at1440x900 and1100x700. Root tested final1EEBDC3C: first port drag,
menu outside dismissal, first repeated drag, direct FE, readable identity and Save.
Saved trial: `ui-port-tooltip-final/project.arcadia`,41objects/26links/0checks.
Verification: full551 Windows /554 Linux workspace tests and strict workspace
Clippy at e0b2210. Final316dc55:241 desktop tests, strict all-target desktop Clippy,
and desktop builds on each platform; five new navigation tests included. Two guide
tests passed after help changes. Source/reST/API state contracts and actual HTTP
rejection/revision/source/restart tests passed earlier in the integration.
Root operated actual Linux7AC5EEE: first FE drag, Right-to-Bottom port drag, Reset/
Undo, repeated Bottom-to-Left drag, source-offscreen arrow pan and completion,
Save All/reopen, persisted geometry and source-tree expansion/open. Saved trial:
`ui-port-tooltip-linux/project.arcadia`,41objects/27links/0checks. Runtime log empty;
Linux window closed normally, exec13766 exit0. Linux was inspected at1440x900;
minimum-size acceptance is Windows, not a claim of Linux minimum-size testing.
Root and independent Windows native trials covered1440x900 and1100x700 creation,
nested movement, first-drag transition, endpoint/menu reconnect, invalid target,
Escape, timed Internal, Local/EntryPoint, placement Apply, Undo/Redo and save/reopen.
Linux native covered1440x900 creation, first transition/move, Undo/Redo, fold and
saved collapsed reopen. Final316dc55 native on both platforms proved same-view
camera/tool preservation and different-machine Fit/Select reset. Logs are empty.
Verification scopes: full485 Windows /488 Linux workspace tests preceded the last
pointer/tooltip refinements. Latest main Windows193 desktop tests, strict desktop
all-target Clippy and debug build passed. Latest Linux189 desktop tests, strict
desktop Clippy and release build passed; four new tooltip lifecycle tests then
passed separately. A142-test Linux result from a shared-worktree Cargo cache was
identified and EXCLUDED; scoped package cleaning and explicit main recompilation
established the valid189-test result. Use a distinct CARGO_TARGET_DIR per worktree.
## Active R6 implementation and next actions
## Active isolated state integration
Checkout D:/CodexBuilds/Capella2-data-integration; branch
codex/data-contract-integration, base5ce3eef+plan2bf4c54+navigation9118218.
Dedicated target D:/CodexBuilds/Capella2-data-target. Contract freeze is schema/source4
with full data payload and dictionary slices together; existing typed ports remain.
See release-data-implementation.md and release-data-contract.md in that checkout.
Worktree: `D:/CodexBuilds/Capella2-state-integration`, branch`codex/state-integration`.
Target: `D:/CodexBuilds/Capella2-state-integration-target`. Main core is not yet changed.
Ownership: data_core owns core model/data/validation/references/ports/transitions
and non-source tests; state_architecture_review owns source/migration/persistence
and their tests; drawing_correctness owns desktop. Root owns API/OpenAPI/reST,
integration and native input. Do not edit workers' files or reset their changes.
- `e7a8163` integrates reviewed core state-context commit a63654f, preserving latest
anchors and routing labels. State views skip semantic port layout after boundary
snapping; both routing and label passes reserve actual internal-row headers.
- `2459581` retains behavior drafts until Document commit succeeds.
- `53cd096` adds typed state-context forms, placement membership choices and normative
source/JSON/REST/OpenAPI contracts. Strict HTML generation passed. Two actual HTTP
tests passed, including malformed/invalid rejection, revision/source atomicity and
restart. Destination pickers permit intermediate invalid drafts so coordinated
element/diagram retargeting is reachable; Apply remains strict.
- `e5660b8` integrates App dirty/Close/Save/navigation/mutation guards. Exact prepared
commands acknowledge drafts only after accepted source/model writes. Review found
passive viewport events applying properties, queued source controls creating
competing drafts and stale delete confirmations; all three fixes have App tests.
Six App lifecycle tests passed, including typed source-writeback rejection/retry
and one Undo. Clean detached buffers after Undo are intentional; reachable bundle
and accepted Document are restored exactly.
- Integrated baseline:514 Windows workspace tests (277core,199desktop,38server),
strict workspace all-target Clippy passed. This baseline precedes direct gestures;
there is no native state-gesture acceptance yet.
1. Commit state evidence and fast-forward main from ad7feb5; coordinate Git index
before carrying documentation into the active R6 checkout.
2. Finish R6 core/source/desktop, integrate actual REST/schema/reST, independent
semantic/correctness/UX review, Windows/Linux checks and real data authoring.
3. Implement R3 typed semantic drift/reconciliation after R6 freezes. Current
baselines/reconciliation only cover prose. Prefer historical typed-body snapshots
and finite proposals; avoid a duplicate recursive semantic schema without evidence.
4. Complete direct scenario/process gestures, persistent coverage/filters,
Home/recent/recovery, hosted desktop ETag workflows and offline guidance.
5. Fresh final requirements/domain/correctness/native UX/architecture review; full
Windows/Linux/MSRV checks, real runtime, reproducible docs and release packaging.
Direct-state UI integration is now implemented (uncommitted): persisted canvas,
creation within explicit regions, movement, direct transitions and endpoint
reconnection, pan/zoom/Fit, typed detail forms, and contextual fold/unfold/hide.
The old computed static state scene is removed. Source/model commands remain atomic.
Independent review found removed typed-form access, unreachable folded contents,
selection relayout altering drag deltas, fallback owner resetting the first drag,
and same-size viewport events refitting the camera. Fixes preserve typed creation,
use state-specific menus, window-space ordered gesture deltas, retained owner and
actual-size resize checks. App tests also exposed Architecture placement leaking
into Behavior selection; the two view selections are now separate.
## Environment and native ownership
First direct-state Windows verification:231 desktop tests and strict desktop
all-target Clippy passed, logs `D:/CodexBuilds/Capella2-state-direct-{tests,clippy}.log`.
Native trial2A4B5C11 created a new SA StateMachine and dedicated view; it reproduced
missing box fills/borders while text remained. Iced WGPU appends parent meshes after
clipped children: the opaque parent background covered every node. The fix moves
the content background into the clip and restricts the outer fill to the guidance
strip. Native re-verification remains required. Saved reproduction is
`ui-state-direct-01/project.arcadia`,42objects/25links/2 expected incomplete-machine
checks. Trial window1442250 received normal close after verified Save; re-inventory.
Root exclusively owns native input. Latest saved Windows trial is window1706782,
ui-state-navigation-windows,49objects/28links/1 expected missing-owner warning.
Linux navigation trial3148598 closed normally, exec46107 exit0; baseline Linux
trial721472 also closed normally, exec72680 exit0. Independent Windows3672536 is
saved at1100x700. Older root drawing windows are saved. Re-inventory before input.
Protected user7210312/6228978 were absent; do not reset/save/close if they return.
Latest verification:551 Windows workspace tests (277core,236desktop,38server)
and strict workspace all-target Clippy passed. A single let-and-return lint in the
new label hit helper was fixed without changing behavior. Subsequent compact-toolbar
changes passed desktop Clippy and build. Exact logs use `state-direct-workspace-*`
and `state-compact-*` under D:/CodexBuilds.
Evidence: D:/CodexBuilds/Capella2-release1-01a06e2e. State source checkout/target:
D:/CodexBuilds/Capella2-state-integration and -target. Linux source/target:
D:/CodexBuilds/Capella2-state-linux-review and -target. Use distinct Cargo targets
per checkout; shared-cache results were previously caught and excluded.
Native82AE5A2C closed the missing-shapes bug; root directly created Region, Initial,
State, first-drag Initial→State transition, selected without motion, moved/undid the
state, created Internal Monitor communications with generated After30s Event,
Undo/Redo of both, and Fold/Unfold via right-click. Saved trial46objects/27links/1
remaining model check uses ui-state-direct-01/project.arcadia; its original empty
machine fixture is preserved in baseline-before-editing. Minimum1100x700 exposed
excessive toolbar height; latest build removes selected-action row and shortens
state heading. Native recheck is pending, along with reconnection, nested composite,
Linux state runtime and independent final runtime review.
Additional review/native fixes: Fold retains semantic selection; placement property
Apply retains Behavior view without overwriting Architecture view. Initial names
choose among12 deterministic route-aware positions, and label hit testing uses the
same cached rectangle. This closes the observed rightward-line/name collision in
code; native verification of this last refinement remains pending.
Root owns integration/native input; all workers have returned files. Every worktree
uses its own Cargo target. Main remains ad7feb5; state work is isolated and not yet
accepted into main. No release-completion claim.
## Exact next actions
1. Rebuild and verify the state rendering fix on the saved native reproduction;
complete real state creation, connections, folding, form edit, Save/reopen and
minimum-size trials. Commit only after reviewed behavior is demonstrated.
2. Finish state-edit acceptance with explicit retained
behavior view, creation in a region, movement, transition drawing/reconnection,
guarded forms, discoverable missing placements, pan/zoom and contextual actions.
Build/run/test native at default/minimum sizes; review/reproduce/fix findings.
3. Continue direct scenario/process gestures, R3 semantic drift/reconciliation,
R6 data contracts, persistent coverage/filters, Home/recent/recovery, hosted ETag
workflows, offline guidance and normative contracts. All remain release work.
4. Fresh final requirements/domain/correctness/native UX/architecture reviews;
Windows/Linux/MSRV checks, actual runtime, docs and packages/checksums before
completing the broad goal. V2 or a subsystem checkpoint is insufficient.
## Native safety and environment
Root owns native input. Final Windows1EEBDC3C window2100032/exec55548 is saved on
its isolated41/26 trial. Earlier windows524634 and328292 are saved on the Standard
and auto-port review fixtures. Re-inventory and inspect current dirty state before
operating any window. Protected user7210312 and earlier6228978 were absent; root did
not close them and makes no recovery claim. If either returns, do not save/reset/close.
Main Windows target `D:/CodexBuilds/Capella2-01a06e2e`; Rust1.98.1. Use `cargo test
--locked --workspace`, `cargo clippy --locked --workspace --all-targets -- -D warnings`
and `cargo build --locked -p oa-desktop -p oa-server`. WSL Ubuntu24.04 uses the
existing target/linux-cargo.toml vendor config and its own linux-target; launch
with WGPU_BACKEND=vulkan and the Mesa lvp ICD. Release evidence lives under
`D:/CodexBuilds/Capella2-release1-01a06e2e`. No remote push or usage reset is authorized.
Do not retry the previously rejected broad recursive target deletion.
Windows: cargo test --locked --workspace; cargo clippy --locked --workspace
--all-targets -- -D warnings; cargo build --locked -p oa-desktop -p oa-server.
WSL Ubuntu24.04 uses target/linux-cargo.toml and Mesa software Vulkan for native
WSLg. No remote push or usage reset authorized. No broad recursive target deletion.
+49 -50
View File
@@ -1,66 +1,65 @@
# Task Ledger — first release
Authoritative objective: attachment `07aee762-7d27-4cbe-81c3-2e82c7170711/goal-objective.md`, read fully on 2026-09-05. STATE.md records execution evidence; PLAN.md is the living strategy; DECISIONS.md and linked release contracts retain detailed rationale.
Authoritative objective: attachment07aee762-7d27-4cbe-81c3-2e82c7170711/
goal-objective.md, read fully2026-09-06. STATE.md records execution; PLAN.md retains
scope; DECISIONS.md and linked contracts preserve rationale.
## Goal and success criteria
System engineers can develop a coherent OA→SA system model, including iterative changes and evidence, through equivalent graphical, textual and REST workflows. Rust/Iced Windows and Linux release, strict reST semantics, navigable offline concepts/tutorials, and reproducible build/run/evaluation instructions. Later Arcadia layers are future releases. Completion requires actual native workflows, automated invariants, and fresh cross-disciplinary acceptance, not compilation or a feature count.
System engineers develop and iteratively reconcile OA/SA models through equivalent
graphical, textual and REST workflows. Rust/Iced Windows/Linux, strict reST,
traceability, navigable offline guidance and reproducible deployment. Acceptance
requires native workflows, semantic evaluators and fresh independent review.
## Given facts
- User prioritizes engineering usability and Capella domain fidelity, hierarchical containment/allocation displays, real function/component ports and intuitive transitions in both directions.
- Text-only model development must be practical; modular files/includes are the proposed answer to the current huge flat file.
- Drag selection must remain stable; behavior/scenario canvases must support direct editing consistent with architecture.
- Git and worktrees are authorized. Remote publication is not requested.
- Connection routes need explicit bend points/customization or sufficiently effective automatic routing. User observed straight connections prevent readable diagrams. Treat saved per-diagram routes and practical obstacle avoidance as a primary requirement, not visual decoration.
- User prioritizes Capella domain fidelity, hierarchy, typed ports and intuitive
transitions in both directions, without its clutter and navigation friction.
- Direct exchange drawing must avoid large endpoint dropdowns; ports must move
between sides; contextual menus should replace persistent action clutter.
- Modular source must be practical for humans/AI and Git. Text/graph/API parity is
required. Behavior canvases must support editing and preserve drag selection.
- Git/worktrees are authorized. Remote publication is not requested.
## Verified facts
- Native modular source editing/reopen/repair/recovery passed on Windows at 1100×700. Production nested ownership, structural writeback and coupled REST source bundles now pass an initial 416-test workspace run. Actual service import/comment-only revision/cross-file move/stale ETag passed. Comment fidelity needs independent checks: review exposed owner-opening-line comment reassignment; root reproduced it and all 12 updater tests pass after the fix. Equal-model delete/recreate provenance was also reproduced and fixed in desktop and REST. Native nested workflow and final integrated review/checks remain.
- Original Capella SAB creates FE function input/output endpoints; component ports
are separately Standard/Flow with explicit allocation. Native observations are in
release-capella-workflow-benchmark.md; adopted contracts preserve that distinction.
- Explorer/port discovery, editable routing, nested modular source and coupled REST
bundles have scoped Windows/Linux acceptance. Evidence links are in STATE.md.
- Direct palette connections, four-side port anchors, context menus and source
folders passed real Windows/Linux operation. Passive stacked Canvas fixes native
tooltip overprint; separate Frames did not. See release-port-drawing.md.
- Persisted state editing now passes Windows/Linux native and independent review:
creation, movement, direct transitions, typed forms, reconnection, fold/reopen.
See release-state-editing.md. Scenario/process canvases still need direct editing.
- Ordinary Document commands atomically synchronize source/model; failed writes
retain drafts. Source comments require occurrence/provenance-aware edits, not
whole-model equality or flat reformatting. Independent counterexamples were fixed.
- R3 existing-target reconciliation remains name/description only. R6 data shape
expansion is active implementation, not accepted functionality.
- Explorer/port usability accepted at `d364d3c`: actual Windows Actor → Standard port → Boundary Exchange, save/reopen and Undo/Redo; contextual duplicate-name search, 251-root paging, 12-level ancestry and 1100×700 inspection. Linux port save/reopen and font-dependent outline wrapping correction were verified. Exact evidence: release-explorer-usability.md. This resolves the latest discovery/navigation complaint without claiming broader release completeness.
## Assumptions and open questions
- Native Capella SAB authoring creates function input/output endpoints with an FE. Component ports separately carry Standard/Flow kind, orientation, interface roles and explicit allocated function ports. Details and successfully performed versus merely observed operations are in release-capella-workflow-benchmark.md.
- Studio uses one typed Project and validated atomic commands across Rust core/desktop/server. Hierarchy projection distinguishes actual allocation from inferred parent summaries; IDs and placement are separate.
- Drag selection bug fixed and committed `2ef16dc`; 71 desktop tests and real moved-card selection/property editing passed before typed-port integration.
- Typed ports/schema 3 migration merged at `757ab88`. Existing port identities survive as Legacy and missing FE endpoints are generated deterministically; migration and port tests provide scoped evidence in release-port-core.md/release-port-migration.md.
- Independent core review reproduced alias reservation and same-transaction allocation replacement defects; fixes have focused regression evidence. Typed desktop integration `fa096ce` passed full checks and native creation/generation, undo/redo, save/reopen and no-op synchronization trials. Long-reference previews were inspected at 1440×900 and 1100×700; detailed evidence is in STATE.md.
- Per-diagram pins and labels, source/API parity and shared orthogonal routing are implemented in `4e5a88d`, `a7c6f96`, `68b1eff` and `30c7db1`. `65fa9ab` resolves all six reproduced default SA label-overlap pairs. Native OA/SA editing, movement/undo, fold restoration, save/reopen, SVG inspection and short gestures at 1100×700 passed. Routing code/native acceptance and independent native follow-up are complete at `23535b4`; exact scope is recorded in release-routing-verification.md.
- The source experiment passed 23 tests, but an independent probe reproduced positional item-comment misattachment, shorthand description rejection and unsupported deletion. Whole-model equality does not establish source-comment fidelity. The production updater retained comment attachment on the same reorder probe; extend its parser/updater instead of copying the experimental parallel implementation.
- Current behavior diagrams derive geometry and only handle selection; direct behavior editing remains a product gap. The source editor retains modular accepted source; nested element syntax and cross-file graphical updates passed Windows/Linux native acceptance at4e8575b. Port/exchange/steps shorthand remains an independent future implementation slice required by the current authoring strategy.
- Independent source review exposed declaration/comment reassignment during UUID changes and swaps, Linux FIFO hangs during disk admission, file-mode changes on save, and overlong detached-file receipt lifetimes. Command provenance, pre-open regular-file admission, permission retention and saved-detach receipt retirement resolve the reproduced cases. Exact probes and test scopes are in STATE.md.
- Nested aggregate files reduce cognitive load; any additional port/exchange/step
shorthand must justify grammar complexity through real authoring tasks.
- State placements proved viable without a second geometry system. Scenario/chain
gestures still need their own occurrence/order semantics and task verification.
- Routing offers a usable initial path plus manual pins; arbitrary dense diagrams
are not guaranteed crossing-free. Measured dense full solve119ms remains a limit.
- R3 typed historical bodies plus finite proposals appear simpler than a separate
recursive semantic-value schema. This candidate awaits R6 freeze and review.
## Assumptions to test
## Decisions and current strategy
- Aggregate-oriented source files will reduce cognitive load enough for routine engineering edits; file splitting alone may leave declaration syntax too flat.
- Behavior layout can reuse NodePlacement plus typed diagram context without duplicating semantic state; reconnection/reordering must preserve existing occurrence/relation identities.
- Editable per-diagram bends and the automatic initial route passed the recorded workshop trials. This does not guarantee an ideal arrangement or zero crossings for arbitrary models; the measured dense release full solve is 119 ms, above the initial 100 ms target.
- Source comments and ownership can survive graphical edits by replacing only changed declaration spans. Generated IDs must stabilize before subsequent text edits.
Preserve one typed core and validated command boundary. Retain current typed ports;
R6 uses schema/source4 with explicit1/2/3 migration and no intermediate public4
shape. Freeze payload, defaults, inheritance, associations and identified interface
allocations together. Preserve lexical includes/comments during migration.
## Open questions
- Which port/exchange/steps shorthand constructs add enough clarity to justify extending the accepted nested ownership syntax? Preserve comment attachment, exact source Undo and complete edit/delete support against the independent probe cases.
- What remaining OA/SA gaps materially block target workflows? R3 semantic reconciliation, R6 data contracts, directly editable behavior, lifecycle/recovery and hosted editing remain in the release plan.
## Candidate designs and current decisions
- Source candidates compared explicit source3 aggregate files/includes with nested owner/context syntax lowering to the same model. The chosen implementation direction extends the production parser/span index and shared updater for selected constructs, preserving the pure bundle foundation. Do not copy the experiment's separate parser/writer. Freeze grammar only after comment ownership, edit/delete coverage, invalid drafts and exact source Undo pass their acceptance tasks.
- Behavior alternatives: independent UI-only coordinates, new behavior-layout schema, or existing diagram placements with explicit context. Prefer the last candidate provisionally: it preserves text/API parity and command history without a second geometry system. Validate on direct state-machine creation/move/reconnect before extending all behavior views.
- Ports: adopted typed separation based on official metamodel plus direct native evidence; rejected generic InOut/interface port conflation and inferred allocation facts. See release-port-contract.md. Revisit only with contradictory domain evidence or concrete usability failures.
- Routing: a unique per-diagram route list references existing relation/trace IDs; pinned points and relative label placement are persisted, while orthogonal segments are derived by a shared pure router. This avoids duplicate semantic edge identities and preserves text/API/SVG parity. Folded endpoint promotion suspends custom geometry without deleting it. See release-routing-contract.md.
## Current strategy and evaluators
Accept native per-file editing, safe project saves and exact source Undo, then extend production source parsing/updating using the independent probe findings as regressions and integrate REST bundles. Linux routing is accepted with actual WSLg Save/reopen; all11 current Linux disk integration tests also pass. Full release Linux acceptance remains open. Prototype persisted direct behavior gestures next. Continue R3 reconciliation, R6 data contracts, lifecycle/recovery, hosted editing, offline guidance and fresh Windows/Linux release acceptance; no subsystem checkpoint constitutes release completion.
Meaningful progress now includes verified drag and typed-port authoring, accepted editable routing with native save/reopen, group movement and minimum-size evidence, and tested source-bundle/nested-writeback foundations with independent limitations exposed. Production source and direct behavior usability remain open engineering tasks; feature counts alone do not establish completion.
Current user-directed drawing evidence: palette creation and draggable per-placement port anchors passed scoped native Windows trials with Save/reopen; full485 Windows and488 Linux workspace suites passed before final pointer-release and hover refinements. Fresh independent review exposed post-release motion turning clicks into edits, nearest-port mispicking at overview zoom, and missing target identity feedback. The first two have production regressions and fixes; named owner/alias hover details and source-preserving pan are implemented, with final native acceptance pending. See release-port-drawing.md. The preceding goal turn made concrete progress through implementation, saved source/SVG artifacts, actual runtime verification and reproduced findings; it was not a wait or no-progress turn. Direct behavior and the broader release requirements remain active.
2026-09-06 follow-up: direct drawing, movable ports, menus and source folders now
have scoped native Windows/Linux acceptance. Independent QA falsified the initial
separate-Frame tooltip fix; a real stacked GPU layer passed native retest. Current
main Windows193 desktop tests and Linux189+4 focused tests passed. Independent
state/representation/lifecycle integration passed514 Windows workspace tests and
strict Clippy in its isolated checkout. Direct state-canvas authoring is underway;
all broader release requirements remain active. This turn made concrete implementation,
review and runtime progress, not a blocked or waiting-only turn. See STATE.md.
Finish and independently verify R6, then semantic R3 reconciliation and direct
scenario/process gestures. Complete lifecycle/recovery, hosted editing, guidance
and fresh cross-disciplinary Windows/Linux acceptance. No subsystem checkpoint
completes the first release. Current work is making measured implementation,
review and runtime progress; no external blocker exists.
+91
View File
@@ -0,0 +1,91 @@
# Direct state editing — acceptance evidence
Accepted production source:316dc55,2026-09-06. This is the state-machine slice of
direct behavior editing, not acceptance of scenario/process gestures or the release.
## Delivered behavior and boundaries
Dedicated typed StateMachine views reuse persistent placements and shared core
projection/routing. Palette creation inside explicit owners, nested group movement,
direct external transitions, endpoint reconnection, typed Local/Internal/timed
forms, fold/unfold/hide, placement editing and pan/zoom/Fit use ordinary atomic
Document commands. Behavior selection/view is independent of Architecture.
Creation places missing ancestry in the same command; dragging never reparents.
Internal transitions are rows; Entry/Exit symbols snap to the containing boundary.
Reconnection preserves relation identity and other fields and validates atomically.
Invalid drafts survive rejected writes. Save/Close/navigation/mutations account
for behavior drafts; passive viewport events do not apply forms. Ordered window
coordinates prevent selection-induced layout changes corrupting drag displacement.
Same-view returns retain camera/tool; actual machine/view changes reset and fit.
## Automated and independent evidence
- Full551 Windows workspace tests (277core,236desktop,38server) and strict workspace
all-target Clippy at e0b2210; full554 Linux (280core,236desktop,38server), strict
workspace Clippy and optimized desktop build from an isolated checkout/target.
- Final316dc55:241 desktop tests and strict desktop all-target Clippy on Windows
and Linux, plus successful desktop builds. Five navigation regressions supplement
the earlier suite. Four tested pre-fix navigation scenarios failed as predicted;
all14 state App tests passed after the fix.
- Two guide tests passed after5ce3eef. State source/JSON round trips, reference and
membership rules, atomic command planners, draft lifecycle and two actual HTTP
state-contract tests passed in the earlier integration. HTTP tests exercised
rejection, revision/source atomicity and restart.
- Independent native report:
D:/CodexBuilds/Capella2-release1-01a06e2e/state-independent-native-review.md.
Independent architecture review found camera/tool leakage after Catalog/Layer
owner changes;316dc55 closes it. No material review finding remains in this slice.
## Actual Windows operation
Root created a machine/view, Region, Initial and State, drew Initial→State by its
first drag, moved/undid State, created a timed Internal transition and generated
After30s event, undid/redid both, folded/unfolded and saved. Actual GPU shape hiding
was reproduced, fixed and retested; route-aware Initial label placement was also
verified through movement and selecting the relocated label.
An independent reviewer operated DE2723E7 at1440x900 and1100x700: nested Region
and State creation, composite descendant movement, semantic fold selection,
actual target-handle reconnect, invalid Initial target/Escape, placement width Apply
remaining in Behavior, EntryPoint creation, typed Local transition, contextual
reconnect and Save All/actual reopen. Final fixture49objects/28links/1check.
The remaining check explicitly asks for a machine owner on this root-level test
machine; it is intentionally incomplete model content.
Root operated final316dc55 binary31A7E8505838FE99B73072B90D32072C280AF494F039710448D8AE36651C05ED:
created a second machine view, panned A, armed Region, left/returned through
Architecture and observed preserved94% camera/tool. Selected B through Model
explorer and returned to Behavior:78% Fit and Select/move, with no inherited pan.
Save All completed; runtime.log0bytes.
## Actual Linux operation
Root operated e0b2210 ELF1525135FDA1C4A0E42DC6EB9CD6F8FE4DCB30A1690ABA48AD1F3E8E9528DFC05
through WSLg at1440x900. Opened an isolated empty-machine baseline; created Region,
Initial and State, first-drag Initial→State, first State movement with correct
selection/reroute, Undo/Redo, Fold and Save. Actual reopen retained collapse;
Unfold restored moved vertices and transition. Saved45objects/26links/1owner check.
Empty runtime log; normal close, exec72680 exit0.
Root then operated final316dc55 ELF
e2c2945a2fc750774a925eee33b5b1620c6537580b7ab502e97f44cbb4c4bab8
on the saved two-view49/28/1 fixture. Panned A and armed Region; Architecture round
trip retained94% camera/tool. Model explorer selected B; Behavior fitted78% and
reset to Select/move. Empty runtime log; normal close, exec46107 exit0.
## Reproduction artifacts and limits
Evidence root:D:/CodexBuilds/Capella2-release1-01a06e2e. Saved models and immutable
binaries are in ui-state-direct-01, ui-state-direct-03, ui-state-linux,
ui-state-navigation-windows and ui-state-navigation-linux. Final Linux directory
contains build-manifest.json, SHA256SUMS, desktop test/Clippy/build logs. Windows
logs use D:/CodexBuilds/Capella2-state-navigation-*; full baseline logs use
Capella2-state-direct-workspace-* and ui-state-linux/VERIFICATION.md.
Native Linux minimum-size testing is not claimed;1100x700 evidence is Windows.
Independent native review did not cover every pseudo kind, source-handle or Local
reconnection, concurrent regions, guard/effect edits or full dirty-close matrix.
Automated checks cover relevant semantics/lifecycle but are not relabeled native
trials. Fitting a nested diagram at55% produces small labels; use zoom/pan to work.
Scenario/process direct editing remains required release work.
+8 -3
View File
@@ -1,7 +1,10 @@
# Direct state editing — bounded design, 2026-09-05
Read-only investigation; implementation and native verification remain pending.
Connection routing became the user's next priority after this design handoff.
Originally a read-only proposal. Implemented in the isolated state-integration
checkout through e0b2210; current verification and outstanding acceptance are in
STATE.md. The old file/line seams below describe the pre-implementation baseline.
State layouts now use the typed context and commands proposed here; full scenario
and process direct editing remain separate release work.
## Decision and first task
@@ -121,4 +124,6 @@ behavior view independently of selection, including root Events. Reconnect
clones the relation and changes one endpoint; preserve all other data and reject
invalid cardinalities. Keep form editing in a bounded panel so the canvas remains
usable at 1100×700. These are decision-ready interfaces; no implementation or
native gesture acceptance is claimed.
native gesture acceptance is claimed by this design record. The implemented
contract and subsequent acceptance evidence are in release-state-editing.md;
production316dc55 closes the direct state slice, while scenario/process work remains.