Record lifecycle and palette native acceptance and runtime provenance
@@ -75,3 +75,7 @@ harness/experiments/nested-lifecycle-union-20260912/** -text whitespace=-blank-a
|
||||
harness/experiments/canvas-native-d61f1f3-20260912/** -text whitespace=-blank-at-eol,-blank-at-eof,cr-at-eol
|
||||
harness/experiments/lifecycle-fixture-preflight-20260913/** -text whitespace=-blank-at-eol,-blank-at-eof,cr-at-eol
|
||||
harness/experiments/palette-readability-20260913/** -text whitespace=-blank-at-eol,-blank-at-eof,cr-at-eol
|
||||
harness/release-analysis-next-acceptance-20260913.md -text whitespace=-blank-at-eol,-blank-at-eof,cr-at-eol
|
||||
harness/experiments/runtime-notices-20260913/** -text whitespace=-blank-at-eol,-blank-at-eof,cr-at-eol
|
||||
harness/experiments/analysis-checked-save-windows-20260913/** -text whitespace=-blank-at-eol,-blank-at-eof,cr-at-eol
|
||||
harness/experiments/canvas-native-dd39e1f-20260913/** -text whitespace=-blank-at-eol,-blank-at-eof,cr-at-eol
|
||||
|
||||
@@ -1,141 +1,91 @@
|
||||
# Verified branch checkpoint — 2026-09-12
|
||||
# Verified branch checkpoint — 2026-09-13 UTC
|
||||
|
||||
This checkpoint describes Codex-956atf's contribution, not a combined release.
|
||||
[PROJECT_GOAL.md](../PROJECT_GOAL.md) remains authoritative; the complete OA/SA
|
||||
release is unfinished. Current user guidance emphasizes close study of Capella
|
||||
semantics and practical, ergonomic engineering workflows.
|
||||
This describes Codex-956atf's contribution, not a combined release.
|
||||
[PROJECT_GOAL.md](../PROJECT_GOAL.md) remains authoritative. The complete OA/SA
|
||||
application is unfinished; published previews and finite prototypes are intermediate.
|
||||
|
||||
**Linux/WSL builds and all checks are paused until the user explicitly reports
|
||||
networking resolved.** No guest diagnosis, restart or cache transfer is active.
|
||||
Completed Linux evidence remains historical; the VPN remains untouched.
|
||||
**Linux/WSL builds and checks remain deferred until the user explicitly reports
|
||||
networking resolved.** No guest setup, diagnosis, restart or cache transfer is
|
||||
active. The VPN remains untouched.
|
||||
|
||||
## Verified implementation
|
||||
## Current integrated candidate and evidence
|
||||
|
||||
Previous native acceptance uses source **3c9e6eeb64ce3efc03b29890b82199a42c21f335** on
|
||||
`codex/behavior-authoring-20260910`. It passes 720/720 Windows desktop tests and strict
|
||||
all-target desktop Clippy. It includes direct scenario/process authoring,
|
||||
parent-focus and editing-session/chooser corrections, and boxed workflow events.
|
||||
Evidence checkpoint e7491fb preserves exact logs. Instruction-only merge828c50c
|
||||
retains the incoming user-owned AGENTS/PROJECT_GOAL files unchanged. The actual
|
||||
remote default branch `main` was checked after that merge; its current guidance
|
||||
was read without overwriting the user's local specification.
|
||||
Branch `codex/behavior-authoring-20260910`, published as `codex/release1-956atf`.
|
||||
Source **e44f07565cc7599d5c5a15a6b5599b4f5d105718** combines direct process/scenario
|
||||
authoring, allocation interaction, focused deletion and Save/Undo focus fixes,
|
||||
typed nested activations with lifecycle clipping, and stronger palette roles.
|
||||
Its custom menu/chooser target cues pass 12 and 14 actual-renderer tests, and
|
||||
the complete Windows desktop suite passes all 874 tests on 538 unchanged inputs.
|
||||
Strict Clippy exposed two test-only pixel-iterator lints, corrected by current
|
||||
source **dd39e1fdc13f04f18975a70736d2ed7f752a6df2** after the required array-reference
|
||||
coercion correction. All ten affected style tests, strict Clippy and the matching
|
||||
GUI build pass at dd39. Its bounded native trial closes normally with 41 frames
|
||||
and five complete Project/exact SourceBundle comparisons: lifecycle rendering,
|
||||
selection, custom overlay cues, architecture/state boundaries and process previews
|
||||
pass within the stated scope. [Native evidence and limitations](release-canvas-native-dd39e1f-20260913.md).
|
||||
Earlier native results retain their exact source scope.
|
||||
|
||||
The matching GUI built warning-free and passed recovered SA State, clicked Reuse,
|
||||
and ALT Fragment creation with exact Save/Undo/Redo and final native Open/Save at
|
||||
the 1100x700 client minimum. The whole Project, all identities and both source files
|
||||
match every required history checkpoint. The native session is closed.
|
||||
- **d61f1f3**: all 836 Windows desktop tests, strict all-target Clippy and matching
|
||||
GUI build pass on 533 unchanged inputs. Its bounded native trial passes nested
|
||||
activation border continuity, exposed-shoulder versus exact-message selection
|
||||
in bound OA/SA and reentrant scenes, minimum-window Fit, and exact saved
|
||||
Project/SourceBundle preservation. [Native evidence and independent review](release-canvas-native-d61f1f3-20260912.md).
|
||||
- **aadc639**: reviewed lifecycle/typed-activation integration passes 36 lifecycle,
|
||||
14 activation and one atomic Call/Reply tests on 536 unchanged inputs. The six-
|
||||
scenario native fixture additionally passes actual-core admission, exact source
|
||||
and canonical whole-Project round trips, ordering, values and operation bindings.
|
||||
These are targeted/core results; desktop native acceptance is separate.
|
||||
[Integration and fixture evidence](release-lifecycle-activation-union-20260913.md).
|
||||
- **afa74a3**: all ten targeted palette tests pass on 538 unchanged inputs,
|
||||
including actual WGPU selection/copy across an enabled-to-read-only field
|
||||
rebuild. Essential canvas and process boundaries, Source selections and resolved
|
||||
control colors are covered within the report's stated scope. Later a357b22 adds
|
||||
custom-overlay cues; its new paint tests exposed a missing test lifecycle step.
|
||||
Test-only e44f075 initializes the real overlay layout before drawing; corrected
|
||||
rendered tests and its 874-test full suite pass as recorded above.
|
||||
[Palette decisions, reviews, exact results and limitations](release-palette-readability-20260913.md).
|
||||
|
||||
- [Windows regression/lint evidence](release-chooser-correction-gate-20260911.md)
|
||||
- [Previous native SA evidence](release-scenario-native-3c9e6ee-20260911.md)
|
||||
- [Earlier native OA/SA Action evidence, scoped to 80cf197](release-scenario-native-20260911.md)
|
||||
- [Scenario oracle and reproducible procedure](fixtures/scenario-authoring/README.md)
|
||||
Earlier accepted focus, architecture/state deletion, Inspector text protection,
|
||||
bound scenario Save/reopen and discovered paint defects retain their exact
|
||||
[83f53c7 native evidence](release-canvas-native-83f53c7-20260912.md).
|
||||
[Canvas follow-up evidence](release-canvas-followup-20260912.md) links the original
|
||||
failures and corrections. Earlier authoring and allocation checkpoints remain in
|
||||
[canvas authoring evidence](release-behavior-canvas-a31b40d-native-20260911.md) and
|
||||
[allocation interaction decisions](release-allocation-feedback-decision-20260912.md).
|
||||
|
||||
## Isolated contributions and material limits
|
||||
## Isolated contributions and material limitations
|
||||
|
||||
Core candidate **847b1caa7e75bb82f6ce5193c45bcfc45973ad1a** is on the separate
|
||||
`codex/analysis-core-956atf-20260911` publication branch. Windows execution passes
|
||||
the 128 KiB-thread lifecycle subprocess, all 6 codec tests, 28 analysis tests, 26 numeric
|
||||
tests and strict all-target core Clippy. These counts are separate scopes; the
|
||||
subprocess driver is included in the 6. Production `DEPTH_128_VALIDATED` remains
|
||||
false. Legacy/migration/save integration, release memory measurements and complete
|
||||
Analysis/core candidate **847b1caa7e75bb82f6ce5193c45bcfc45973ad1a**, publication
|
||||
branch `codex/analysis-core-956atf-20260911`, is not integrated into production.
|
||||
Windows checks pass its 128 KiB-thread lifecycle subprocess, six codec tests,
|
||||
28 analysis tests, 26 numeric tests and strict all-target core Clippy. The driver
|
||||
is included in the six; these counts are separate scopes.
|
||||
`DEPTH_128_VALIDATED` remains false. Its existing public checked-save regression
|
||||
now fails: saved source declares schema8, which the parser rejects. All 512 inputs
|
||||
remained unchanged; the JSON iteration did not run. [Failure and repair boundary](release-analysis-checked-save-20260913.md).
|
||||
Legacy/migration integration, optimized resource measurements and complete
|
||||
source8/transport/evaluator acceptance remain open.
|
||||
[Windows codec evidence](release-analysis-codec-windows-gate-20260911.md).
|
||||
[Exact codec evidence](release-analysis-codec-windows-gate-20260911.md).
|
||||
|
||||
The cleaned R123 canvas at **a31b40d0f8551ed87c8cd66250b9afb4809b3a79** passes
|
||||
729/729 Windows desktop tests, strict all-target Clippy and the matching GUI build.
|
||||
All 518 input identities agree with Git and the closed receipts. Actual minimum-size
|
||||
OA action, nested state, bound reuse and ALT creation passed Save and exact one-step
|
||||
Undo/Redo Project/SourceBundle comparisons. All 85 archived files match their Git
|
||||
index bytes. Reopen was interrupted in that session and remains unverified.
|
||||
[Exact gates and bounded native evidence](release-behavior-canvas-a31b40d-native-20260911.md)
|
||||
supersede the earlier pre-cleanup gate as this source's checkpoint.
|
||||
|
||||
Allocation source **3840ca29652e3128ffbcdebd9f39f364e56079ea** passes the full
|
||||
Windows desktop suite: 796 tests, 526 unchanged identified inputs. A dedicated
|
||||
toolbar identity and gesture-local full-name inspection keep the moving work
|
||||
readable while target outlines and hit regions remain frozen. The
|
||||
[feedback decision](release-allocation-feedback-decision-20260912.md) supersedes
|
||||
the unusable fixed-label refusal in the [earlier d9 baseline](release-allocation-d9b3f0d-windows-20260912.md).
|
||||
[Exact saved receipts and renderer evidence](handoff-usage-pause-20260912-final.md).
|
||||
All 24 archived payloads were checked against committed Git bytes at 0c38980.
|
||||
|
||||
Diagram source **28e21a0ae8090f62106fcb264835ab7457a0d299** passes 19 targeted
|
||||
actual App-tree tests for architecture/state Delete, captured confirmation,
|
||||
placement-property selection, state action/internal-transition rows and F2
|
||||
focus protection, with exact model/source Undo. [Source-specific gates and
|
||||
independent findings](release-diagram-removal-windows-20260912.md) distinguish
|
||||
this result from the earlier full-suite evaluator failures. All 13 archived
|
||||
payloads match committed Git bytes at cb46ef4.
|
||||
|
||||
Source **42511f0f8ae46f29e11ae18c1030face654c2994** additionally integrates
|
||||
process/scenario occurrence removal, derived owner capture, event-batch focus
|
||||
guards, target-specific confirmation and reST/help. Its complete Windows suite
|
||||
passed all 818 tests, with no failures/ignored and all 531 inputs unchanged.
|
||||
Strict lint and GUI subsequently pass at **f7d84fa**, after exactly scoped test-only
|
||||
corrections. Its [native deletion checks](release-delete-native-f7-20260912.md)
|
||||
pass exact Save/Undo for architecture/state placement removal, semantic work
|
||||
deletion, state Entry relation and scenario lifeline deletion. Native Save/Undo
|
||||
revealed lost canvas focus; reviewed correction **24bb248** requires its own
|
||||
gates. Its focused run subsequently passed 22 tests and failed the persisted
|
||||
state Save/Undo case. Combined candidate **e2c027e** fixes the state widget's
|
||||
positional focus-tree replacement and includes nested activations and redundant
|
||||
canvas-control removal. Strict lint found two obsolete event variants, removed
|
||||
by 4015498. Combined source **83f53c7c6e277e250f06d2ae6bfa6a7988bd2e4b** now passes
|
||||
all 834 Windows desktop tests, strict all-target Clippy and the matching GUI build
|
||||
with all 533 source inputs unchanged. Its bounded native trial passes the original
|
||||
architecture/state Save/Undo focus sequences, Inspector text protection and bound
|
||||
scenario Save/reopen with exact Project/SourceBundle comparisons. It exposes
|
||||
message-label backgrounds erasing nested activation borders, so rendering
|
||||
acceptance remains open. Correction **d61f1f3** preserves the strokes and their
|
||||
selection priority; all 836 Windows desktop tests, strict all-target Clippy and
|
||||
the matching GUI build pass with all 533 inputs unchanged. Its
|
||||
[native recheck](release-canvas-native-d61f1f3-20260912.md) passes border continuity
|
||||
and exposed-shoulder versus exact-message selection in bound OA/SA and reentrant
|
||||
scenes, including minimum-window Fit; Save preserves the exact Project/SourceBundle.
|
||||
Palette/readability remains open. The
|
||||
[canvas follow-up evidence](release-canvas-followup-20260912.md) preserves exact
|
||||
failures, reviews and validated bound OA/SA evaluator fixtures. Complete direct
|
||||
manipulation, persistent process placement/lanes and coherent peer integration
|
||||
remain open. Gitea owns live coordination.
|
||||
|
||||
Source **aadc6396d39ff336d05381d58d545093d3f37a73** integrates reviewed lifecycle
|
||||
rendering with typed activations. Its 36 lifecycle, 14 activation and one atomic
|
||||
Call/Reply tests pass on 536 unchanged inputs, including rendered border continuity.
|
||||
These 51 targeted checks do not establish full-suite or native acceptance for the
|
||||
combined source. [Integration evidence](release-lifecycle-activation-union-20260913.md).
|
||||
|
||||
Source **afa74a305980f611437dd3aa2f937d36e9266cfe** adds stronger palette roles,
|
||||
essential canvas/process boundaries and readable read-only input selection.
|
||||
All ten targeted palette tests pass on 538 unchanged inputs, including actual
|
||||
WGPU selection/copy across an enabled-to-read-only field rebuild. Full combined
|
||||
and native palette acceptance remain open; the custom overlay residuals and
|
||||
monitor limitations are recorded in [palette evidence](release-palette-readability-20260913.md).
|
||||
|
||||
[Native follow-up evidence](release-canvas-native-83f53c7-20260912.md) records
|
||||
the normally closed source83 trial, observed defect, minimum-size layout and
|
||||
the boundary between state and scenario keyboard policies.
|
||||
|
||||
Complete quantities/calculations/constraints, maintained libraries, graphical/
|
||||
source/REST parity, transitions and engineering-task usability, aligned reST/help,
|
||||
optimized packages and final independent acceptance remain required. Finite
|
||||
prototypes and published previews are intermediate results.
|
||||
Complete direct manipulation and persistent process placement/lanes, coherent
|
||||
peer navigation/source integration, quantities/calculations/constraints,
|
||||
maintained libraries, graphical/source/REST parity, transitions, ergonomic
|
||||
engineering workflows, aligned reST/help, optimized packages and final independent
|
||||
acceptance remain required. Palette arithmetic does not establish every monitor's
|
||||
appearance; thin overview geometry, syntax scanability, focus, custom overlay
|
||||
appearance and routing-warning discoverability retain their explicit limitations.
|
||||
Gitea owns live priorities, ownership, dependencies and handoffs.
|
||||
|
||||
## Authoritative records
|
||||
|
||||
- [Project overview and historical coordination](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/1)
|
||||
- [Direct process/scenario canvas work](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/2)
|
||||
- [Activity allocation drag](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/3)
|
||||
- [Analysis, codec and source/API integration](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/7)
|
||||
- [Maintained reusable libraries](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/8)
|
||||
- [Focused diagram deletion](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/15)
|
||||
- [Direct element resizing](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/16)
|
||||
- [Decisions and reusable evidence](DECISIONS.md)
|
||||
- [Shared overview](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/wiki/BehaviorAuthoring20260911)
|
||||
- [Published milestones and their exact limitations](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/releases)
|
||||
- [Historical Linux gate before deferral](release-linux-core-cli-gate-956atf-20260911.md)
|
||||
- [Project overview](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/1)
|
||||
- [Behavior canvas](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/2), [allocation](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/3), [deletion](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/15), [resizing](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/16), [lifecycle](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/21), [palette](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/26)
|
||||
- [Analysis and checked persistence](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/7), [maintained libraries](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/8)
|
||||
- [Combined Windows integration and release](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/27)
|
||||
- [Decisions and reusable evidence](DECISIONS.md), [shared Wiki entrypoint](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/wiki/BehaviorAuthoring20260911), [published milestones](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/releases)
|
||||
- [Historical Linux result before deferral](release-linux-core-cli-gate-956atf-20260911.md)
|
||||
|
||||
The duplicated live ledgers were migrated once into Gitea comment412. Their
|
||||
[complete original bytes and manifest](history/2026-09-11-ledgers-before-gitea-migration/manifest.json)
|
||||
preserve historical assumptions, decisions, experiments, limitations and links.
|
||||
Links inside the archived documents retain their original `harness/` base.
|
||||
Do not maintain live plans in this checkpoint or repeat that migration.
|
||||
Duplicated local ledgers were migrated once into Gitea comment412. Their
|
||||
[original bytes and manifest](history/2026-09-11-ledgers-before-gitea-migration/manifest.json)
|
||||
preserve historical assumptions, decisions and evidence. Archived links retain
|
||||
their original `harness/` base. Do not recreate those ledgers or repeat migration.
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
# Public checked-save failure — Windows analysis847
|
||||
|
||||
Closed execution of one existing public regression against source `847b1caa7e75bb82f6ce5193c45bcfc45973ad1a`. **Compilation succeeded; the test failed** when decoding source that checked-save had successfully written. This is finite failure evidence, not acceptance of the analysis candidate or its private JSON/depth codec.
|
||||
|
||||
The [short evidence report](../../release-analysis-checked-save-20260913.md) states the result and next repair boundary. [Original detailed handoff](run/README.md), [exact command/result](run/result.json), [full Cargo output](run/cargo.log), [raw committed input manifest](run/inputs.json), [toolchain/environment preflight](run/preflight.json), and [direct one-test listing](run/membership.stdout.log) retain actual evidence. All512 input hashes and the clean source remained unchanged; the listing selected exactly one test. Cargo returned101;0 passed,1 failed,14 filtered out.
|
||||
|
||||
The original result's `log_test_failed: false` is preserved. Its auxiliary matcher expected the test name and FAILED on one uninterrupted line, while nocapture inserted panic text. Cargo's exit/counts, named failure, panic at review_regressions.rs464 and executable membership are authoritative. No result was rewritten to hide this imperfect diagnostic.
|
||||
|
||||
`archive-manifest.json` inventories every payload except itself. Files under `run/` and the exact original runner under `tools/` are byte-for-byte copies. Original handoff/helper paths refer to the original local workspace; archived placement is evidence, not a claim that those paths automatically relocate. The archive helper is retained for review, not intended for a second create attempt at existing output paths.
|
||||
|
||||
[external-bindings.json](external-bindings.json) identifies the excluded30,458,368-byte failed integration executable, retained local target, runtime candidate and source commit. The executable hash was rechecked during archival: `c6b9a47856ace723de47ee714122d598994eeef21223c1f80558ae76eb4b9cec`. The large target/executable and toolchain are not copied. The test's temporary saved model was dropped by its unchanged tempfile lifetime on panic; no saved-model snapshot is claimed. The runtime record identifies a PATH candidate, not a captured loaded module.
|
||||
|
||||
Compiler/test lease was released after the actual failure and exact listing. Archival performs no compiler, test, native, network or package operation. Parent owns source correction, further execution, coordination and integration.
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:23:49.124772+00:00",
|
||||
"scope": "Closed one-test public checked-save failure, source identity, actual command/logs/runner and external failed executable binding. No candidate acceptance.",
|
||||
"files": [
|
||||
{
|
||||
"path": "run/cargo.log",
|
||||
"source": ".local/analysis-checked-save-847b1caa-20260913/cargo.log",
|
||||
"bytes": 2182,
|
||||
"sha256": "4c74e8d7221cf927410afa8e1eeb05a86d43b833a9a83d670e3f4263a6e06d84"
|
||||
},
|
||||
{
|
||||
"path": "run/inputs.json",
|
||||
"source": ".local/analysis-checked-save-847b1caa-20260913/inputs.json",
|
||||
"bytes": 95422,
|
||||
"sha256": "80ae7cece89e241bc2d8b53153affa3b16dd94e6dcf7cb8e3ebb9fad36945e02"
|
||||
},
|
||||
{
|
||||
"path": "run/membership.stderr.log",
|
||||
"source": ".local/analysis-checked-save-847b1caa-20260913/membership.stderr.log",
|
||||
"bytes": 0,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
{
|
||||
"path": "run/membership.stdout.log",
|
||||
"source": ".local/analysis-checked-save-847b1caa-20260913/membership.stdout.log",
|
||||
"bytes": 100,
|
||||
"sha256": "a8bd7350f0cfbdfc9666cbb8485ebea8e8812c6a3139394bc4f6fb3ae8fe7cf6"
|
||||
},
|
||||
{
|
||||
"path": "run/preflight.json",
|
||||
"source": ".local/analysis-checked-save-847b1caa-20260913/preflight.json",
|
||||
"bytes": 5705,
|
||||
"sha256": "1e64e18267175eb12917e4aad962307929ed399ee0e164b3d869e61c1f77469b"
|
||||
},
|
||||
{
|
||||
"path": "run/README.md",
|
||||
"source": ".local/analysis-checked-save-847b1caa-20260913/README.md",
|
||||
"bytes": 5970,
|
||||
"sha256": "aca2f46a3eef784a0fd0e014171bd871d18f72c9a54c85d43c8f3ccd10af3bb8"
|
||||
},
|
||||
{
|
||||
"path": "run/result.json",
|
||||
"source": ".local/analysis-checked-save-847b1caa-20260913/result.json",
|
||||
"bytes": 1757,
|
||||
"sha256": "8d372f15c02964a4ca040bd2b744327bbd5318e61cfc4300ba227d91cba30b45"
|
||||
},
|
||||
{
|
||||
"path": "tools/run-analysis-checked-save-20260913.py",
|
||||
"source": ".local/run-analysis-checked-save-20260913.py",
|
||||
"bytes": 5645,
|
||||
"sha256": "b094433c2429369ac279517c95e2d42efa4e4d4c852dc602733eff6e38dabd31"
|
||||
},
|
||||
{
|
||||
"path": "tools/archive-analysis-checked-save-20260913.py",
|
||||
"source": ".local/archive-analysis-checked-save-20260913.py",
|
||||
"bytes": 4051,
|
||||
"sha256": "f25f3419fbac7a0ec64af2fd7a1b4c7190bea2032c8b3efe970c2e791602ee6b"
|
||||
},
|
||||
{
|
||||
"path": "external-bindings.json",
|
||||
"source": "generated from verified closed run/preflight receipts",
|
||||
"bytes": 1356,
|
||||
"sha256": "c1e6da0263725a78a9dc4d977a48a18644cda676a63fb665f5f2a543bf022b26"
|
||||
},
|
||||
{
|
||||
"path": "README.md",
|
||||
"source": "generated portable archive navigation and evidence limitations",
|
||||
"bytes": 2531,
|
||||
"sha256": "5a38ba08ba0b4af52d7769aa762864a902c10eee891704be82b04282276e2656"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"scope": "Excluded large artifact and existing source/toolchain paths. Test executable was rehashed at archival; toolchain/other values retain original preflight identity, not new build/module acceptance.",
|
||||
"source": "847b1caa7e75bb82f6ce5193c45bcfc45973ad1a",
|
||||
"source_worktree": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-core-worktree-20260911",
|
||||
"retained_target_directory": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913",
|
||||
"executable": {
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\review_regressions-bb6c689147f65d6b.exe",
|
||||
"bytes": 30458368,
|
||||
"sha256": "c6b9a47856ace723de47ee714122d598994eeef21223c1f80558ae76eb4b9cec"
|
||||
},
|
||||
"runtime_path_candidate": {
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\llvm-mingw-20260908-ucrt-x86_64\\bin\\libunwind.dll",
|
||||
"bytes": 190464,
|
||||
"sha256": "aa282fa47bb2c4e210cea5e470cdbdca58568f0be0bc73e404d86ab9cd95ef6a"
|
||||
},
|
||||
"runtime_binding_limit": "Hashed selected PATH candidate, not an observed loaded-module record.",
|
||||
"raw_source_input_manifest": "run/inputs.json",
|
||||
"test_temp_directory": "Not retained: the unchanged tempfile-owned test dropped it on panic. No saved-model snapshot is claimed."
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
# Actual public checked-save regression — analysis847b1caa
|
||||
|
||||
**FAIL at the intended public source decode assertion.** The prediction in `harness/release-analysis-next-acceptance-20260913.md` is now executed evidence. Compilation succeeded; this is not a compiler, filter or loader failure. Compiler/test lease closed and was explicitly released to the parent after the direct executable listing. No additional gate, source correction, package or native workflow was run.
|
||||
|
||||
## Exact execution
|
||||
|
||||
Source `847b1caa7e75bb82f6ce5193c45bcfc45973ad1a`, clean worktree `.local/analysis-core-worktree-20260911`. The preflight compared512 tracked source/config/build/crates/assets/docs/examples/fixture input bytes directly against raw committed blobs via batched `git cat-file`. All512 hashes, HEAD and worktree status remained unchanged after the command.
|
||||
|
||||
Command, working directory and environment are preserved in `preflight.json`, `inputs.json` and `result.json`:
|
||||
|
||||
```text
|
||||
cargo test --locked -p oa-core --test review_regressions checked_save_returns_exact_bytes_and_accepts_unchanged_external_content -- --exact --test-threads=1 --nocapture
|
||||
```
|
||||
|
||||
Absolute root `.local/toolchain/env.ps1` initialized the existing Windows GNU/LLVM environment. New `CARGO_TARGET_DIR` was `C:/Users/User/Documents/Git/ARCADIA-Studio/.local/analysis-checked-save-target-20260913`, created fresh, never root/target. `CARGO_BUILD_JOBS=1`. Rust1.98.1 commit48a229ceaefd4985c50990b14116b6d856af0985, Cargo1.98.1, host x86_64-pc-windows-gnullvm; LLVM-MinGW clang23.1.1 commit6dfe1677ab8dffbc6ec13d53a1e0215d75147689. Version-query outputs, executable hashes and selected environment are recorded. These are default **unoptimized test/development-profile** results; workspace dev debug-info setting is0, not an optimized profile.
|
||||
|
||||
Command start2026-09-13T02:04:30.026751Z. Cargo elapsed934.75s; its build line reports15m33s. Cargo exit101. The result receipt closed at02:20:08.790964Z after input/artifact/listing checks. Test output: **0 passed;1 failed;0 ignored;14 filtered out**,0.08s. The freshly compiled integration executable's exact-name `--exact --list` exited0 and returned exactly this one test (1 test,0 benchmarks). No second execution of the regression occurred.
|
||||
|
||||
Actual panic at `crates/oa-core/tests/review_regressions.rs:464:50`:
|
||||
|
||||
```text
|
||||
called Result::unwrap() on an Err value:
|
||||
Text("1:9: Unsupported schema version: expected arcadia 3, 4, 5, 6 or 7.")
|
||||
```
|
||||
|
||||
`cargo.log` contains the verbatim original (including Rust's punctuation), SHA256 `4c74e8d7221cf927410afa8e1eeb05a86d43b833a9a83d670e3f4263a6e06d84`,2182bytes. The runner's supplemental `log_test_failed` field is false because it searches for the single contiguous string `test_name ... FAILED`; `--nocapture` inserted panic text between that prefix and FAILED. This auxiliary string-match is not the evaluator: cargo exit101, the named failures section, result counts, panic location and exact executable listing establish the actual failure. Original receipt is retained unchanged rather than rewriting its imperfect diagnostic flag.
|
||||
|
||||
## Bounded source cause and consequence
|
||||
|
||||
The existing test starts with Project::empty(), loops `.arcadia` before `.oa.json`, successfully saves, changes description to include Unicode and a newline, checks disk/returned-byte equality and then calls the public decoder. Reaching line464 proves the earlier two saves and their equality assertions succeeded. The first iteration's decode failed; repeat save and the later JSON iteration did **not** execute. Do not infer JSON corruption or success from this run.
|
||||
|
||||
Candidate `model.rs:9` sets SCHEMA_VERSION8. `language.rs:577` formats that value into the source header. `language.rs:1408` only admits3–7. `persistence.rs:952–958` validates the model then takes `.arcadia` directly through `language::format`; the destination is replaced at line979 without a public source round-trip check. This is an actual successful-save/unreadable-source defect in the isolated staging candidate, consistent with its documented unfinished source8 integration. It is not a failure of the private JSON depth128 experiment; DEPTH_128_VALIDATED remains false and unchanged.
|
||||
|
||||
Do not repair only the version whitelist: the declaration writer and explicit rejection of analysis records also need a reviewed source8 closure. No such changes were authorized or made here. Root owns #7, a separately reviewed correction and any later checked-save/migration/API tests. The complete analysis feature and production promotion remain unaccepted.
|
||||
|
||||
## Preserved evidence and limits
|
||||
|
||||
Compiled executable remains at `../analysis-checked-save-target-20260913/debug/deps/review_regressions-bb6c689147f65d6b.exe`,30,458,368bytes, SHA256 `c6b9a47856ace723de47ee714122d598994eeef21223c1f80558ae76eb4b9cec`. Its bytes were unchanged after listing. The fresh target and failed executable were preserved; no cleanup/replacement was attempted. The unmodified test owns a tempfile directory whose drop normally removes it on panic; no persisted model-file snapshot was captured, and this report does not claim one. Source and log evidence identify the reached assertion without inventing a saved-file artifact.
|
||||
|
||||
The selected PATH runtime candidate was hashed as `aa282fa47bb2c4e210cea5e470cdbdca58568f0be0bc73e404d86ab9cd95ef6a`, unchanged afterward. This is candidate-path identity, **not an observed loaded-module record**. The executed test/listing worked, but no graphics/native acceptance, runtime-module observation, peak-memory measurement, optimized build, broader regression or Linux run was performed.
|
||||
|
||||
Runner source is `.local/run-analysis-checked-save-20260913.py`; its exact hash is in preflight.json. Raw input manifest, toolchain queries, command, process exit, complete compile/panic output, test-list output and executable identities are retained here. Root owns durable archival and coordination; no Gitea, source edit or commit was performed by this worker.
|
||||
@@ -0,0 +1,55 @@
|
||||
Compiling proc-macro2 v1.0.107
|
||||
Compiling memchr v2.8.3
|
||||
Compiling find-msvc-tools v0.1.12
|
||||
Compiling shlex v2.0.1
|
||||
Compiling quote v1.0.47
|
||||
Compiling object v0.39.1
|
||||
Compiling unicode-ident v1.0.24
|
||||
Compiling cc v1.4.5
|
||||
Compiling windows-link v0.2.1
|
||||
Compiling serde_core v1.0.229
|
||||
Compiling autocfg v1.5.1
|
||||
Compiling num-traits v0.2.19
|
||||
Compiling windows-sys v0.61.2
|
||||
Compiling ar_archive_writer v0.5.3
|
||||
Compiling syn v3.0.5
|
||||
Compiling cfg-if v1.0.4
|
||||
Compiling getrandom v0.4.3
|
||||
Compiling psm v0.1.32
|
||||
Compiling zmij v1.0.23
|
||||
Compiling libc v0.2.189
|
||||
Compiling stacker v0.1.25
|
||||
Compiling serde v1.0.229
|
||||
Compiling thiserror v2.0.20
|
||||
Compiling serde_json v1.0.151
|
||||
Compiling num-integer v0.1.47
|
||||
Compiling thiserror-impl v2.0.20
|
||||
Compiling serde_derive v1.0.229
|
||||
Compiling winapi-util v0.1.11
|
||||
Compiling once_cell v1.21.4
|
||||
Compiling itoa v1.0.18
|
||||
Compiling sha1_smol v1.0.1
|
||||
Compiling oa-core v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\analysis-core-worktree-20260911\crates\oa-core)
|
||||
Compiling fastrand v2.5.0
|
||||
Compiling tempfile v3.27.0
|
||||
Compiling uuid v1.26.0
|
||||
Compiling same-file v1.0.6
|
||||
Compiling num-bigint v0.5.1
|
||||
Finished `test` profile [unoptimized] target(s) in 15m 33s
|
||||
Running tests\review_regressions.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\analysis-checked-save-target-20260913\debug\deps\review_regressions-bb6c689147f65d6b.exe)
|
||||
|
||||
running 1 test
|
||||
test checked_save_returns_exact_bytes_and_accepts_unchanged_external_content ...
|
||||
thread 'checked_save_returns_exact_bytes_and_accepts_unchanged_external_content' (4584) panicked at crates\oa-core\tests\review_regressions.rs:464:50:
|
||||
called `Result::unwrap()` on an `Err` value: Text("1:9: Unsupported schema version: expected arcadia 3, 4, 5, 6 or 7.")
|
||||
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||
FAILED
|
||||
|
||||
failures:
|
||||
|
||||
failures:
|
||||
checked_save_returns_exact_bytes_and_accepts_unchanged_external_content
|
||||
|
||||
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 14 filtered out; finished in 0.08s
|
||||
|
||||
error: test failed, to rerun pass `-p oa-core --test review_regressions`
|
||||
@@ -0,0 +1,3 @@
|
||||
checked_save_returns_exact_bytes_and_accepts_unchanged_external_content: test
|
||||
|
||||
1 test, 0 benchmarks
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"source": "847b1caa7e75bb82f6ce5193c45bcfc45973ad1a",
|
||||
"cwd": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-core-worktree-20260911",
|
||||
"target_directory": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913",
|
||||
"profile": "Cargo test default development/test profile; workspace profile.dev debug=0. No release optimization claimed.",
|
||||
"versions": {
|
||||
"rustc": "rustc 1.98.1 (48a229cea 2026-09-01)\nbinary: rustc\ncommit-hash: 48a229ceaefd4985c50990b14116b6d856af0985\ncommit-date: 2026-09-01\nhost: x86_64-pc-windows-gnullvm\nrelease: 1.98.1\nLLVM version: 22.1.8\n",
|
||||
"cargo": "cargo 1.98.1 (797e8a9bc 2026-08-05)\n",
|
||||
"linker": "clang version 23.1.1 (https://github.com/llvm/llvm-project.git 6dfe1677ab8dffbc6ec13d53a1e0215d75147689)\nTarget: x86_64-w64-windows-gnu\nThread model: posix\nInstalledDir: C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/llvm-mingw-20260908-ucrt-x86_64/bin\nConfiguration file: C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/llvm-mingw-20260908-ucrt-x86_64/bin/x86_64-w64-windows-gnu.cfg\n"
|
||||
},
|
||||
"tools": {
|
||||
"cargo": {
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\bin\\cargo.EXE",
|
||||
"bytes": 12721664,
|
||||
"sha256": "6f4bef66261261fcb43131be8720bab817d403a09edec7455c371974b90bdb7e"
|
||||
},
|
||||
"rustc": {
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\bin\\rustc.EXE",
|
||||
"bytes": 12721664,
|
||||
"sha256": "6f4bef66261261fcb43131be8720bab817d403a09edec7455c371974b90bdb7e"
|
||||
},
|
||||
"clang.exe": {
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\llvm-mingw-20260908-ucrt-x86_64\\bin\\clang.exe",
|
||||
"bytes": 14336,
|
||||
"sha256": "93303edd5791e4b60682f819267a34c349e5f52d052d067e006e76d21cc82ea4"
|
||||
},
|
||||
"actual_cargo.exe": {
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\rustup\\toolchains\\stable-x86_64-pc-windows-gnullvm\\bin\\cargo.exe",
|
||||
"bytes": 43380736,
|
||||
"sha256": "e6f0f24c3a4ec70f1032de84a8260288e8a0c3f43d2a5ac1d2a1c19073fbd910"
|
||||
},
|
||||
"actual_rustc.exe": {
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\rustup\\toolchains\\stable-x86_64-pc-windows-gnullvm\\bin\\rustc.exe",
|
||||
"bytes": 86528,
|
||||
"sha256": "c4c7286b198f95c5da9307ba63e756f94953527d63a33dca877211bc0979baf9"
|
||||
}
|
||||
},
|
||||
"env_script": {
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\env.ps1",
|
||||
"bytes": 331,
|
||||
"sha256": "ed5b7e8f1105c5355511e08cdeb4b96156fb245bff430e6bb9237ae8781638cc"
|
||||
},
|
||||
"selected_environment": {
|
||||
"CARGO_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo",
|
||||
"RUSTUP_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\rustup",
|
||||
"CARGO_TARGET_DIR": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913",
|
||||
"CARGO_BUILD_JOBS": "1",
|
||||
"CARGO_TARGET_X86_64_PC_WINDOWS_GNULLVM_LINKER": "clang.exe",
|
||||
"RUSTFLAGS": null,
|
||||
"CARGO_ENCODED_RUSTFLAGS": null,
|
||||
"PATH": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\bin;C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\llvm-mingw-20260908-ucrt-x86_64\\bin;C:\\Users\\User\\.cache\\codex-runtimes\\codex-primary-runtime\\dependencies\\native\\powershell;C:\\Users\\User\\.codex\\tmp\\arg0\\codex-arg08f9Dk5;C:\\Users\\User\\.cache\\codex-runtimes\\codex-primary-runtime\\dependencies\\native\\libheif\\libheif\\bin;C:\\Users\\User\\.cache\\codex-runtimes\\codex-primary-runtime\\dependencies\\native\\jxrlib\\jxrlib\\bin;C:\\Users\\User\\.cache\\codex-runtimes\\codex-primary-runtime\\dependencies\\native\\poppler\\Library\\bin;C:\\Users\\User\\.cache\\codex-runtimes\\codex-primary-runtime\\dependencies\\bin\\override;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files\\Git\\cmd;C:\\Windows\\System32\\OpenSSH\\;C:\\Users\\User\\AppData\\Local\\Programs\\OpenAI\\Codex\\bin;C:\\Users\\User\\.cache\\codex-runtimes\\codex-primary-runtime\\dependencies\\native\\powershell;C:\\Users\\User\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\User\\AppData\\Local\\Programs\\Zed\\bin;C:\\Users\\User\\AppData\\Local\\Programs\\bd;C:\\Users\\User\\.cache\\codex-runtimes\\codex-primary-runtime\\dependencies\\bin\\fallback;C:\\Users\\User\\.cache\\codex-runtimes\\codex-primary-runtime\\dependencies\\node\\bin;C:\\Users\\User\\.cache\\codex-runtimes\\codex-primary-runtime\\dependencies\\native\\git\\cmd;C:\\Users\\User\\AppData\\Local\\OpenAI\\Codex\\bin\\6fdec9b372c2c0fd;C:\\Users\\User\\AppData\\Local\\OpenAI\\Codex\\bin\\7ac07f4ce733f89a"
|
||||
},
|
||||
"runtime_path_candidate": {
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\llvm-mingw-20260908-ucrt-x86_64\\bin\\libunwind.dll",
|
||||
"bytes": 190464,
|
||||
"sha256": "aa282fa47bb2c4e210cea5e470cdbdca58568f0be0bc73e404d86ab9cd95ef6a"
|
||||
},
|
||||
"runtime_binding_limit": "Hashed selected PATH candidate, not an observed loaded-module record.",
|
||||
"runner": {
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\run-analysis-checked-save-20260913.py",
|
||||
"bytes": 5645,
|
||||
"sha256": "b094433c2429369ac279517c95e2d42efa4e4d4c852dc602733eff6e38dabd31"
|
||||
},
|
||||
"input_manifest": {
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-847b1caa-20260913\\inputs.json",
|
||||
"bytes": 95422,
|
||||
"sha256": "80ae7cece89e241bc2d8b53153affa3b16dd94e6dcf7cb8e3ebb9fad36945e02"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"source": "847b1caa7e75bb82f6ce5193c45bcfc45973ad1a",
|
||||
"start": "2026-09-13T02:04:30.026751+00:00",
|
||||
"end": "2026-09-13T02:20:08.790964+00:00",
|
||||
"elapsed_seconds": 934.75,
|
||||
"command": [
|
||||
"cargo",
|
||||
"test",
|
||||
"--locked",
|
||||
"-p",
|
||||
"oa-core",
|
||||
"--test",
|
||||
"review_regressions",
|
||||
"checked_save_returns_exact_bytes_and_accepts_unchanged_external_content",
|
||||
"--",
|
||||
"--exact",
|
||||
"--test-threads=1",
|
||||
"--nocapture"
|
||||
],
|
||||
"exit": 101,
|
||||
"changed_inputs": [],
|
||||
"head_unchanged": true,
|
||||
"worktree_status": "",
|
||||
"log": {
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-847b1caa-20260913\\cargo.log",
|
||||
"bytes": 2182,
|
||||
"sha256": "4c74e8d7221cf927410afa8e1eeb05a86d43b833a9a83d670e3f4263a6e06d84"
|
||||
},
|
||||
"artifact": {
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\review_regressions-bb6c689147f65d6b.exe",
|
||||
"bytes": 30458368,
|
||||
"sha256": "c6b9a47856ace723de47ee714122d598994eeef21223c1f80558ae76eb4b9cec"
|
||||
},
|
||||
"membership": {
|
||||
"command": [
|
||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\review_regressions-bb6c689147f65d6b.exe",
|
||||
"checked_save_returns_exact_bytes_and_accepts_unchanged_external_content",
|
||||
"--exact",
|
||||
"--list"
|
||||
],
|
||||
"exit": 0,
|
||||
"selected": [
|
||||
"checked_save_returns_exact_bytes_and_accepts_unchanged_external_content: test"
|
||||
],
|
||||
"exact_one": true,
|
||||
"artifact_unchanged": true
|
||||
},
|
||||
"log_running_one": true,
|
||||
"log_test_failed": false,
|
||||
"runtime_candidate_unchanged": true,
|
||||
"classification": "Result requires source/log diagnosis; no candidate acceptance inferred."
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
from pathlib import Path
|
||||
import hashlib,json,subprocess,datetime
|
||||
R=Path(__file__).resolve().parent.parent;S=R/'.local/analysis-checked-save-847b1caa-20260913';D=R/'harness/experiments/analysis-checked-save-windows-20260913'
|
||||
def sha(b):return hashlib.sha256(b).hexdigest()
|
||||
def new(p,b):
|
||||
p.parent.mkdir(parents=True,exist_ok=True)
|
||||
with p.open('xb') as f:f.write(b)
|
||||
assert not D.exists();D.mkdir()
|
||||
result=json.loads((S/'result.json').read_bytes());pre=json.loads((S/'preflight.json').read_bytes())
|
||||
assert result['source']=='847b1caa7e75bb82f6ce5193c45bcfc45973ad1a'
|
||||
assert result['exit']==101 and not result['changed_inputs'] and result['head_unchanged'] and not result['worktree_status']
|
||||
assert result['membership']['exact_one'] and result['membership']['exit']==0 and result['membership']['artifact_unchanged']
|
||||
artifact=Path(result['artifact']['path']);assert artifact.stat().st_size==result['artifact']['bytes'] and sha(artifact.read_bytes())==result['artifact']['sha256']
|
||||
assert sha((S/'inputs.json').read_bytes())=='80ae7cece89e241bc2d8b53153affa3b16dd94e6dcf7cb8e3ebb9fad36945e02'
|
||||
assert len(json.loads((S/'inputs.json').read_bytes())['inputs'])==512
|
||||
rows=[]
|
||||
def add(p,dest):
|
||||
b=p.read_bytes();new(D/dest,b);rows.append({'path':dest,'source':str(p.relative_to(R)).replace('\\','/'),'bytes':len(b),'sha256':sha(b)})
|
||||
for p in sorted(S.iterdir()):
|
||||
assert p.is_file() and not p.is_symlink();add(p,'run/'+p.name)
|
||||
runner=R/'.local/run-analysis-checked-save-20260913.py';assert sha(runner.read_bytes())==pre['runner']['sha256'];add(runner,'tools/'+runner.name)
|
||||
add(Path(__file__).resolve(),'tools/'+Path(__file__).name)
|
||||
bindings={'scope':'Excluded large artifact and existing source/toolchain paths. Test executable was rehashed at archival; toolchain/other values retain original preflight identity, not new build/module acceptance.','source':result['source'],'source_worktree':pre['cwd'],'retained_target_directory':pre['target_directory'],'executable':result['artifact'],'runtime_path_candidate':pre['runtime_path_candidate'],'runtime_binding_limit':pre['runtime_binding_limit'],'raw_source_input_manifest':'run/inputs.json','test_temp_directory':'Not retained: the unchanged tempfile-owned test dropped it on panic. No saved-model snapshot is claimed.'}
|
||||
b=(json.dumps(bindings,indent=2)+'\n').encode();new(D/'external-bindings.json',b);rows.append({'path':'external-bindings.json','source':'generated from verified closed run/preflight receipts','bytes':len(b),'sha256':sha(b)})
|
||||
new(D/'archive-manifest.json',(json.dumps({'utc':datetime.datetime.now(datetime.timezone.utc).isoformat(),'scope':'Closed one-test public checked-save failure, source identity, actual command/logs/runner and external failed executable binding. No candidate acceptance.','files':rows},indent=2)+'\n').encode())
|
||||
# Append only this new rule in the working file, preserving every existing byte.
|
||||
attr=R/'.gitattributes';before=attr.read_bytes();rule=b'harness/experiments/analysis-checked-save-windows-20260913/** -text whitespace=-blank-at-eol,-blank-at-eof,cr-at-eol'
|
||||
assert rule not in before;nl=b'\r\n' if b'\r\n' in before else b'\n';attr.write_bytes(before+(b'' if before.endswith(b'\n') else nl)+rule+nl)
|
||||
# Index-specific patch stages only our row; other staged/unstaged attribute edits remain.
|
||||
index=subprocess.check_output(['git','show',':.gitattributes'],cwd=R);assert rule not in index
|
||||
old=index.decode().splitlines();context=old[-1]
|
||||
patch=f'diff --git a/.gitattributes b/.gitattributes\n--- a/.gitattributes\n+++ b/.gitattributes\n@@ -{len(old)},1 +{len(old)},2 @@\n {context}\n+{rule.decode()}\n'
|
||||
subprocess.run(['git','apply','--cached','--check','-'],input=patch.encode(),cwd=R,check=True)
|
||||
subprocess.run(['git','apply','--cached','-'],input=patch.encode(),cwd=R,check=True)
|
||||
afterindex=subprocess.check_output(['git','show',':.gitattributes'],cwd=R)
|
||||
assert afterindex.decode().splitlines()==old+[rule.decode()]
|
||||
print(json.dumps({'initial_payloads':len(rows),'external_executable_verified':True,'attribute_staged_only_own_new_row':True},indent=2))
|
||||
@@ -0,0 +1,62 @@
|
||||
from pathlib import Path
|
||||
from datetime import datetime,timezone
|
||||
import hashlib,json,subprocess,os,time,shutil,re,sys
|
||||
ROOT=Path(__file__).resolve().parent.parent
|
||||
WORK=ROOT/'.local/analysis-core-worktree-20260911'
|
||||
TARGET=ROOT/'.local/analysis-checked-save-target-20260913'
|
||||
OUT=ROOT/'.local/analysis-checked-save-847b1caa-20260913'
|
||||
SOURCE='847b1caa7e75bb82f6ce5193c45bcfc45973ad1a'
|
||||
TEST='checked_save_returns_exact_bytes_and_accepts_unchanged_external_content'
|
||||
def sha(b):return hashlib.sha256(b).hexdigest()
|
||||
def identity(p):
|
||||
p=Path(p);b=p.read_bytes();return {'path':str(p),'bytes':len(b),'sha256':sha(b)}
|
||||
def new(name,obj):
|
||||
with (OUT/name).open('x',encoding='utf-8',newline='\n') as f:json.dump(obj,f,indent=2);f.write('\n')
|
||||
def git(*args):return subprocess.check_output(['git',*args],cwd=WORK)
|
||||
assert git('rev-parse','HEAD').decode().strip()==SOURCE
|
||||
assert not git('status','--porcelain').strip()
|
||||
assert not TARGET.exists();assert not OUT.exists();OUT.mkdir();TARGET.mkdir()
|
||||
paths=git('ls-tree','-r','--name-only',SOURCE,'Cargo.toml','Cargo.lock','rust-toolchain.toml','.cargo','build','crates','assets','docs','examples','harness/fixtures').decode().splitlines()
|
||||
data=subprocess.check_output(['git','cat-file','--batch'],cwd=WORK,input=''.join(f'{SOURCE}:{p}\n' for p in paths).encode())
|
||||
offset=0;inputs=[]
|
||||
for path in paths:
|
||||
end=data.index(b'\n',offset);_,kind,size=data[offset:end].split();assert kind==b'blob';size=int(size)
|
||||
blob=data[end+1:end+1+size];assert (WORK/path).read_bytes()==blob,path
|
||||
inputs.append({'path':path,'bytes':size,'sha256':sha(blob)});offset=end+size+2
|
||||
assert offset==len(data)
|
||||
new('inputs.json',{'source':SOURCE,'scope':'All tracked Cargo/config/shared build/crates/assets/docs/examples/harness fixture paths; exact raw committed blobs compared with current disk bytes before build.','inputs':inputs})
|
||||
env=os.environ.copy();env['CARGO_TARGET_DIR']=str(TARGET);env['CARGO_BUILD_JOBS']='1'
|
||||
assert Path(env['CARGO_HOME']).resolve()==ROOT/'.local/toolchain/cargo'
|
||||
assert Path(env['RUSTUP_HOME']).resolve()==ROOT/'.local/toolchain/rustup'
|
||||
versions={}
|
||||
for name,args in [('rustc',['rustc','-Vv']),('cargo',['cargo','-V']),('linker',['clang.exe','--version'])]:
|
||||
versions[name]=subprocess.check_output(args,cwd=WORK,env=env,stderr=subprocess.STDOUT).decode()
|
||||
tools={n:identity(shutil.which(n,path=env['PATH'])) for n in ['cargo','rustc','clang.exe']}
|
||||
toolchain_bin=ROOT/'.local/toolchain/rustup/toolchains/stable-x86_64-pc-windows-gnullvm/bin'
|
||||
for n in ['cargo.exe','rustc.exe']:tools['actual_'+n]=identity(toolchain_bin/n)
|
||||
runtime=ROOT/'.local/toolchain/llvm-mingw-20260908-ucrt-x86_64/bin/libunwind.dll'
|
||||
metadata={'source':SOURCE,'cwd':str(WORK),'target_directory':str(TARGET),'profile':'Cargo test default development/test profile; workspace profile.dev debug=0. No release optimization claimed.','versions':versions,'tools':tools,'env_script':identity(ROOT/'.local/toolchain/env.ps1'),'selected_environment':{k:env.get(k) for k in ['CARGO_HOME','RUSTUP_HOME','CARGO_TARGET_DIR','CARGO_BUILD_JOBS','CARGO_TARGET_X86_64_PC_WINDOWS_GNULLVM_LINKER','RUSTFLAGS','CARGO_ENCODED_RUSTFLAGS','PATH']},'runtime_path_candidate':identity(runtime),'runtime_binding_limit':'Hashed selected PATH candidate, not an observed loaded-module record.','runner':identity(__file__),'input_manifest':identity(OUT/'inputs.json')}
|
||||
new('preflight.json',metadata)
|
||||
command=['cargo','test','--locked','-p','oa-core','--test','review_regressions',TEST,'--','--exact','--test-threads=1','--nocapture']
|
||||
start=datetime.now(timezone.utc).isoformat();clock=time.monotonic()
|
||||
print(json.dumps({'start':start,'source':SOURCE,'input_count':len(inputs),'command':command,'target_directory':str(TARGET)}),flush=True)
|
||||
with (OUT/'cargo.log').open('xb') as log:
|
||||
p=subprocess.run(command,cwd=WORK,env=env,stdout=log,stderr=subprocess.STDOUT)
|
||||
elapsed=time.monotonic()-clock
|
||||
changed=[x['path'] for x in inputs if sha((WORK/x['path']).read_bytes())!=x['sha256']]
|
||||
executables=list((TARGET/'debug/deps').glob('review_regressions-*.exe'))
|
||||
listing=None;artifact=None
|
||||
if len(executables)==1:
|
||||
exe=executables[0];artifact=identity(exe)
|
||||
lc=[str(exe),TEST,'--exact','--list']
|
||||
with (OUT/'membership.stdout.log').open('xb') as out,(OUT/'membership.stderr.log').open('xb') as err:q=subprocess.run(lc,cwd=WORK,env=env,stdout=out,stderr=err)
|
||||
lines=(OUT/'membership.stdout.log').read_text().splitlines()
|
||||
selected=[line for line in lines if line.endswith(': test')]
|
||||
listing={'command':lc,'exit':q.returncode,'selected':selected,'exact_one':q.returncode==0 and selected==[TEST+': test'],'artifact_unchanged':artifact==identity(exe)}
|
||||
log=(OUT/'cargo.log').read_text(errors='replace')
|
||||
result={'source':SOURCE,'start':start,'end':datetime.now(timezone.utc).isoformat(),'elapsed_seconds':elapsed,'command':command,'exit':p.returncode,'changed_inputs':changed,'head_unchanged':git('rev-parse','HEAD').decode().strip()==SOURCE,'worktree_status':git('status','--porcelain').decode(),'log':identity(OUT/'cargo.log'),'artifact':artifact,'membership':listing,'log_running_one':bool(re.search(r'(?m)^running 1 test\s*$',log)),'log_test_failed':TEST+' ... FAILED' in log,'runtime_candidate_unchanged':metadata['runtime_path_candidate']==identity(runtime),'classification':'Result requires source/log diagnosis; no candidate acceptance inferred.'}
|
||||
new('result.json',result)
|
||||
print(log[-12000:]);print(json.dumps(result,indent=2))
|
||||
assert not changed and result['head_unchanged'] and not result['worktree_status']
|
||||
assert listing is not None and listing['exact_one'] and listing['artifact_unchanged'] and result['log_running_one']
|
||||
sys.exit(p.returncode)
|
||||
@@ -0,0 +1,23 @@
|
||||
# Closed dd39 lifecycle and palette native trial
|
||||
|
||||
Exact-byte archive of `.local/native-qa/lifecycle-palette-20260913-01`: GUI source **dd39e1fdc13f04f18975a70736d2ed7f752a6df2**, PID8736, normal recorded exit0 at **2026-09-13T02:35:43.429487Z**, empty stdout/stderr. See the parent's [native acceptance report](../../release-canvas-native-dd39e1f-20260913.md) for accepted workflows and remaining work.
|
||||
|
||||
The [independent native review](review/lifecycle-palette-native-independent-review-20260913.md) covers all41 original frames and finds no verified actionable mismatch within its stated scope. Its [format addendum](review/lifecycle-palette-native-independent-review-format-addendum-20260913.md) corrects terminology: all41 files named `.png` contain **JPEG/JFIF bytes**. Their original filenames, hashes and bytes remain unchanged. The archive checks each sidecar SHA256 and actual JPEG frame dimensions. An initial PNG-signature assumption failed before output creation; its helper is retained in tools. No image was converted or rewritten.
|
||||
|
||||
## Source and preservation evidence
|
||||
|
||||
[source-binding.json](source-binding.json) records independent raw committed-blob/current-disk comparison of538 dd39 inputs,538 e44 inputs, and110 shared core/config inputs. It verifies the exact two-stage iterator/dereference correction in the one readonly test file and all20 staged artifacts. GUI and runtime hashes were rechecked; the parent was notified when current-core source binding finished so its source hold could end.
|
||||
|
||||
The full **874-test** suite belongs to **e44f07565cc7599d5c5a15a6b5599b4f5d105718**, with the explicitly reviewed test-only delta to dd39. Affected style10, strict lint and matching GUI gates belong to dd39. No full suite at dd39 is claimed. [stage/manifest.json](stage/manifest.json), its preserved gate receipts/logs/input inventories, [launch.json](launch.json), original/testfix helpers and [reuse review](review/palette-testfix-staging-review-20260913.md) retain this distinction, including the intermediate failed and abandoned invocations. Original stage text saying native acceptance pending describes staging time; closure and native review are later evidence.
|
||||
|
||||
The archive contains41 screenshot/JSON pairs and five exact source/model comparison receipts with all snapshot files: lifecycle after save/reopen, compact after save, topology after save and topology after close. All five record oracle exit0 and complete Project/exact SourceBundle preservation; declared files match their baseline bytes. The topology after-close comparison starts02:35:49 UTC, after normal GUI closure. Oracle logs retain admitted warnings. These are preservation checks, not independent proof of each GUI action or complete process-topology semantics.
|
||||
|
||||
All12 original preparation rows (six baseline files plus six working copies) and four topology preparation rows were verified against their recorded source hashes. **Eight baseline files** are archived: two compact, four lifecycle, two topology. Working copies are excluded; their saved states are represented by the five immutable snapshots. Topology preparation/admission, its110-input record, primary provenance and supporting source7 fixture records are retained. Same-mode topology admission/equality is explicitly narrower than independent canonical or GUI acceptance.
|
||||
|
||||
## Contents and limits
|
||||
|
||||
`manifest.json` inventories all payloads except itself, with exact sizes, SHA256 and original source paths. Original reports, JSON and logs are copied verbatim, including CRLF. Their relative/absolute `.local` paths describe original placement and commands; they are not automatically portable execution paths. Use manifest source mappings to locate archived counterparts. The original/checkpoint/testfix launch and staging helpers are evidence; do not run them from this archive expecting their historical root paths or exact-HEAD guards to relocate.
|
||||
|
||||
[external-bindings.json](external-bindings.json) binds the excluded114,227,712-byte GUI (`4eefe66eb3b6c315c11cfc1ac933b07515abaac069f5ce4f4c0a04fe7c53fdd2`), runtime (`aa282fa47bb2c4e210cea5e470cdbdca58568f0be0bc73e404d86ab9cd95ef6a`) and oracle (`9796aa73544c6414003e6230a668a6cf1435978a310187ef2560af67e35f3466`). Private profile, temporary files, mutable work directories, executable and target payloads are excluded. Original source/provenance inputs and all copied destinations were rehashed; no compiler, oracle, GUI or package was executed by the archivist.
|
||||
|
||||
Scope remains one Windows development build and recorded desktop environment. The60% fitted overview has tiny labels/few-pixel shoulder targets; arbitrary monitor/grayscale/DPI acceptance is absent. The single-entry chooser frame does not independently prove multirow keyboard cycling. Routed-warning discoverability is not covered. Process preview clicks select the containing reference in this pre-navigation build. The separate combined navigation/palette source, optimized packages, full source/API semantics and complete OA/SA acceptance remain outside this archive; Linux remains user-deferred.
|
||||
@@ -0,0 +1,2 @@
|
||||
// Preserve deletion evidence 雨.
|
||||
// Exact bytes matter.
|
||||
@@ -0,0 +1,224 @@
|
||||
arcadia 7;
|
||||
project delete_oracle "Delete oracle" id "de1e7e00-0000-4000-8000-000000000001" {
|
||||
include "notes.arcadia";
|
||||
description "";
|
||||
|
||||
oa_activity delete_10 "Target work" id "de1e7e00-0000-4000-8000-00000000000a" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity delete_11 "Untouched work" id "de1e7e00-0000-4000-8000-00000000000b" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_entity delete_12 "OA Dispatch team" id "de1e7e00-0000-4000-8000-00000000000c" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_scenario delete_20 "Reference scenario" id "de1e7e00-0000-4000-8000-000000000014" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [];
|
||||
viewpoint OperationalActivity;
|
||||
}
|
||||
|
||||
oa_lifeline delete_21 "Target reference" id "de1e7e00-0000-4000-8000-000000000015" {
|
||||
description "";
|
||||
parent @delete_20;
|
||||
represented @delete_10;
|
||||
}
|
||||
|
||||
sa_function delete_50 "SA Initialize controller" id "de1e7e00-0000-4000-8000-000000000032" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_state_machine delete_51 "SA Controller modes" id "de1e7e00-0000-4000-8000-000000000033" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_region delete_52 "SA Main region" id "de1e7e00-0000-4000-8000-000000000034" {
|
||||
description "";
|
||||
parent @delete_51;
|
||||
}
|
||||
|
||||
sa_state delete_53 "SA Ready" id "de1e7e00-0000-4000-8000-000000000035" {
|
||||
description "";
|
||||
do_activity "";
|
||||
entry "";
|
||||
exit "";
|
||||
kind State;
|
||||
parent @delete_52;
|
||||
}
|
||||
|
||||
allocation delete_13 "OA performs target work" id "de1e7e00-0000-4000-8000-00000000000d" {
|
||||
description "";
|
||||
source @delete_12;
|
||||
target @delete_10;
|
||||
}
|
||||
|
||||
state_action delete_54 "SA Entry initialize" id "de1e7e00-0000-4000-8000-000000000036" {
|
||||
description "";
|
||||
phase Entry;
|
||||
source @delete_53;
|
||||
target @delete_50;
|
||||
}
|
||||
|
||||
diagram view_30 "Work view 30" id "de1e7e00-0000-4000-8000-00000000001e" {
|
||||
description "";
|
||||
layer Oa;
|
||||
projection Allocation;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node node_31 id "de1e7e00-0000-4000-8000-00000000001f" {
|
||||
collapsed false;
|
||||
diagram @view_30;
|
||||
element @delete_10;
|
||||
position {
|
||||
x 80.0;
|
||||
y 80.0;
|
||||
};
|
||||
size {
|
||||
height 90.0;
|
||||
width 180.0;
|
||||
};
|
||||
}
|
||||
|
||||
node node_32 id "de1e7e00-0000-4000-8000-000000000020" {
|
||||
collapsed false;
|
||||
diagram @view_30;
|
||||
element @delete_12;
|
||||
position {
|
||||
x 40.0;
|
||||
y 40.0;
|
||||
};
|
||||
size {
|
||||
height 230.0;
|
||||
width 380.0;
|
||||
};
|
||||
}
|
||||
|
||||
diagram view_40 "Work view 40" id "de1e7e00-0000-4000-8000-000000000028" {
|
||||
description "";
|
||||
layer Oa;
|
||||
projection Allocation;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node node_41 id "de1e7e00-0000-4000-8000-000000000029" {
|
||||
collapsed false;
|
||||
diagram @view_40;
|
||||
element @delete_10;
|
||||
position {
|
||||
x 80.0;
|
||||
y 80.0;
|
||||
};
|
||||
size {
|
||||
height 90.0;
|
||||
width 180.0;
|
||||
};
|
||||
}
|
||||
|
||||
node node_42 id "de1e7e00-0000-4000-8000-00000000002a" {
|
||||
collapsed false;
|
||||
diagram @view_40;
|
||||
element @delete_12;
|
||||
position {
|
||||
x 40.0;
|
||||
y 40.0;
|
||||
};
|
||||
size {
|
||||
height 230.0;
|
||||
width 380.0;
|
||||
};
|
||||
}
|
||||
|
||||
diagram sa_modes_view "SA Controller modes view" id "de1e7e00-0000-4000-8000-00000000003c" {
|
||||
description "";
|
||||
layer Sa;
|
||||
projection {
|
||||
StateMachine {
|
||||
machine @delete_51;
|
||||
};
|
||||
};
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node node_61 id "de1e7e00-0000-4000-8000-00000000003d" {
|
||||
collapsed false;
|
||||
diagram @sa_modes_view;
|
||||
element @delete_51;
|
||||
position {
|
||||
x 40.0;
|
||||
y 40.0;
|
||||
};
|
||||
size {
|
||||
height 460.0;
|
||||
width 620.0;
|
||||
};
|
||||
}
|
||||
|
||||
node node_62 id "de1e7e00-0000-4000-8000-00000000003e" {
|
||||
collapsed false;
|
||||
diagram @sa_modes_view;
|
||||
element @delete_52;
|
||||
position {
|
||||
x 60.0;
|
||||
y 95.0;
|
||||
};
|
||||
size {
|
||||
height 380.0;
|
||||
width 580.0;
|
||||
};
|
||||
}
|
||||
|
||||
node node_63 id "de1e7e00-0000-4000-8000-00000000003f" {
|
||||
collapsed false;
|
||||
diagram @sa_modes_view;
|
||||
element @delete_53;
|
||||
position {
|
||||
x 100.0;
|
||||
y 155.0;
|
||||
};
|
||||
size {
|
||||
height 190.0;
|
||||
width 320.0;
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
# Native lifecycle union fixtures — strong core preflight passed; GUI pending
|
||||
|
||||
## Strong actual-core preflight — 2026-09-13 00:14 UTC
|
||||
|
||||
The unchanged prepared `preflight.rs` compiled with Rust edition 2024, `-D warnings` and the documented LLVM-MinGW linker, then passed on the unchanged fixture. Build and run both exited 0. See [build/provenance receipt](strong-preflight-d61-r1/build.json), [run receipt](strong-preflight-d61-r1/run.json), [full assertion result and diagnostics](strong-preflight-d61-r1/run.stdout.log), and [exact verified core/config/lock inputs](strong-preflight-d61-r1/verified-core-config-inputs.json). Compiler and runtime stderr were empty. The executable SHA-256 is `d5d1d6c547c0e0a8a4fe1e64b2fd1023017596eefe6ca499c7159051f95395b7`.
|
||||
|
||||
The existing `liboa_core-145180297aa692e4.rlib` SHA-256 `d395dbe1f761d41bce3cb850f44cdc0343b0db172bd03abf89e455c44f4b7e86` matches its identified prior425 build receipt. All 110 scoped core/configuration/lock inputs match both the prior425 and closed d61 full gate manifests, and the current committed `aadc6396d39ff336d05381d58d545093d3f37a73` core/configuration has no tracked or untracked changes. The closed d61 gate source is `d61f1f38779ab70a77efcde523ae31c432aefcfd`. No core rebuild or newest-artifact substitution occurred. The exact driver, probe, fixture snapshot, earlier build receipt, commands and tool hashes are preserved in the new result directory.
|
||||
|
||||
Executed assertions establish: six scenarios, 61 elements, five relations, zero Errors and 18 completeness warnings; ordinary candidate admission; exact original SourceBundle preservation including comments/Unicode/IDs; complete Project equality through canonical format/parse and formatting stability; all six root step orders; all eight carried pressure values; four SA invocation/allocation/caller/provider proofs; and the intentional incomplete Reply sender/receiver/correlation tuple. Native geometry, pixels, selection, save/reopen interaction, focus and monitor appearance remain pending. The compiler lease was explicitly closed after this run; this helper does not establish desktop-renderer or release acceptance.
|
||||
|
||||
## Preliminary admission receipt — 2026-09-13 00:04 UTC
|
||||
|
||||
The existing identified core oracle passed `same lifecycle-native.arcadia lifecycle-native.arcadia`, exit 0. See [exact command, identities and exit](preliminary-admission-42511f0-r2/run.json), [stdout](preliminary-admission-42511f0-r2/stdout.log), and [all diagnostics](preliminary-admission-42511f0-r2/stderr.log). Each of its two independent loads reported 18 warnings: 15 `missing_exchange`, one `missing_lifeline`, and two `unallocated_leaf`; no Errors. The fixture SHA-256 remained `998a2fd3e2474e72fc013f4da422e49bad61e118de62eccfbd71bf06b863ce7f`.
|
||||
|
||||
The executable SHA-256 `9796aa73544c6414003e6230a668a6cf1435978a310187ef2560af67e35f3466` and compiled oracle source SHA-256 `fbc001a3c14d075fa9d5fce90188cc06055c12b02d4c5929818ac4325fb82c5e` were verified against its original build receipt before execution. Core identity is `42511f0f8ae46f29e11ae18c1030face654c2994`. [Preserved inputs and original build receipt](preliminary-admission-42511f0-r1/run.json) accompany byte-for-byte fixture and oracle source snapshots in that directory. The first launch exited `-1073741515` (`0xC0000135`) with empty output before admission; the successful second launch prepended the repository's documented LLVM-MinGW runtime directory to this process's PATH. Runtime DLL hashes and the exact PATH prefix are in r2. No executable was replaced or rebuilt.
|
||||
|
||||
Source review confirms `same` calls full source-project discovery/load, rejects discovery Errors and detached buffers, calls `compile_bundle` without allowing migration/normalization, and calls `validate_candidate` on the entire decoded Project. It then compares the complete Project and exact SourceBundle. The self-comparison establishes parse/source/model admission with that identified core; its identity comparison is tautological and **does not establish canonical roundtrip, execute `preflight.rs` assertions, validate the updated desktop renderer, or establish GUI acceptance**. At that preliminary checkpoint, the stronger checks were pending; the subsequent stronger core run is recorded above. The source-preparation notes below describe the earlier preparation stage.
|
||||
|
||||
The unchanged `lifecycle-native.arcadia` is now ready for the parent's native acceptance workflow after the successful core preflight. This is one project containing six small scenarios, 61 elements and five relations. `identities.tsv` gives every scenario, lifeline and occurrence alias/UUID. IDs use the new deterministic namespace `21c0fe00-0000-4000-8000-...`; the last 12 hex digits encode the alias's decimal suffix. Source comments include Ω, 戻り値, a combining-accent `é`, and `👩🔧` for exact save/reopen retention.
|
||||
|
||||
Target renderer source: reviewed union `f6595ebf66e88ec42c37b5c1a3c014f5e52cb32d`, before any later root corrections. The fixture was newly authored source; validation of the earlier bound-call artifact was not reused as proof for this edited project. No compiler, fixture execution, native interaction, Gitea mutation or root tracked edit was performed during preparation. Standalone rustfmt only parsed/formatted `preflight.rs`.
|
||||
|
||||
## Contents and expected geometry
|
||||
|
||||
The coordinates below are **source-derived world-coordinate expectations**, not measured screen pixels. At the current Scene layout, L1 is x=160 and L2 is x=400. Pan, Fit and zoom transform these coordinates. Marker capsules are 140×28, centered on L2. Activation bars use the reviewed 12-unit width/6-unit nesting offset; these are current implementation checks, not new permanent specification dimensions.
|
||||
|
||||
| Scenario / owner alias | Ordered events | Expected result |
|
||||
| --- | --- | --- |
|
||||
| **OA 1 Nested lifetime — Latin** / `bound_1000` | Create1005, C1=1040, C2=1030, R2=1060, R1=1050, Delete1070 | Rows148,240,332,424,516,608. L2 alive148–608. Outer C1 rectangle x394,y240,w12,h276; inner C2 x400,y332,w12,h92. Calls end and replies start on their corresponding left activation edges. Create ends x330,y148 at capsule edge; Delete ends x400,y608 at cross. No unanswered cue. |
|
||||
| **SA 2 Nested lifetime — Unicode** / `bound_2000` | Create2005, C1=2040, C2=2030, R2=2060, R1=2050, Delete2070 | Same rows and activation geometry as OA. Four Call/Reply messages retain the exact synchronous interface-operation allocation `bound_220`, caller port202, provider port203 and carried values. |
|
||||
| **OA 3 Self lifecycle and call** / `bound_3000` | Action3010, self-Create3020, self-Call3040, self-Reply3050, self-Delete3070 | Action row148, box bottom193. Self-Create marker row259, send235, label207; it clears the action. Self-Call send351, receive375; bar begins375. Self-Reply send443, receive467; bar ends443. Self-Delete send527, marker receive551. Execution x394,y375,w12,h68. Self-Call points `(400,351),(466,351),(466,375),(406,375)`; self-Reply `(406,443),(466,443),(466,467),(400,467)`. Create elbow is x512 and ends on capsule right edge470; Delete elbow512 returns to lane400. |
|
||||
| **OA 4 Death in one ALT operand** / `bound_4000` | Call4040; ALT4080: left4081 contains Delete4070, right4082 is empty | Preserve parent pre-frame activation, a left piece ending at Delete with Terminated metadata, and a separate 26-unit open right piece. No definite post-frame activation. The death path, empty open sibling and uncertain parent retain distinct cues. Source-derived rows: Call148, frame240, Delete385; left scope starts343, right525; right open piece525–551. |
|
||||
| **SA 5 Death and incomplete reply** / `bound_5000` | Call5040, Delete5070, incomplete Reply5050 | Call row148 to death240. One terminated execution and unanswered cue. Reply row332 is a repair card: sender is intentionally absent, receiver5001 and reply_to5040 remain. It must not become a detached Reply arrow or fabricate an answered execution. |
|
||||
| **SA 6 Unresolved lifetime, visible cue** / `bound_6000` | ALT6080: left6081 Create6005, right6082 Call6040 | Exclusive operands share conservative entry state. Create marker is visible in left; right lifetime is unresolved. The right Call remains visible and lane-anchored, with an unanswered cue even though there is no activation rectangle. Source-derived Create row293, Call475; cue around y494. |
|
||||
|
||||
The first two cases intentionally retain C2's numerically lower UUID despite C1 appearing first in semantic `steps`, exercising order independence. C1 input is420.0 kPa, R1 return418.0; C2 input380.0, R2 return378.0. OA calls use the actual Interaction/Operation-item contract; SA calls use the concrete BoundaryExchange, required/provided interfaces and synchronous operation allocation copied from the earlier bound fixture. Lifecycle Create/Delete messages and the self/incomplete cases intentionally have no exchange/operation binding; they are draft-capable, explicitly identified lifeline events with expected completeness warnings.
|
||||
|
||||
Long-name witnesses are in both the actual lifeline/capsule name and represented activity/system detail. OA uses wide Latin `W` glyphs; SA uses long CJK text and an emoji ZWJ sequence; the self case includes combining accents. Full names should remain in Properties/source while painted text stays inside its padded header/capsule clip.
|
||||
|
||||
## Admission and round-trip expectations
|
||||
|
||||
At source preparation, the fixture was checked against the actual constructors/tests and core rules. The stronger executed checks are recorded above:
|
||||
|
||||
- Bound contracts and original Call/Reply values derive from `.local/native-qa/bound-nested-fixture-r1-20260912/bound-nested-calls.arcadia`; that earlier artifact's validation does **not** validate this edited project.
|
||||
- Model shape and admitted lifetime cases follow `scenario_lifecycle/render_tests.rs` and `union_tests.rs` at f659. The source notation uses the same Exchange, Action, Fragment and Branch variants as their actual core constructors.
|
||||
- Core `validation.rs:1766–1791` rejects explicit receiver use before Create or after Delete. These fixtures contain no such same-path use. The self scenario's preceding Action uses L1, not the created L2. In SA5, the later Reply's dead sender endpoint is absent. In SA6, Create and Call occupy distinct exclusive ALT operands; `possibly_before` treats them as mutually exclusive.
|
||||
- Each reply names its guaranteed earlier call and reverses the known endpoints; missing endpoints remain missing. No recreated-after-death or fully bound late-reply invalid model is included.
|
||||
- Expect **zero Errors**, with completeness warnings from deliberately unbound messages, unfinished calls and draft endpoint/analysis fields. Do not hide warnings or report this as a complete system design.
|
||||
- Require actual source-project admission, exact original bundle equality (comments/Unicode/explicit IDs), complete Project equality through canonical format/parse, and canonical formatting stability. Compare all fields, not just scenario steps.
|
||||
|
||||
`preflight.rs` is the standalone actual-core check now compiled and executed successfully as recorded above. It reads only the source, performs those checks, verifies all six root step orders and the eight preserved pressure values, and resolves all four SA messages to the exact Call/allocation/ports. It prints diagnostics and a PASS line only after every assertion succeeds; it writes no files. A future rerun must preserve a new receipt label and retain exact dependency provenance.
|
||||
|
||||
## Native acceptance checklist
|
||||
|
||||
Use the named scenarios in Behavior. Check normal-scale and Fit appearance; compare selected and unselected bars and each exposed shoulder, including the three label-backplate bands above nested C2/R2/R1. Exact message/arrow points must still select their own occurrence. Birth capsules and death crosses must select their Create/Delete IDs at pan/zoom. Confirm the long header/capsule labels are clipped without text leaking outside or disappearing after pan, and self-event captions clear the preceding Action. In Properties, inspect pressure values/correlations and the intentionally missing SA5 sender.
|
||||
|
||||
For ALT cases, do not interpret vertically stacked operands as consecutive execution. Check each operand and the uncertain continuation independently. Save/reopen a writable acceptance copy and compare the complete Project and original comments/Unicode. This fixture does not establish free positioning, min-scale shoulder usability, global palette improvement, platform completion, or release acceptance; those retain their separate gates.
|
||||
|
||||
Source identity before root execution:
|
||||
|
||||
- `lifecycle-native.arcadia`: SHA-256 `998A2FD3E2474E72FC013F4DA422E49BAD61E118DE62ECCFBD71BF06B863CE7F`.
|
||||
- `preflight.rs`: SHA-256 `BF2EB9B908AE36198D15D47AE79D56E4BB181F506598CC4E76A76175041F633E`.
|
||||
@@ -0,0 +1,49 @@
|
||||
alias id kind name
|
||||
bound_1000 21c0fe00-0000-4000-8000-0000000003e8 oa_scenario OA 1 Nested lifetime — Latin
|
||||
bound_1001 21c0fe00-0000-4000-8000-0000000003e9 oa_lifeline L1 Console
|
||||
bound_1002 21c0fe00-0000-4000-8000-0000000003ea oa_lifeline L2 WWWWWWWWWWWWWWWWWW Inspector
|
||||
bound_1005 21c0fe00-0000-4000-8000-0000000003ed oa_occurrence Create inspector
|
||||
bound_1030 21c0fe00-0000-4000-8000-000000000406 oa_occurrence C2 380 kPa
|
||||
bound_1040 21c0fe00-0000-4000-8000-000000000410 oa_occurrence C1 420 kPa
|
||||
bound_1050 21c0fe00-0000-4000-8000-00000000041a oa_occurrence R1 418 kPa
|
||||
bound_1060 21c0fe00-0000-4000-8000-000000000424 oa_occurrence R2 378 kPa
|
||||
bound_1070 21c0fe00-0000-4000-8000-00000000042e oa_occurrence Delete inspector
|
||||
bound_2000 21c0fe00-0000-4000-8000-0000000007d0 sa_scenario SA 2 Nested lifetime — Unicode
|
||||
bound_2001 21c0fe00-0000-4000-8000-0000000007d1 sa_lifeline L1 Console
|
||||
bound_2002 21c0fe00-0000-4000-8000-0000000007d2 sa_lifeline L2 界界界界界界界界界界界界 戻り値 👩🔧
|
||||
bound_2005 21c0fe00-0000-4000-8000-0000000007d5 sa_occurrence Create inspector
|
||||
bound_2030 21c0fe00-0000-4000-8000-0000000007ee sa_occurrence C2 380 kPa
|
||||
bound_2040 21c0fe00-0000-4000-8000-0000000007f8 sa_occurrence C1 420 kPa
|
||||
bound_2050 21c0fe00-0000-4000-8000-000000000802 sa_occurrence R1 418 kPa
|
||||
bound_2060 21c0fe00-0000-4000-8000-00000000080c sa_occurrence R2 378 kPa
|
||||
bound_2070 21c0fe00-0000-4000-8000-000000000816 sa_occurrence Delete inspector
|
||||
bound_3000 21c0fe00-0000-4000-8000-000000000bb8 oa_scenario OA 3 Self lifecycle and call
|
||||
bound_3001 21c0fe00-0000-4000-8000-000000000bb9 oa_lifeline L1 Creator
|
||||
bound_3002 21c0fe00-0000-4000-8000-000000000bba oa_lifeline L2 自己検査 é é é 👩🔧 確認担当
|
||||
bound_3010 21c0fe00-0000-4000-8000-000000000bc2 oa_occurrence Prepare creation
|
||||
bound_3020 21c0fe00-0000-4000-8000-000000000bcc oa_occurrence Self create
|
||||
bound_3040 21c0fe00-0000-4000-8000-000000000be0 oa_occurrence Self call
|
||||
bound_3050 21c0fe00-0000-4000-8000-000000000bea oa_occurrence Self reply
|
||||
bound_3070 21c0fe00-0000-4000-8000-000000000bfe oa_occurrence Self delete
|
||||
bound_4000 21c0fe00-0000-4000-8000-000000000fa0 oa_scenario OA 4 Death in one ALT operand
|
||||
bound_4001 21c0fe00-0000-4000-8000-000000000fa1 oa_lifeline L1 Requester
|
||||
bound_4002 21c0fe00-0000-4000-8000-000000000fa2 oa_lifeline L2 Conditional inspector
|
||||
bound_4040 21c0fe00-0000-4000-8000-000000000fc8 oa_occurrence Unanswered call
|
||||
bound_4070 21c0fe00-0000-4000-8000-000000000fe6 oa_occurrence Delete without reply
|
||||
bound_4080 21c0fe00-0000-4000-8000-000000000ff0 oa_occurrence Delete or keep alive
|
||||
bound_4081 21c0fe00-0000-4000-8000-000000000ff1 oa_occurrence Delete path
|
||||
bound_4082 21c0fe00-0000-4000-8000-000000000ff2 oa_occurrence Open path
|
||||
bound_5000 21c0fe00-0000-4000-8000-000000001388 sa_scenario SA 5 Death and incomplete reply
|
||||
bound_5001 21c0fe00-0000-4000-8000-000000001389 sa_lifeline L1 Requester
|
||||
bound_5002 21c0fe00-0000-4000-8000-00000000138a sa_lifeline L2 Terminated service
|
||||
bound_5040 21c0fe00-0000-4000-8000-0000000013b0 sa_occurrence Unanswered call
|
||||
bound_5050 21c0fe00-0000-4000-8000-0000000013ba sa_occurrence Incomplete reply — no sender
|
||||
bound_5070 21c0fe00-0000-4000-8000-0000000013ce sa_occurrence Delete service
|
||||
bound_6000 21c0fe00-0000-4000-8000-000000001770 sa_scenario SA 6 Unresolved lifetime, visible cue
|
||||
bound_6001 21c0fe00-0000-4000-8000-000000001771 sa_lifeline L1 Requester
|
||||
bound_6002 21c0fe00-0000-4000-8000-000000001772 sa_lifeline L2 Unresolved service
|
||||
bound_6005 21c0fe00-0000-4000-8000-000000001775 sa_occurrence Create service
|
||||
bound_6040 21c0fe00-0000-4000-8000-000000001798 sa_occurrence Call with unresolved lifetime
|
||||
bound_6080 21c0fe00-0000-4000-8000-0000000017c0 sa_occurrence Birth is path dependent
|
||||
bound_6081 21c0fe00-0000-4000-8000-0000000017c1 sa_occurrence Create path
|
||||
bound_6082 21c0fe00-0000-4000-8000-0000000017c2 sa_occurrence Call path
|
||||
|
@@ -0,0 +1,809 @@
|
||||
// Source-only fixture: validation and native acceptance have NOT been executed.
|
||||
// Preserve this comment and Unicode Ω, 戻り値, é and 👩🔧 during save/reopen.
|
||||
arcadia 7;
|
||||
project lifecycle_native "Nested lifecycle union acceptance" id "21c0fe00-0000-4000-8000-000000000001" {
|
||||
description "Six compact scenarios for typed activations, birth/death, long labels and admitted incomplete paths. Fixture preparation is source review only; run preflight before native acceptance.";
|
||||
|
||||
oa_activity bound_100 "Review pressure demand" id "21c0fe00-0000-4000-8000-000000000064" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity bound_101 "WWWWWWWWWWWWWWWWWW pressure inspection activity" id "21c0fe00-0000-4000-8000-000000000065" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_exchange_item bound_110 "Check pressure" id "21c0fe00-0000-4000-8000-00000000006e" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Operation;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
oa_data_field bound_111 "requested_pressure" id "21c0fe00-0000-4000-8000-00000000006f" {
|
||||
default none;
|
||||
description "";
|
||||
direction In;
|
||||
maximum 1;
|
||||
minimum 1;
|
||||
parent @bound_110;
|
||||
storage Value;
|
||||
type_ref Real;
|
||||
unit "kPa";
|
||||
}
|
||||
|
||||
oa_data_field bound_112 "measured_pressure" id "21c0fe00-0000-4000-8000-000000000070" {
|
||||
default none;
|
||||
description "";
|
||||
direction Return;
|
||||
maximum 1;
|
||||
minimum 1;
|
||||
parent @bound_110;
|
||||
storage Value;
|
||||
type_ref Real;
|
||||
unit "kPa";
|
||||
}
|
||||
|
||||
interaction bound_120 "Pressure check" id "21c0fe00-0000-4000-8000-000000000078" {
|
||||
description "";
|
||||
items [@bound_110];
|
||||
source @bound_100;
|
||||
target @bound_101;
|
||||
}
|
||||
|
||||
sa_actor bound_200 "Operator console" id "21c0fe00-0000-4000-8000-0000000000c8" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_system bound_201 "界界界界界界界界界界界界 圧力確認サービス 👩🔧" id "21c0fe00-0000-4000-8000-0000000000c9" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_port bound_202 "Client socket" id "21c0fe00-0000-4000-8000-0000000000ca" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @bound_200;
|
||||
}
|
||||
|
||||
sa_port bound_203 "Service socket" id "21c0fe00-0000-4000-8000-0000000000cb" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @bound_201;
|
||||
}
|
||||
|
||||
sa_exchange_item bound_210 "Check pressure" id "21c0fe00-0000-4000-8000-0000000000d2" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Operation;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
sa_data_field bound_211 "requested_pressure" id "21c0fe00-0000-4000-8000-0000000000d3" {
|
||||
default none;
|
||||
description "";
|
||||
direction In;
|
||||
maximum 1;
|
||||
minimum 1;
|
||||
parent @bound_210;
|
||||
storage Value;
|
||||
type_ref Real;
|
||||
unit "kPa";
|
||||
}
|
||||
|
||||
sa_data_field bound_212 "measured_pressure" id "21c0fe00-0000-4000-8000-0000000000d4" {
|
||||
default none;
|
||||
description "";
|
||||
direction Return;
|
||||
maximum 1;
|
||||
minimum 1;
|
||||
parent @bound_210;
|
||||
storage Value;
|
||||
type_ref Real;
|
||||
unit "kPa";
|
||||
}
|
||||
|
||||
sa_interface bound_213 "Pressure check API" id "21c0fe00-0000-4000-8000-0000000000d5" {
|
||||
description "";
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
interface_item_allocation bound_220 "Synchronous pressure check" id "21c0fe00-0000-4000-8000-0000000000dc" {
|
||||
acquisition Unspecified;
|
||||
description "";
|
||||
order 0;
|
||||
source @bound_213;
|
||||
target @bound_210;
|
||||
transmission Synchronous;
|
||||
}
|
||||
|
||||
interface_requirement bound_221 "Console requires check" id "21c0fe00-0000-4000-8000-0000000000dd" {
|
||||
description "";
|
||||
source @bound_202;
|
||||
target @bound_213;
|
||||
}
|
||||
|
||||
interface_provision bound_222 "Service provides check" id "21c0fe00-0000-4000-8000-0000000000de" {
|
||||
description "";
|
||||
source @bound_203;
|
||||
target @bound_213;
|
||||
}
|
||||
|
||||
boundary_exchange bound_223 "Pressure channel" id "21c0fe00-0000-4000-8000-0000000000df" {
|
||||
description "";
|
||||
items [@bound_210];
|
||||
oriented false;
|
||||
source @bound_202;
|
||||
target @bound_203;
|
||||
}
|
||||
|
||||
oa_scenario bound_1000 "OA 1 Nested lifetime — Latin" id "21c0fe00-0000-4000-8000-0000000003e8" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "Each reply retains its own requested and measured values";
|
||||
precondition "Two pressure checks are reviewed before the outer reply";
|
||||
steps [@bound_1005, @bound_1040, @bound_1030, @bound_1060, @bound_1050, @bound_1070];
|
||||
viewpoint OperationalActivity;
|
||||
}
|
||||
|
||||
oa_lifeline bound_1001 "L1 Console" id "21c0fe00-0000-4000-8000-0000000003e9" {
|
||||
description "";
|
||||
parent @bound_1000;
|
||||
represented @bound_100;
|
||||
}
|
||||
|
||||
oa_lifeline bound_1002 "L2 WWWWWWWWWWWWWWWWWW Inspector" id "21c0fe00-0000-4000-8000-0000000003ea" {
|
||||
description "";
|
||||
parent @bound_1000;
|
||||
represented @bound_101;
|
||||
}
|
||||
|
||||
oa_occurrence bound_1005 "Create inspector" id "21c0fe00-0000-4000-8000-0000000003ed" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Create;
|
||||
receiver @bound_1002;
|
||||
reply_to none;
|
||||
sender @bound_1001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_1000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_1030 "C2 380 kPa" id "21c0fe00-0000-4000-8000-000000000406" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @bound_120;
|
||||
message_kind Call;
|
||||
receiver @bound_1002;
|
||||
reply_to none;
|
||||
sender @bound_1001;
|
||||
values [{
|
||||
expression "380.0";
|
||||
field @bound_111;
|
||||
path [];
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_1000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_1040 "C1 420 kPa" id "21c0fe00-0000-4000-8000-000000000410" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @bound_120;
|
||||
message_kind Call;
|
||||
receiver @bound_1002;
|
||||
reply_to none;
|
||||
sender @bound_1001;
|
||||
values [{
|
||||
expression "420.0";
|
||||
field @bound_111;
|
||||
path [];
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_1000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_1050 "R1 418 kPa" id "21c0fe00-0000-4000-8000-00000000041a" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @bound_120;
|
||||
message_kind Reply;
|
||||
receiver @bound_1001;
|
||||
reply_to @bound_1040;
|
||||
sender @bound_1002;
|
||||
values [{
|
||||
expression "418.0";
|
||||
field @bound_112;
|
||||
path [];
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_1000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_1060 "R2 378 kPa" id "21c0fe00-0000-4000-8000-000000000424" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @bound_120;
|
||||
message_kind Reply;
|
||||
receiver @bound_1001;
|
||||
reply_to @bound_1030;
|
||||
sender @bound_1002;
|
||||
values [{
|
||||
expression "378.0";
|
||||
field @bound_112;
|
||||
path [];
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_1000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_1070 "Delete inspector" id "21c0fe00-0000-4000-8000-00000000042e" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Delete;
|
||||
receiver @bound_1002;
|
||||
reply_to none;
|
||||
sender @bound_1001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_1000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_scenario bound_2000 "SA 2 Nested lifetime — Unicode" id "21c0fe00-0000-4000-8000-0000000007d0" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "Each reply retains its own requested and measured values";
|
||||
precondition "Two pressure checks are reviewed before the outer reply";
|
||||
steps [@bound_2005, @bound_2040, @bound_2030, @bound_2060, @bound_2050, @bound_2070];
|
||||
viewpoint BoundaryInterface;
|
||||
}
|
||||
|
||||
sa_lifeline bound_2001 "L1 Console" id "21c0fe00-0000-4000-8000-0000000007d1" {
|
||||
description "";
|
||||
parent @bound_2000;
|
||||
represented @bound_200;
|
||||
}
|
||||
|
||||
sa_lifeline bound_2002 "L2 界界界界界界界界界界界界 戻り値 👩🔧" id "21c0fe00-0000-4000-8000-0000000007d2" {
|
||||
description "";
|
||||
parent @bound_2000;
|
||||
represented @bound_201;
|
||||
}
|
||||
|
||||
sa_occurrence bound_2005 "Create inspector" id "21c0fe00-0000-4000-8000-0000000007d5" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Create;
|
||||
receiver @bound_2002;
|
||||
reply_to none;
|
||||
sender @bound_2001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_2000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_2030 "C2 380 kPa" id "21c0fe00-0000-4000-8000-0000000007ee" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @bound_223;
|
||||
message_kind Call;
|
||||
operation {
|
||||
allocation @bound_220;
|
||||
};
|
||||
receiver @bound_2002;
|
||||
reply_to none;
|
||||
sender @bound_2001;
|
||||
values [{
|
||||
expression "380.0";
|
||||
field @bound_211;
|
||||
path [];
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_2000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_2040 "C1 420 kPa" id "21c0fe00-0000-4000-8000-0000000007f8" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @bound_223;
|
||||
message_kind Call;
|
||||
operation {
|
||||
allocation @bound_220;
|
||||
};
|
||||
receiver @bound_2002;
|
||||
reply_to none;
|
||||
sender @bound_2001;
|
||||
values [{
|
||||
expression "420.0";
|
||||
field @bound_211;
|
||||
path [];
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_2000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_2050 "R1 418 kPa" id "21c0fe00-0000-4000-8000-000000000802" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @bound_223;
|
||||
message_kind Reply;
|
||||
receiver @bound_2001;
|
||||
reply_to @bound_2040;
|
||||
sender @bound_2002;
|
||||
values [{
|
||||
expression "418.0";
|
||||
field @bound_212;
|
||||
path [];
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_2000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_2060 "R2 378 kPa" id "21c0fe00-0000-4000-8000-00000000080c" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @bound_223;
|
||||
message_kind Reply;
|
||||
receiver @bound_2001;
|
||||
reply_to @bound_2030;
|
||||
sender @bound_2002;
|
||||
values [{
|
||||
expression "378.0";
|
||||
field @bound_212;
|
||||
path [];
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_2000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_2070 "Delete inspector" id "21c0fe00-0000-4000-8000-000000000816" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Delete;
|
||||
receiver @bound_2002;
|
||||
reply_to none;
|
||||
sender @bound_2001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_2000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_scenario bound_3000 "OA 3 Self lifecycle and call" id "21c0fe00-0000-4000-8000-000000000bb8" {
|
||||
context none;
|
||||
description "Native lifecycle union acceptance fixture; completeness warnings are intentional.";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@bound_3010, @bound_3020, @bound_3040, @bound_3050, @bound_3070];
|
||||
viewpoint OperationalActivity;
|
||||
}
|
||||
|
||||
oa_lifeline bound_3001 "L1 Creator" id "21c0fe00-0000-4000-8000-000000000bb9" {
|
||||
description "";
|
||||
parent @bound_3000;
|
||||
represented @bound_100;
|
||||
}
|
||||
|
||||
oa_lifeline bound_3002 "L2 自己検査 é é é 👩🔧 確認担当" id "21c0fe00-0000-4000-8000-000000000bba" {
|
||||
description "";
|
||||
parent @bound_3000;
|
||||
represented @bound_101;
|
||||
}
|
||||
|
||||
oa_occurrence bound_3010 "Prepare creation" id "21c0fe00-0000-4000-8000-000000000bc2" {
|
||||
body {
|
||||
Action {
|
||||
action @bound_100;
|
||||
lifeline @bound_3001;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_3000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_3020 "Self create" id "21c0fe00-0000-4000-8000-000000000bcc" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Create;
|
||||
receiver @bound_3002;
|
||||
reply_to none;
|
||||
sender @bound_3002;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_3000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_3040 "Self call" id "21c0fe00-0000-4000-8000-000000000be0" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Call;
|
||||
receiver @bound_3002;
|
||||
reply_to none;
|
||||
sender @bound_3002;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_3000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_3050 "Self reply" id "21c0fe00-0000-4000-8000-000000000bea" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Reply;
|
||||
receiver @bound_3002;
|
||||
reply_to @bound_3040;
|
||||
sender @bound_3002;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_3000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_3070 "Self delete" id "21c0fe00-0000-4000-8000-000000000bfe" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Delete;
|
||||
receiver @bound_3002;
|
||||
reply_to none;
|
||||
sender @bound_3002;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_3000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_scenario bound_4000 "OA 4 Death in one ALT operand" id "21c0fe00-0000-4000-8000-000000000fa0" {
|
||||
context none;
|
||||
description "Native lifecycle union acceptance fixture; completeness warnings are intentional.";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@bound_4040, @bound_4080];
|
||||
viewpoint OperationalActivity;
|
||||
}
|
||||
|
||||
oa_lifeline bound_4001 "L1 Requester" id "21c0fe00-0000-4000-8000-000000000fa1" {
|
||||
description "";
|
||||
parent @bound_4000;
|
||||
represented @bound_100;
|
||||
}
|
||||
|
||||
oa_lifeline bound_4002 "L2 Conditional inspector" id "21c0fe00-0000-4000-8000-000000000fa2" {
|
||||
description "";
|
||||
parent @bound_4000;
|
||||
represented @bound_101;
|
||||
}
|
||||
|
||||
oa_occurrence bound_4040 "Unanswered call" id "21c0fe00-0000-4000-8000-000000000fc8" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Call;
|
||||
receiver @bound_4002;
|
||||
reply_to none;
|
||||
sender @bound_4001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_4000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_4070 "Delete without reply" id "21c0fe00-0000-4000-8000-000000000fe6" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Delete;
|
||||
receiver @bound_4002;
|
||||
reply_to none;
|
||||
sender @bound_4001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_4081;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_4080 "Delete or keep alive" id "21c0fe00-0000-4000-8000-000000000ff0" {
|
||||
body {
|
||||
Fragment {
|
||||
operator Alternative;
|
||||
branches [@bound_4081, @bound_4082];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_4000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_4081 "Delete path" id "21c0fe00-0000-4000-8000-000000000ff1" {
|
||||
body {
|
||||
Branch {
|
||||
guard "shutdown";
|
||||
occurrences [@bound_4070];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_4080;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_4082 "Open path" id "21c0fe00-0000-4000-8000-000000000ff2" {
|
||||
body {
|
||||
Branch {
|
||||
guard "continue";
|
||||
occurrences [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_4080;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_scenario bound_5000 "SA 5 Death and incomplete reply" id "21c0fe00-0000-4000-8000-000000001388" {
|
||||
context none;
|
||||
description "Native lifecycle union acceptance fixture; completeness warnings are intentional.";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@bound_5040, @bound_5070, @bound_5050];
|
||||
viewpoint BoundaryInterface;
|
||||
}
|
||||
|
||||
sa_lifeline bound_5001 "L1 Requester" id "21c0fe00-0000-4000-8000-000000001389" {
|
||||
description "";
|
||||
parent @bound_5000;
|
||||
represented @bound_200;
|
||||
}
|
||||
|
||||
sa_lifeline bound_5002 "L2 Terminated service" id "21c0fe00-0000-4000-8000-00000000138a" {
|
||||
description "";
|
||||
parent @bound_5000;
|
||||
represented @bound_201;
|
||||
}
|
||||
|
||||
sa_occurrence bound_5040 "Unanswered call" id "21c0fe00-0000-4000-8000-0000000013b0" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Call;
|
||||
receiver @bound_5002;
|
||||
reply_to none;
|
||||
sender @bound_5001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_5000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_5050 "Incomplete reply — no sender" id "21c0fe00-0000-4000-8000-0000000013ba" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Reply;
|
||||
receiver @bound_5001;
|
||||
reply_to @bound_5040;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_5000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_5070 "Delete service" id "21c0fe00-0000-4000-8000-0000000013ce" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Delete;
|
||||
receiver @bound_5002;
|
||||
reply_to none;
|
||||
sender @bound_5001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_5000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_scenario bound_6000 "SA 6 Unresolved lifetime, visible cue" id "21c0fe00-0000-4000-8000-000000001770" {
|
||||
context none;
|
||||
description "Native lifecycle union acceptance fixture; completeness warnings are intentional.";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@bound_6080];
|
||||
viewpoint BoundaryInterface;
|
||||
}
|
||||
|
||||
sa_lifeline bound_6001 "L1 Requester" id "21c0fe00-0000-4000-8000-000000001771" {
|
||||
description "";
|
||||
parent @bound_6000;
|
||||
represented @bound_200;
|
||||
}
|
||||
|
||||
sa_lifeline bound_6002 "L2 Unresolved service" id "21c0fe00-0000-4000-8000-000000001772" {
|
||||
description "";
|
||||
parent @bound_6000;
|
||||
represented @bound_201;
|
||||
}
|
||||
|
||||
sa_occurrence bound_6005 "Create service" id "21c0fe00-0000-4000-8000-000000001775" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Create;
|
||||
receiver @bound_6002;
|
||||
reply_to none;
|
||||
sender @bound_6001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_6081;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_6040 "Call with unresolved lifetime" id "21c0fe00-0000-4000-8000-000000001798" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Call;
|
||||
receiver @bound_6002;
|
||||
reply_to none;
|
||||
sender @bound_6001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_6082;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_6080 "Birth is path dependent" id "21c0fe00-0000-4000-8000-0000000017c0" {
|
||||
body {
|
||||
Fragment {
|
||||
operator Alternative;
|
||||
branches [@bound_6081, @bound_6082];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_6000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_6081 "Create path" id "21c0fe00-0000-4000-8000-0000000017c1" {
|
||||
body {
|
||||
Branch {
|
||||
guard "start new";
|
||||
occurrences [@bound_6005];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_6080;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_6082 "Call path" id "21c0fe00-0000-4000-8000-0000000017c2" {
|
||||
body {
|
||||
Branch {
|
||||
guard "use existing";
|
||||
occurrences [@bound_6040];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_6080;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
//! Source-only preflight; parent compiles/runs this against its exact oa-core.
|
||||
//! Usage: preflight.exe PATH_TO_lifecycle-native.arcadia
|
||||
use oa_core::{operations, source_project, validation, *};
|
||||
use std::collections::BTreeMap;
|
||||
|
||||
fn id(n: u128) -> Id {
|
||||
Id::from_u128(0x21c0fe00000040008000000000000000 + n)
|
||||
}
|
||||
fn main() {
|
||||
let args: Vec<_> = std::env::args().collect();
|
||||
assert_eq!(args.len(), 2, "Pass the prepared source file");
|
||||
let source = std::fs::read_to_string(&args[1]).unwrap();
|
||||
let p = language::parse(&source).expect("Prepared source must parse through actual core");
|
||||
let issues = validation::validate(&p);
|
||||
let errors: Vec<_> = issues
|
||||
.iter()
|
||||
.filter(|issue| issue.severity == validation::Severity::Error)
|
||||
.collect();
|
||||
assert!(errors.is_empty(), "Fixture admission failed: {errors:#?}");
|
||||
validate_candidate(&p).expect("Ordinary command admission must accept the whole Project");
|
||||
let bundle = source_project::SourceBundle {
|
||||
entry: "lifecycle-native.arcadia".into(),
|
||||
files: BTreeMap::from([("lifecycle-native.arcadia".into(), source.clone())]),
|
||||
};
|
||||
let compiled = source_project::compile_bundle(&bundle, Default::default())
|
||||
.expect("Use the actual source-project admission path");
|
||||
assert_eq!(
|
||||
compiled.bundle, bundle,
|
||||
"Keep comments, Unicode and all explicit IDs byte-for-byte"
|
||||
);
|
||||
assert_eq!(compiled.decoded.project, p);
|
||||
let canonical = language::format(&p);
|
||||
let reparsed = language::parse(&canonical).unwrap();
|
||||
assert_eq!(
|
||||
reparsed, p,
|
||||
"Compare the entire Project, not selected elements"
|
||||
);
|
||||
assert_eq!(language::format(&reparsed), canonical);
|
||||
assert_eq!(p.elements.len(), 61);
|
||||
assert_eq!(p.relations.len(), 5);
|
||||
for (owner, steps) in [
|
||||
(1000, vec![1005, 1040, 1030, 1060, 1050, 1070]),
|
||||
(2000, vec![2005, 2040, 2030, 2060, 2050, 2070]),
|
||||
(3000, vec![3010, 3020, 3040, 3050, 3070]),
|
||||
(4000, vec![4040, 4080]),
|
||||
(5000, vec![5040, 5070, 5050]),
|
||||
(6000, vec![6080]),
|
||||
] {
|
||||
assert_eq!(
|
||||
p.elements[&id(owner)].steps().unwrap(),
|
||||
&steps.into_iter().map(id).collect::<Vec<_>>()
|
||||
);
|
||||
}
|
||||
for base in [1000, 2000] {
|
||||
for (offset, call, expression) in [
|
||||
(40, 40, "420.0"),
|
||||
(30, 30, "380.0"),
|
||||
(60, 30, "378.0"),
|
||||
(50, 40, "418.0"),
|
||||
] {
|
||||
let occurrence = id(base + offset);
|
||||
let Some(SharedBody::Occurrence {
|
||||
body: OccurrenceBody::Exchange { values, .. },
|
||||
..
|
||||
}) = p.elements[&occurrence].shared()
|
||||
else {
|
||||
panic!("Expected an exchange occurrence")
|
||||
};
|
||||
assert_eq!(values.len(), 1);
|
||||
assert_eq!(values[0].expression, expression);
|
||||
if base == 2000 {
|
||||
let operations::OperationResolution::Selected(proof) =
|
||||
operations::resolve(&p, occurrence).unwrap()
|
||||
else {
|
||||
panic!("SA pressure operation must remain actually bound")
|
||||
};
|
||||
assert_eq!(proof.invocation, id(base + call));
|
||||
assert_eq!(proof.allocation, id(220));
|
||||
assert_eq!(proof.caller_port, id(202));
|
||||
assert_eq!(proof.provider_port, id(203));
|
||||
} else {
|
||||
assert_eq!(
|
||||
operations::resolve(&p, occurrence).unwrap(),
|
||||
operations::OperationResolution::Ordinary
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
let Some(SharedBody::Occurrence {
|
||||
body:
|
||||
OccurrenceBody::Exchange {
|
||||
sender,
|
||||
receiver,
|
||||
reply_to,
|
||||
..
|
||||
},
|
||||
..
|
||||
}) = p.elements[&id(5050)].shared()
|
||||
else {
|
||||
panic!("Expected incomplete reply")
|
||||
};
|
||||
assert_eq!(
|
||||
(*sender, *receiver, *reply_to),
|
||||
(None, Some(id(5001)), Some(id(5040)))
|
||||
);
|
||||
for issue in &issues {
|
||||
println!(
|
||||
"{:?} {} {:?}: {}",
|
||||
issue.severity, issue.code, issue.element, issue.message
|
||||
);
|
||||
}
|
||||
println!(
|
||||
"PASS: six scenarios,61 elements,5 relations,zero Errors,{} warnings; exact source bundle and whole-Project roundtrip; bound OA values and SA operation proofs preserved",
|
||||
issues.len()
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
# Native lifecycle union fixtures — strong core preflight passed; GUI pending
|
||||
|
||||
## Strong actual-core preflight — 2026-09-13 00:14 UTC
|
||||
|
||||
The unchanged prepared `preflight.rs` compiled with Rust edition 2024, `-D warnings` and the documented LLVM-MinGW linker, then passed on the unchanged fixture. Build and run both exited 0. See [build/provenance receipt](strong-preflight-d61-r1/build.json), [run receipt](strong-preflight-d61-r1/run.json), [full assertion result and diagnostics](strong-preflight-d61-r1/run.stdout.log), and [exact verified core/config/lock inputs](strong-preflight-d61-r1/verified-core-config-inputs.json). Compiler and runtime stderr were empty. The executable SHA-256 is `d5d1d6c547c0e0a8a4fe1e64b2fd1023017596eefe6ca499c7159051f95395b7`.
|
||||
|
||||
The existing `liboa_core-145180297aa692e4.rlib` SHA-256 `d395dbe1f761d41bce3cb850f44cdc0343b0db172bd03abf89e455c44f4b7e86` matches its identified prior425 build receipt. All 110 scoped core/configuration/lock inputs match both the prior425 and closed d61 full gate manifests, and the current committed `aadc6396d39ff336d05381d58d545093d3f37a73` core/configuration has no tracked or untracked changes. The closed d61 gate source is `d61f1f38779ab70a77efcde523ae31c432aefcfd`. No core rebuild or newest-artifact substitution occurred. The exact driver, probe, fixture snapshot, earlier build receipt, commands and tool hashes are preserved in the new result directory.
|
||||
|
||||
Executed assertions establish: six scenarios, 61 elements, five relations, zero Errors and 18 completeness warnings; ordinary candidate admission; exact original SourceBundle preservation including comments/Unicode/IDs; complete Project equality through canonical format/parse and formatting stability; all six root step orders; all eight carried pressure values; four SA invocation/allocation/caller/provider proofs; and the intentional incomplete Reply sender/receiver/correlation tuple. Native geometry, pixels, selection, save/reopen interaction, focus and monitor appearance remain pending. The compiler lease was explicitly closed after this run; this helper does not establish desktop-renderer or release acceptance.
|
||||
|
||||
## Preliminary admission receipt — 2026-09-13 00:04 UTC
|
||||
|
||||
The existing identified core oracle passed `same lifecycle-native.arcadia lifecycle-native.arcadia`, exit 0. See [exact command, identities and exit](preliminary-admission-42511f0-r2/run.json), [stdout](preliminary-admission-42511f0-r2/stdout.log), and [all diagnostics](preliminary-admission-42511f0-r2/stderr.log). Each of its two independent loads reported 18 warnings: 15 `missing_exchange`, one `missing_lifeline`, and two `unallocated_leaf`; no Errors. The fixture SHA-256 remained `998a2fd3e2474e72fc013f4da422e49bad61e118de62eccfbd71bf06b863ce7f`.
|
||||
|
||||
The executable SHA-256 `9796aa73544c6414003e6230a668a6cf1435978a310187ef2560af67e35f3466` and compiled oracle source SHA-256 `fbc001a3c14d075fa9d5fce90188cc06055c12b02d4c5929818ac4325fb82c5e` were verified against its original build receipt before execution. Core identity is `42511f0f8ae46f29e11ae18c1030face654c2994`. [Preserved inputs and original build receipt](preliminary-admission-42511f0-r1/run.json) accompany byte-for-byte fixture and oracle source snapshots in that directory. The first launch exited `-1073741515` (`0xC0000135`) with empty output before admission; the successful second launch prepended the repository's documented LLVM-MinGW runtime directory to this process's PATH. Runtime DLL hashes and the exact PATH prefix are in r2. No executable was replaced or rebuilt.
|
||||
|
||||
Source review confirms `same` calls full source-project discovery/load, rejects discovery Errors and detached buffers, calls `compile_bundle` without allowing migration/normalization, and calls `validate_candidate` on the entire decoded Project. It then compares the complete Project and exact SourceBundle. The self-comparison establishes parse/source/model admission with that identified core; its identity comparison is tautological and **does not establish canonical roundtrip, execute `preflight.rs` assertions, validate the updated desktop renderer, or establish GUI acceptance**. At that preliminary checkpoint, the stronger checks were pending; the subsequent stronger core run is recorded above. The source-preparation notes below describe the earlier preparation stage.
|
||||
|
||||
The unchanged `lifecycle-native.arcadia` is now ready for the parent's native acceptance workflow after the successful core preflight. This is one project containing six small scenarios, 61 elements and five relations. `identities.tsv` gives every scenario, lifeline and occurrence alias/UUID. IDs use the new deterministic namespace `21c0fe00-0000-4000-8000-...`; the last 12 hex digits encode the alias's decimal suffix. Source comments include Ω, 戻り値, a combining-accent `é`, and `👩🔧` for exact save/reopen retention.
|
||||
|
||||
Target renderer source: reviewed union `f6595ebf66e88ec42c37b5c1a3c014f5e52cb32d`, before any later root corrections. The fixture was newly authored source; validation of the earlier bound-call artifact was not reused as proof for this edited project. No compiler, fixture execution, native interaction, Gitea mutation or root tracked edit was performed during preparation. Standalone rustfmt only parsed/formatted `preflight.rs`.
|
||||
|
||||
## Contents and expected geometry
|
||||
|
||||
The coordinates below are **source-derived world-coordinate expectations**, not measured screen pixels. At the current Scene layout, L1 is x=160 and L2 is x=400. Pan, Fit and zoom transform these coordinates. Marker capsules are 140×28, centered on L2. Activation bars use the reviewed 12-unit width/6-unit nesting offset; these are current implementation checks, not new permanent specification dimensions.
|
||||
|
||||
| Scenario / owner alias | Ordered events | Expected result |
|
||||
| --- | --- | --- |
|
||||
| **OA 1 Nested lifetime — Latin** / `bound_1000` | Create1005, C1=1040, C2=1030, R2=1060, R1=1050, Delete1070 | Rows148,240,332,424,516,608. L2 alive148–608. Outer C1 rectangle x394,y240,w12,h276; inner C2 x400,y332,w12,h92. Calls end and replies start on their corresponding left activation edges. Create ends x330,y148 at capsule edge; Delete ends x400,y608 at cross. No unanswered cue. |
|
||||
| **SA 2 Nested lifetime — Unicode** / `bound_2000` | Create2005, C1=2040, C2=2030, R2=2060, R1=2050, Delete2070 | Same rows and activation geometry as OA. Four Call/Reply messages retain the exact synchronous interface-operation allocation `bound_220`, caller port202, provider port203 and carried values. |
|
||||
| **OA 3 Self lifecycle and call** / `bound_3000` | Action3010, self-Create3020, self-Call3040, self-Reply3050, self-Delete3070 | Action row148, box bottom193. Self-Create marker row259, send235, label207; it clears the action. Self-Call send351, receive375; bar begins375. Self-Reply send443, receive467; bar ends443. Self-Delete send527, marker receive551. Execution x394,y375,w12,h68. Self-Call points `(400,351),(466,351),(466,375),(406,375)`; self-Reply `(406,443),(466,443),(466,467),(400,467)`. Create elbow is x512 and ends on capsule right edge470; Delete elbow512 returns to lane400. |
|
||||
| **OA 4 Death in one ALT operand** / `bound_4000` | Call4040; ALT4080: left4081 contains Delete4070, right4082 is empty | Preserve parent pre-frame activation, a left piece ending at Delete with Terminated metadata, and a separate 26-unit open right piece. No definite post-frame activation. The death path, empty open sibling and uncertain parent retain distinct cues. Source-derived rows: Call148, frame240, Delete385; left scope starts343, right525; right open piece525–551. |
|
||||
| **SA 5 Death and incomplete reply** / `bound_5000` | Call5040, Delete5070, incomplete Reply5050 | Call row148 to death240. One terminated execution and unanswered cue. Reply row332 is a repair card: sender is intentionally absent, receiver5001 and reply_to5040 remain. It must not become a detached Reply arrow or fabricate an answered execution. |
|
||||
| **SA 6 Unresolved lifetime, visible cue** / `bound_6000` | ALT6080: left6081 Create6005, right6082 Call6040 | Exclusive operands share conservative entry state. Create marker is visible in left; right lifetime is unresolved. The right Call remains visible and lane-anchored, with an unanswered cue even though there is no activation rectangle. Source-derived Create row293, Call475; cue around y494. |
|
||||
|
||||
The first two cases intentionally retain C2's numerically lower UUID despite C1 appearing first in semantic `steps`, exercising order independence. C1 input is420.0 kPa, R1 return418.0; C2 input380.0, R2 return378.0. OA calls use the actual Interaction/Operation-item contract; SA calls use the concrete BoundaryExchange, required/provided interfaces and synchronous operation allocation copied from the earlier bound fixture. Lifecycle Create/Delete messages and the self/incomplete cases intentionally have no exchange/operation binding; they are draft-capable, explicitly identified lifeline events with expected completeness warnings.
|
||||
|
||||
Long-name witnesses are in both the actual lifeline/capsule name and represented activity/system detail. OA uses wide Latin `W` glyphs; SA uses long CJK text and an emoji ZWJ sequence; the self case includes combining accents. Full names should remain in Properties/source while painted text stays inside its padded header/capsule clip.
|
||||
|
||||
## Admission and round-trip expectations
|
||||
|
||||
At source preparation, the fixture was checked against the actual constructors/tests and core rules. The stronger executed checks are recorded above:
|
||||
|
||||
- Bound contracts and original Call/Reply values derive from `.local/native-qa/bound-nested-fixture-r1-20260912/bound-nested-calls.arcadia`; that earlier artifact's validation does **not** validate this edited project.
|
||||
- Model shape and admitted lifetime cases follow `scenario_lifecycle/render_tests.rs` and `union_tests.rs` at f659. The source notation uses the same Exchange, Action, Fragment and Branch variants as their actual core constructors.
|
||||
- Core `validation.rs:1766–1791` rejects explicit receiver use before Create or after Delete. These fixtures contain no such same-path use. The self scenario's preceding Action uses L1, not the created L2. In SA5, the later Reply's dead sender endpoint is absent. In SA6, Create and Call occupy distinct exclusive ALT operands; `possibly_before` treats them as mutually exclusive.
|
||||
- Each reply names its guaranteed earlier call and reverses the known endpoints; missing endpoints remain missing. No recreated-after-death or fully bound late-reply invalid model is included.
|
||||
- Expect **zero Errors**, with completeness warnings from deliberately unbound messages, unfinished calls and draft endpoint/analysis fields. Do not hide warnings or report this as a complete system design.
|
||||
- Require actual source-project admission, exact original bundle equality (comments/Unicode/explicit IDs), complete Project equality through canonical format/parse, and canonical formatting stability. Compare all fields, not just scenario steps.
|
||||
|
||||
`preflight.rs` is the standalone actual-core check now compiled and executed successfully as recorded above. It reads only the source, performs those checks, verifies all six root step orders and the eight preserved pressure values, and resolves all four SA messages to the exact Call/allocation/ports. It prints diagnostics and a PASS line only after every assertion succeeds; it writes no files. A future rerun must preserve a new receipt label and retain exact dependency provenance.
|
||||
|
||||
## Native acceptance checklist
|
||||
|
||||
Use the named scenarios in Behavior. Check normal-scale and Fit appearance; compare selected and unselected bars and each exposed shoulder, including the three label-backplate bands above nested C2/R2/R1. Exact message/arrow points must still select their own occurrence. Birth capsules and death crosses must select their Create/Delete IDs at pan/zoom. Confirm the long header/capsule labels are clipped without text leaking outside or disappearing after pan, and self-event captions clear the preceding Action. In Properties, inspect pressure values/correlations and the intentionally missing SA5 sender.
|
||||
|
||||
For ALT cases, do not interpret vertically stacked operands as consecutive execution. Check each operand and the uncertain continuation independently. Save/reopen a writable acceptance copy and compare the complete Project and original comments/Unicode. This fixture does not establish free positioning, min-scale shoulder usability, global palette improvement, platform completion, or release acceptance; those retain their separate gates.
|
||||
|
||||
Source identity before root execution:
|
||||
|
||||
- `lifecycle-native.arcadia`: SHA-256 `998A2FD3E2474E72FC013F4DA422E49BAD61E118DE62ECCFBD71BF06B863CE7F`.
|
||||
- `preflight.rs`: SHA-256 `BF2EB9B908AE36198D15D47AE79D56E4BB181F506598CC4E76A76175041F633E`.
|
||||
@@ -0,0 +1,49 @@
|
||||
alias id kind name
|
||||
bound_1000 21c0fe00-0000-4000-8000-0000000003e8 oa_scenario OA 1 Nested lifetime — Latin
|
||||
bound_1001 21c0fe00-0000-4000-8000-0000000003e9 oa_lifeline L1 Console
|
||||
bound_1002 21c0fe00-0000-4000-8000-0000000003ea oa_lifeline L2 WWWWWWWWWWWWWWWWWW Inspector
|
||||
bound_1005 21c0fe00-0000-4000-8000-0000000003ed oa_occurrence Create inspector
|
||||
bound_1030 21c0fe00-0000-4000-8000-000000000406 oa_occurrence C2 380 kPa
|
||||
bound_1040 21c0fe00-0000-4000-8000-000000000410 oa_occurrence C1 420 kPa
|
||||
bound_1050 21c0fe00-0000-4000-8000-00000000041a oa_occurrence R1 418 kPa
|
||||
bound_1060 21c0fe00-0000-4000-8000-000000000424 oa_occurrence R2 378 kPa
|
||||
bound_1070 21c0fe00-0000-4000-8000-00000000042e oa_occurrence Delete inspector
|
||||
bound_2000 21c0fe00-0000-4000-8000-0000000007d0 sa_scenario SA 2 Nested lifetime — Unicode
|
||||
bound_2001 21c0fe00-0000-4000-8000-0000000007d1 sa_lifeline L1 Console
|
||||
bound_2002 21c0fe00-0000-4000-8000-0000000007d2 sa_lifeline L2 界界界界界界界界界界界界 戻り値 👩🔧
|
||||
bound_2005 21c0fe00-0000-4000-8000-0000000007d5 sa_occurrence Create inspector
|
||||
bound_2030 21c0fe00-0000-4000-8000-0000000007ee sa_occurrence C2 380 kPa
|
||||
bound_2040 21c0fe00-0000-4000-8000-0000000007f8 sa_occurrence C1 420 kPa
|
||||
bound_2050 21c0fe00-0000-4000-8000-000000000802 sa_occurrence R1 418 kPa
|
||||
bound_2060 21c0fe00-0000-4000-8000-00000000080c sa_occurrence R2 378 kPa
|
||||
bound_2070 21c0fe00-0000-4000-8000-000000000816 sa_occurrence Delete inspector
|
||||
bound_3000 21c0fe00-0000-4000-8000-000000000bb8 oa_scenario OA 3 Self lifecycle and call
|
||||
bound_3001 21c0fe00-0000-4000-8000-000000000bb9 oa_lifeline L1 Creator
|
||||
bound_3002 21c0fe00-0000-4000-8000-000000000bba oa_lifeline L2 自己検査 é é é 👩🔧 確認担当
|
||||
bound_3010 21c0fe00-0000-4000-8000-000000000bc2 oa_occurrence Prepare creation
|
||||
bound_3020 21c0fe00-0000-4000-8000-000000000bcc oa_occurrence Self create
|
||||
bound_3040 21c0fe00-0000-4000-8000-000000000be0 oa_occurrence Self call
|
||||
bound_3050 21c0fe00-0000-4000-8000-000000000bea oa_occurrence Self reply
|
||||
bound_3070 21c0fe00-0000-4000-8000-000000000bfe oa_occurrence Self delete
|
||||
bound_4000 21c0fe00-0000-4000-8000-000000000fa0 oa_scenario OA 4 Death in one ALT operand
|
||||
bound_4001 21c0fe00-0000-4000-8000-000000000fa1 oa_lifeline L1 Requester
|
||||
bound_4002 21c0fe00-0000-4000-8000-000000000fa2 oa_lifeline L2 Conditional inspector
|
||||
bound_4040 21c0fe00-0000-4000-8000-000000000fc8 oa_occurrence Unanswered call
|
||||
bound_4070 21c0fe00-0000-4000-8000-000000000fe6 oa_occurrence Delete without reply
|
||||
bound_4080 21c0fe00-0000-4000-8000-000000000ff0 oa_occurrence Delete or keep alive
|
||||
bound_4081 21c0fe00-0000-4000-8000-000000000ff1 oa_occurrence Delete path
|
||||
bound_4082 21c0fe00-0000-4000-8000-000000000ff2 oa_occurrence Open path
|
||||
bound_5000 21c0fe00-0000-4000-8000-000000001388 sa_scenario SA 5 Death and incomplete reply
|
||||
bound_5001 21c0fe00-0000-4000-8000-000000001389 sa_lifeline L1 Requester
|
||||
bound_5002 21c0fe00-0000-4000-8000-00000000138a sa_lifeline L2 Terminated service
|
||||
bound_5040 21c0fe00-0000-4000-8000-0000000013b0 sa_occurrence Unanswered call
|
||||
bound_5050 21c0fe00-0000-4000-8000-0000000013ba sa_occurrence Incomplete reply — no sender
|
||||
bound_5070 21c0fe00-0000-4000-8000-0000000013ce sa_occurrence Delete service
|
||||
bound_6000 21c0fe00-0000-4000-8000-000000001770 sa_scenario SA 6 Unresolved lifetime, visible cue
|
||||
bound_6001 21c0fe00-0000-4000-8000-000000001771 sa_lifeline L1 Requester
|
||||
bound_6002 21c0fe00-0000-4000-8000-000000001772 sa_lifeline L2 Unresolved service
|
||||
bound_6005 21c0fe00-0000-4000-8000-000000001775 sa_occurrence Create service
|
||||
bound_6040 21c0fe00-0000-4000-8000-000000001798 sa_occurrence Call with unresolved lifetime
|
||||
bound_6080 21c0fe00-0000-4000-8000-0000000017c0 sa_occurrence Birth is path dependent
|
||||
bound_6081 21c0fe00-0000-4000-8000-0000000017c1 sa_occurrence Create path
|
||||
bound_6082 21c0fe00-0000-4000-8000-0000000017c2 sa_occurrence Call path
|
||||
|
@@ -0,0 +1,809 @@
|
||||
// Source-only fixture: validation and native acceptance have NOT been executed.
|
||||
// Preserve this comment and Unicode Ω, 戻り値, é and 👩🔧 during save/reopen.
|
||||
arcadia 7;
|
||||
project lifecycle_native "Nested lifecycle union acceptance" id "21c0fe00-0000-4000-8000-000000000001" {
|
||||
description "Six compact scenarios for typed activations, birth/death, long labels and admitted incomplete paths. Fixture preparation is source review only; run preflight before native acceptance.";
|
||||
|
||||
oa_activity bound_100 "Review pressure demand" id "21c0fe00-0000-4000-8000-000000000064" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity bound_101 "WWWWWWWWWWWWWWWWWW pressure inspection activity" id "21c0fe00-0000-4000-8000-000000000065" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_exchange_item bound_110 "Check pressure" id "21c0fe00-0000-4000-8000-00000000006e" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Operation;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
oa_data_field bound_111 "requested_pressure" id "21c0fe00-0000-4000-8000-00000000006f" {
|
||||
default none;
|
||||
description "";
|
||||
direction In;
|
||||
maximum 1;
|
||||
minimum 1;
|
||||
parent @bound_110;
|
||||
storage Value;
|
||||
type_ref Real;
|
||||
unit "kPa";
|
||||
}
|
||||
|
||||
oa_data_field bound_112 "measured_pressure" id "21c0fe00-0000-4000-8000-000000000070" {
|
||||
default none;
|
||||
description "";
|
||||
direction Return;
|
||||
maximum 1;
|
||||
minimum 1;
|
||||
parent @bound_110;
|
||||
storage Value;
|
||||
type_ref Real;
|
||||
unit "kPa";
|
||||
}
|
||||
|
||||
interaction bound_120 "Pressure check" id "21c0fe00-0000-4000-8000-000000000078" {
|
||||
description "";
|
||||
items [@bound_110];
|
||||
source @bound_100;
|
||||
target @bound_101;
|
||||
}
|
||||
|
||||
sa_actor bound_200 "Operator console" id "21c0fe00-0000-4000-8000-0000000000c8" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_system bound_201 "界界界界界界界界界界界界 圧力確認サービス 👩🔧" id "21c0fe00-0000-4000-8000-0000000000c9" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_port bound_202 "Client socket" id "21c0fe00-0000-4000-8000-0000000000ca" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @bound_200;
|
||||
}
|
||||
|
||||
sa_port bound_203 "Service socket" id "21c0fe00-0000-4000-8000-0000000000cb" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @bound_201;
|
||||
}
|
||||
|
||||
sa_exchange_item bound_210 "Check pressure" id "21c0fe00-0000-4000-8000-0000000000d2" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Operation;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
sa_data_field bound_211 "requested_pressure" id "21c0fe00-0000-4000-8000-0000000000d3" {
|
||||
default none;
|
||||
description "";
|
||||
direction In;
|
||||
maximum 1;
|
||||
minimum 1;
|
||||
parent @bound_210;
|
||||
storage Value;
|
||||
type_ref Real;
|
||||
unit "kPa";
|
||||
}
|
||||
|
||||
sa_data_field bound_212 "measured_pressure" id "21c0fe00-0000-4000-8000-0000000000d4" {
|
||||
default none;
|
||||
description "";
|
||||
direction Return;
|
||||
maximum 1;
|
||||
minimum 1;
|
||||
parent @bound_210;
|
||||
storage Value;
|
||||
type_ref Real;
|
||||
unit "kPa";
|
||||
}
|
||||
|
||||
sa_interface bound_213 "Pressure check API" id "21c0fe00-0000-4000-8000-0000000000d5" {
|
||||
description "";
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
interface_item_allocation bound_220 "Synchronous pressure check" id "21c0fe00-0000-4000-8000-0000000000dc" {
|
||||
acquisition Unspecified;
|
||||
description "";
|
||||
order 0;
|
||||
source @bound_213;
|
||||
target @bound_210;
|
||||
transmission Synchronous;
|
||||
}
|
||||
|
||||
interface_requirement bound_221 "Console requires check" id "21c0fe00-0000-4000-8000-0000000000dd" {
|
||||
description "";
|
||||
source @bound_202;
|
||||
target @bound_213;
|
||||
}
|
||||
|
||||
interface_provision bound_222 "Service provides check" id "21c0fe00-0000-4000-8000-0000000000de" {
|
||||
description "";
|
||||
source @bound_203;
|
||||
target @bound_213;
|
||||
}
|
||||
|
||||
boundary_exchange bound_223 "Pressure channel" id "21c0fe00-0000-4000-8000-0000000000df" {
|
||||
description "";
|
||||
items [@bound_210];
|
||||
oriented false;
|
||||
source @bound_202;
|
||||
target @bound_203;
|
||||
}
|
||||
|
||||
oa_scenario bound_1000 "OA 1 Nested lifetime — Latin" id "21c0fe00-0000-4000-8000-0000000003e8" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "Each reply retains its own requested and measured values";
|
||||
precondition "Two pressure checks are reviewed before the outer reply";
|
||||
steps [@bound_1005, @bound_1040, @bound_1030, @bound_1060, @bound_1050, @bound_1070];
|
||||
viewpoint OperationalActivity;
|
||||
}
|
||||
|
||||
oa_lifeline bound_1001 "L1 Console" id "21c0fe00-0000-4000-8000-0000000003e9" {
|
||||
description "";
|
||||
parent @bound_1000;
|
||||
represented @bound_100;
|
||||
}
|
||||
|
||||
oa_lifeline bound_1002 "L2 WWWWWWWWWWWWWWWWWW Inspector" id "21c0fe00-0000-4000-8000-0000000003ea" {
|
||||
description "";
|
||||
parent @bound_1000;
|
||||
represented @bound_101;
|
||||
}
|
||||
|
||||
oa_occurrence bound_1005 "Create inspector" id "21c0fe00-0000-4000-8000-0000000003ed" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Create;
|
||||
receiver @bound_1002;
|
||||
reply_to none;
|
||||
sender @bound_1001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_1000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_1030 "C2 380 kPa" id "21c0fe00-0000-4000-8000-000000000406" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @bound_120;
|
||||
message_kind Call;
|
||||
receiver @bound_1002;
|
||||
reply_to none;
|
||||
sender @bound_1001;
|
||||
values [{
|
||||
expression "380.0";
|
||||
field @bound_111;
|
||||
path [];
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_1000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_1040 "C1 420 kPa" id "21c0fe00-0000-4000-8000-000000000410" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @bound_120;
|
||||
message_kind Call;
|
||||
receiver @bound_1002;
|
||||
reply_to none;
|
||||
sender @bound_1001;
|
||||
values [{
|
||||
expression "420.0";
|
||||
field @bound_111;
|
||||
path [];
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_1000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_1050 "R1 418 kPa" id "21c0fe00-0000-4000-8000-00000000041a" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @bound_120;
|
||||
message_kind Reply;
|
||||
receiver @bound_1001;
|
||||
reply_to @bound_1040;
|
||||
sender @bound_1002;
|
||||
values [{
|
||||
expression "418.0";
|
||||
field @bound_112;
|
||||
path [];
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_1000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_1060 "R2 378 kPa" id "21c0fe00-0000-4000-8000-000000000424" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @bound_120;
|
||||
message_kind Reply;
|
||||
receiver @bound_1001;
|
||||
reply_to @bound_1030;
|
||||
sender @bound_1002;
|
||||
values [{
|
||||
expression "378.0";
|
||||
field @bound_112;
|
||||
path [];
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_1000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_1070 "Delete inspector" id "21c0fe00-0000-4000-8000-00000000042e" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Delete;
|
||||
receiver @bound_1002;
|
||||
reply_to none;
|
||||
sender @bound_1001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_1000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_scenario bound_2000 "SA 2 Nested lifetime — Unicode" id "21c0fe00-0000-4000-8000-0000000007d0" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "Each reply retains its own requested and measured values";
|
||||
precondition "Two pressure checks are reviewed before the outer reply";
|
||||
steps [@bound_2005, @bound_2040, @bound_2030, @bound_2060, @bound_2050, @bound_2070];
|
||||
viewpoint BoundaryInterface;
|
||||
}
|
||||
|
||||
sa_lifeline bound_2001 "L1 Console" id "21c0fe00-0000-4000-8000-0000000007d1" {
|
||||
description "";
|
||||
parent @bound_2000;
|
||||
represented @bound_200;
|
||||
}
|
||||
|
||||
sa_lifeline bound_2002 "L2 界界界界界界界界界界界界 戻り値 👩🔧" id "21c0fe00-0000-4000-8000-0000000007d2" {
|
||||
description "";
|
||||
parent @bound_2000;
|
||||
represented @bound_201;
|
||||
}
|
||||
|
||||
sa_occurrence bound_2005 "Create inspector" id "21c0fe00-0000-4000-8000-0000000007d5" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Create;
|
||||
receiver @bound_2002;
|
||||
reply_to none;
|
||||
sender @bound_2001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_2000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_2030 "C2 380 kPa" id "21c0fe00-0000-4000-8000-0000000007ee" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @bound_223;
|
||||
message_kind Call;
|
||||
operation {
|
||||
allocation @bound_220;
|
||||
};
|
||||
receiver @bound_2002;
|
||||
reply_to none;
|
||||
sender @bound_2001;
|
||||
values [{
|
||||
expression "380.0";
|
||||
field @bound_211;
|
||||
path [];
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_2000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_2040 "C1 420 kPa" id "21c0fe00-0000-4000-8000-0000000007f8" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @bound_223;
|
||||
message_kind Call;
|
||||
operation {
|
||||
allocation @bound_220;
|
||||
};
|
||||
receiver @bound_2002;
|
||||
reply_to none;
|
||||
sender @bound_2001;
|
||||
values [{
|
||||
expression "420.0";
|
||||
field @bound_211;
|
||||
path [];
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_2000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_2050 "R1 418 kPa" id "21c0fe00-0000-4000-8000-000000000802" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @bound_223;
|
||||
message_kind Reply;
|
||||
receiver @bound_2001;
|
||||
reply_to @bound_2040;
|
||||
sender @bound_2002;
|
||||
values [{
|
||||
expression "418.0";
|
||||
field @bound_212;
|
||||
path [];
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_2000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_2060 "R2 378 kPa" id "21c0fe00-0000-4000-8000-00000000080c" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @bound_223;
|
||||
message_kind Reply;
|
||||
receiver @bound_2001;
|
||||
reply_to @bound_2030;
|
||||
sender @bound_2002;
|
||||
values [{
|
||||
expression "378.0";
|
||||
field @bound_212;
|
||||
path [];
|
||||
}];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_2000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_2070 "Delete inspector" id "21c0fe00-0000-4000-8000-000000000816" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Delete;
|
||||
receiver @bound_2002;
|
||||
reply_to none;
|
||||
sender @bound_2001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_2000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_scenario bound_3000 "OA 3 Self lifecycle and call" id "21c0fe00-0000-4000-8000-000000000bb8" {
|
||||
context none;
|
||||
description "Native lifecycle union acceptance fixture; completeness warnings are intentional.";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@bound_3010, @bound_3020, @bound_3040, @bound_3050, @bound_3070];
|
||||
viewpoint OperationalActivity;
|
||||
}
|
||||
|
||||
oa_lifeline bound_3001 "L1 Creator" id "21c0fe00-0000-4000-8000-000000000bb9" {
|
||||
description "";
|
||||
parent @bound_3000;
|
||||
represented @bound_100;
|
||||
}
|
||||
|
||||
oa_lifeline bound_3002 "L2 自己検査 é é é 👩🔧 確認担当" id "21c0fe00-0000-4000-8000-000000000bba" {
|
||||
description "";
|
||||
parent @bound_3000;
|
||||
represented @bound_101;
|
||||
}
|
||||
|
||||
oa_occurrence bound_3010 "Prepare creation" id "21c0fe00-0000-4000-8000-000000000bc2" {
|
||||
body {
|
||||
Action {
|
||||
action @bound_100;
|
||||
lifeline @bound_3001;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_3000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_3020 "Self create" id "21c0fe00-0000-4000-8000-000000000bcc" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Create;
|
||||
receiver @bound_3002;
|
||||
reply_to none;
|
||||
sender @bound_3002;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_3000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_3040 "Self call" id "21c0fe00-0000-4000-8000-000000000be0" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Call;
|
||||
receiver @bound_3002;
|
||||
reply_to none;
|
||||
sender @bound_3002;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_3000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_3050 "Self reply" id "21c0fe00-0000-4000-8000-000000000bea" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Reply;
|
||||
receiver @bound_3002;
|
||||
reply_to @bound_3040;
|
||||
sender @bound_3002;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_3000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_3070 "Self delete" id "21c0fe00-0000-4000-8000-000000000bfe" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Delete;
|
||||
receiver @bound_3002;
|
||||
reply_to none;
|
||||
sender @bound_3002;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_3000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_scenario bound_4000 "OA 4 Death in one ALT operand" id "21c0fe00-0000-4000-8000-000000000fa0" {
|
||||
context none;
|
||||
description "Native lifecycle union acceptance fixture; completeness warnings are intentional.";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@bound_4040, @bound_4080];
|
||||
viewpoint OperationalActivity;
|
||||
}
|
||||
|
||||
oa_lifeline bound_4001 "L1 Requester" id "21c0fe00-0000-4000-8000-000000000fa1" {
|
||||
description "";
|
||||
parent @bound_4000;
|
||||
represented @bound_100;
|
||||
}
|
||||
|
||||
oa_lifeline bound_4002 "L2 Conditional inspector" id "21c0fe00-0000-4000-8000-000000000fa2" {
|
||||
description "";
|
||||
parent @bound_4000;
|
||||
represented @bound_101;
|
||||
}
|
||||
|
||||
oa_occurrence bound_4040 "Unanswered call" id "21c0fe00-0000-4000-8000-000000000fc8" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Call;
|
||||
receiver @bound_4002;
|
||||
reply_to none;
|
||||
sender @bound_4001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_4000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_4070 "Delete without reply" id "21c0fe00-0000-4000-8000-000000000fe6" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Delete;
|
||||
receiver @bound_4002;
|
||||
reply_to none;
|
||||
sender @bound_4001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_4081;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_4080 "Delete or keep alive" id "21c0fe00-0000-4000-8000-000000000ff0" {
|
||||
body {
|
||||
Fragment {
|
||||
operator Alternative;
|
||||
branches [@bound_4081, @bound_4082];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_4000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_4081 "Delete path" id "21c0fe00-0000-4000-8000-000000000ff1" {
|
||||
body {
|
||||
Branch {
|
||||
guard "shutdown";
|
||||
occurrences [@bound_4070];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_4080;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence bound_4082 "Open path" id "21c0fe00-0000-4000-8000-000000000ff2" {
|
||||
body {
|
||||
Branch {
|
||||
guard "continue";
|
||||
occurrences [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_4080;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_scenario bound_5000 "SA 5 Death and incomplete reply" id "21c0fe00-0000-4000-8000-000000001388" {
|
||||
context none;
|
||||
description "Native lifecycle union acceptance fixture; completeness warnings are intentional.";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@bound_5040, @bound_5070, @bound_5050];
|
||||
viewpoint BoundaryInterface;
|
||||
}
|
||||
|
||||
sa_lifeline bound_5001 "L1 Requester" id "21c0fe00-0000-4000-8000-000000001389" {
|
||||
description "";
|
||||
parent @bound_5000;
|
||||
represented @bound_200;
|
||||
}
|
||||
|
||||
sa_lifeline bound_5002 "L2 Terminated service" id "21c0fe00-0000-4000-8000-00000000138a" {
|
||||
description "";
|
||||
parent @bound_5000;
|
||||
represented @bound_201;
|
||||
}
|
||||
|
||||
sa_occurrence bound_5040 "Unanswered call" id "21c0fe00-0000-4000-8000-0000000013b0" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Call;
|
||||
receiver @bound_5002;
|
||||
reply_to none;
|
||||
sender @bound_5001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_5000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_5050 "Incomplete reply — no sender" id "21c0fe00-0000-4000-8000-0000000013ba" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Reply;
|
||||
receiver @bound_5001;
|
||||
reply_to @bound_5040;
|
||||
sender none;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_5000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_5070 "Delete service" id "21c0fe00-0000-4000-8000-0000000013ce" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Delete;
|
||||
receiver @bound_5002;
|
||||
reply_to none;
|
||||
sender @bound_5001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_5000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_scenario bound_6000 "SA 6 Unresolved lifetime, visible cue" id "21c0fe00-0000-4000-8000-000000001770" {
|
||||
context none;
|
||||
description "Native lifecycle union acceptance fixture; completeness warnings are intentional.";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@bound_6080];
|
||||
viewpoint BoundaryInterface;
|
||||
}
|
||||
|
||||
sa_lifeline bound_6001 "L1 Requester" id "21c0fe00-0000-4000-8000-000000001771" {
|
||||
description "";
|
||||
parent @bound_6000;
|
||||
represented @bound_200;
|
||||
}
|
||||
|
||||
sa_lifeline bound_6002 "L2 Unresolved service" id "21c0fe00-0000-4000-8000-000000001772" {
|
||||
description "";
|
||||
parent @bound_6000;
|
||||
represented @bound_201;
|
||||
}
|
||||
|
||||
sa_occurrence bound_6005 "Create service" id "21c0fe00-0000-4000-8000-000000001775" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Create;
|
||||
receiver @bound_6002;
|
||||
reply_to none;
|
||||
sender @bound_6001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_6081;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_6040 "Call with unresolved lifetime" id "21c0fe00-0000-4000-8000-000000001798" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange none;
|
||||
message_kind Call;
|
||||
receiver @bound_6002;
|
||||
reply_to none;
|
||||
sender @bound_6001;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_6082;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_6080 "Birth is path dependent" id "21c0fe00-0000-4000-8000-0000000017c0" {
|
||||
body {
|
||||
Fragment {
|
||||
operator Alternative;
|
||||
branches [@bound_6081, @bound_6082];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_6000;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_6081 "Create path" id "21c0fe00-0000-4000-8000-0000000017c1" {
|
||||
body {
|
||||
Branch {
|
||||
guard "start new";
|
||||
occurrences [@bound_6005];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_6080;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence bound_6082 "Call path" id "21c0fe00-0000-4000-8000-0000000017c2" {
|
||||
body {
|
||||
Branch {
|
||||
guard "use existing";
|
||||
occurrences [@bound_6040];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @bound_6080;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
//! Source-only preflight; parent compiles/runs this against its exact oa-core.
|
||||
//! Usage: preflight.exe PATH_TO_lifecycle-native.arcadia
|
||||
use oa_core::{operations, source_project, validation, *};
|
||||
use std::collections::BTreeMap;
|
||||
|
||||
fn id(n: u128) -> Id {
|
||||
Id::from_u128(0x21c0fe00000040008000000000000000 + n)
|
||||
}
|
||||
fn main() {
|
||||
let args: Vec<_> = std::env::args().collect();
|
||||
assert_eq!(args.len(), 2, "Pass the prepared source file");
|
||||
let source = std::fs::read_to_string(&args[1]).unwrap();
|
||||
let p = language::parse(&source).expect("Prepared source must parse through actual core");
|
||||
let issues = validation::validate(&p);
|
||||
let errors: Vec<_> = issues
|
||||
.iter()
|
||||
.filter(|issue| issue.severity == validation::Severity::Error)
|
||||
.collect();
|
||||
assert!(errors.is_empty(), "Fixture admission failed: {errors:#?}");
|
||||
validate_candidate(&p).expect("Ordinary command admission must accept the whole Project");
|
||||
let bundle = source_project::SourceBundle {
|
||||
entry: "lifecycle-native.arcadia".into(),
|
||||
files: BTreeMap::from([("lifecycle-native.arcadia".into(), source.clone())]),
|
||||
};
|
||||
let compiled = source_project::compile_bundle(&bundle, Default::default())
|
||||
.expect("Use the actual source-project admission path");
|
||||
assert_eq!(
|
||||
compiled.bundle, bundle,
|
||||
"Keep comments, Unicode and all explicit IDs byte-for-byte"
|
||||
);
|
||||
assert_eq!(compiled.decoded.project, p);
|
||||
let canonical = language::format(&p);
|
||||
let reparsed = language::parse(&canonical).unwrap();
|
||||
assert_eq!(
|
||||
reparsed, p,
|
||||
"Compare the entire Project, not selected elements"
|
||||
);
|
||||
assert_eq!(language::format(&reparsed), canonical);
|
||||
assert_eq!(p.elements.len(), 61);
|
||||
assert_eq!(p.relations.len(), 5);
|
||||
for (owner, steps) in [
|
||||
(1000, vec![1005, 1040, 1030, 1060, 1050, 1070]),
|
||||
(2000, vec![2005, 2040, 2030, 2060, 2050, 2070]),
|
||||
(3000, vec![3010, 3020, 3040, 3050, 3070]),
|
||||
(4000, vec![4040, 4080]),
|
||||
(5000, vec![5040, 5070, 5050]),
|
||||
(6000, vec![6080]),
|
||||
] {
|
||||
assert_eq!(
|
||||
p.elements[&id(owner)].steps().unwrap(),
|
||||
&steps.into_iter().map(id).collect::<Vec<_>>()
|
||||
);
|
||||
}
|
||||
for base in [1000, 2000] {
|
||||
for (offset, call, expression) in [
|
||||
(40, 40, "420.0"),
|
||||
(30, 30, "380.0"),
|
||||
(60, 30, "378.0"),
|
||||
(50, 40, "418.0"),
|
||||
] {
|
||||
let occurrence = id(base + offset);
|
||||
let Some(SharedBody::Occurrence {
|
||||
body: OccurrenceBody::Exchange { values, .. },
|
||||
..
|
||||
}) = p.elements[&occurrence].shared()
|
||||
else {
|
||||
panic!("Expected an exchange occurrence")
|
||||
};
|
||||
assert_eq!(values.len(), 1);
|
||||
assert_eq!(values[0].expression, expression);
|
||||
if base == 2000 {
|
||||
let operations::OperationResolution::Selected(proof) =
|
||||
operations::resolve(&p, occurrence).unwrap()
|
||||
else {
|
||||
panic!("SA pressure operation must remain actually bound")
|
||||
};
|
||||
assert_eq!(proof.invocation, id(base + call));
|
||||
assert_eq!(proof.allocation, id(220));
|
||||
assert_eq!(proof.caller_port, id(202));
|
||||
assert_eq!(proof.provider_port, id(203));
|
||||
} else {
|
||||
assert_eq!(
|
||||
operations::resolve(&p, occurrence).unwrap(),
|
||||
operations::OperationResolution::Ordinary
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
let Some(SharedBody::Occurrence {
|
||||
body:
|
||||
OccurrenceBody::Exchange {
|
||||
sender,
|
||||
receiver,
|
||||
reply_to,
|
||||
..
|
||||
},
|
||||
..
|
||||
}) = p.elements[&id(5050)].shared()
|
||||
else {
|
||||
panic!("Expected incomplete reply")
|
||||
};
|
||||
assert_eq!(
|
||||
(*sender, *receiver, *reply_to),
|
||||
(None, Some(id(5001)), Some(id(5040)))
|
||||
);
|
||||
for issue in &issues {
|
||||
println!(
|
||||
"{:?} {} {:?}: {}",
|
||||
issue.severity, issue.code, issue.element, issue.message
|
||||
);
|
||||
}
|
||||
println!(
|
||||
"PASS: six scenarios,61 elements,5 relations,zero Errors,{} warnings; exact source bundle and whole-Project roundtrip; bound OA values and SA operation proofs preserved",
|
||||
issues.len()
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,477 @@
|
||||
arcadia 7;
|
||||
project source7_native_contract "Reusable procedures and operation identity" id "52060906-0000-4000-8000-000000000001" {
|
||||
include "rationale.arcadia";
|
||||
description "";
|
||||
|
||||
sa_function sa_work_a "A · Begin assessment" id "071edc32-5c27-5c1d-91ff-337c80b462d5" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_occurrence oa_x "X · Check authorization" id "08ff2083-dac1-5f4b-ad6a-7cc81d7be29d" {
|
||||
body {
|
||||
Action {
|
||||
action @oa_work_x;
|
||||
lifeline none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @oa_caller;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence sa_a "A · Begin assessment" id "14d1133a-697d-5b54-b624-eed0fb04a354" {
|
||||
body {
|
||||
Action {
|
||||
action @sa_work_a;
|
||||
lifeline none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @sa_procedure;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence sa_c "C · Finish assessment" id "1a215aed-f0b1-521d-b52f-0c1cfbbf1c36" {
|
||||
body {
|
||||
Action {
|
||||
action @sa_work_c;
|
||||
lifeline none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @sa_procedure;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence oa_r2 "Second assessment" id "1e27be58-3e3e-5869-ad30-e94a28ea2a2e" {
|
||||
body {
|
||||
SequenceReference {
|
||||
sequence @oa_procedure;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @oa_caller;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_process oa_caller "Caller with three assessments" id "2100ac23-79ee-54e1-b3cf-69f3d4f3b30a" {
|
||||
description "";
|
||||
parent none;
|
||||
steps [@oa_x, @oa_r1, @oa_r2, @oa_r3];
|
||||
}
|
||||
|
||||
oa_activity oa_work_a "A · Begin assessment" id "25fdfe13-c45d-5822-830a-192ff13f660d" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_process oa_nested_definition "Nested assessment wrapper" id "273d8df8-83c8-5d75-99d1-59a7c9fdb705" {
|
||||
description "";
|
||||
parent none;
|
||||
steps [@oa_inner];
|
||||
}
|
||||
|
||||
sa_function sa_work_b "B · Review assessment" id "3360ccb1-68ac-51cd-8d9a-8893000c80ef" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity oa_work_c "C · Finish assessment" id "47335738-0876-5f90-b25e-1636c7448e93" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_occurrence sa_r3 "Nested assessment" id "4a65dad8-e2a1-51dc-87a0-02ea4ab69384" {
|
||||
body {
|
||||
SequenceReference {
|
||||
sequence @sa_nested_definition;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @sa_caller;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_actor operation_probe_10 "Operator console" id "52060906-0000-4000-8000-00000000000a" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_system operation_probe_11 "Valve service" id "52060906-0000-4000-8000-00000000000b" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_port operation_probe_12 "Service socket" id "52060906-0000-4000-8000-00000000000c" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @operation_probe_10;
|
||||
}
|
||||
|
||||
sa_port operation_probe_13 "Service socket" id "52060906-0000-4000-8000-00000000000d" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @operation_probe_11;
|
||||
}
|
||||
|
||||
sa_exchange_item operation_probe_20 "Reset" id "52060906-0000-4000-8000-000000000014" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Operation;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
sa_exchange_item operation_probe_21 "ReadStatus" id "52060906-0000-4000-8000-000000000015" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Operation;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
sa_interface operation_probe_22 "Valve commands" id "52060906-0000-4000-8000-000000000016" {
|
||||
description "";
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
sa_scenario operation_probe_40 "Reset then read status" id "52060906-0000-4000-8000-000000000028" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@operation_probe_43, @operation_probe_44, @reset_reply];
|
||||
viewpoint BoundaryInterface;
|
||||
}
|
||||
|
||||
sa_lifeline operation_probe_41 "Service participant" id "52060906-0000-4000-8000-000000000029" {
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
represented @operation_probe_10;
|
||||
}
|
||||
|
||||
sa_lifeline operation_probe_42 "Service participant" id "52060906-0000-4000-8000-00000000002a" {
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
represented @operation_probe_11;
|
||||
}
|
||||
|
||||
sa_occurrence operation_probe_43 "Call Reset" id "52060906-0000-4000-8000-00000000002b" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @operation_probe_34;
|
||||
message_kind Call;
|
||||
receiver @operation_probe_42;
|
||||
reply_to none;
|
||||
sender @operation_probe_41;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence operation_probe_44 "Call ReadStatus" id "52060906-0000-4000-8000-00000000002c" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @operation_probe_34;
|
||||
message_kind Call;
|
||||
receiver @operation_probe_42;
|
||||
reply_to none;
|
||||
sender @operation_probe_41;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence sa_x "X · Check authorization" id "53ad2109-ba9d-5859-b258-64cdaab5c4a8" {
|
||||
body {
|
||||
Action {
|
||||
action @sa_work_x;
|
||||
lifeline none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @sa_caller;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence sa_r1 "First assessment" id "62cfdab1-a18b-5b06-8ee7-cd0b320e4024" {
|
||||
body {
|
||||
SequenceReference {
|
||||
sequence @sa_procedure;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @sa_caller;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_function sa_work_c "C · Finish assessment" id "6575bce8-4185-519b-a004-d96650da63dc" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_functional_chain sa_nested_definition "Nested assessment wrapper" id "7932ab3a-6b60-5059-a3a0-fca3a2f9a197" {
|
||||
description "";
|
||||
parent none;
|
||||
steps [@sa_inner];
|
||||
}
|
||||
|
||||
sa_function sa_work_x "X · Check authorization" id "8c3d9b89-aa12-5218-9de9-12b8b5d4e4b3" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_occurrence sa_r2 "Second assessment" id "999b5e15-903f-5ca1-bc11-e51fadf80762" {
|
||||
body {
|
||||
SequenceReference {
|
||||
sequence @sa_procedure;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @sa_caller;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_activity oa_work_b "B · Review assessment" id "a39639dc-0ece-5b71-981d-c9523fed4914" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_occurrence reset_reply "Correlated reset reply" id "aa8b674f-012f-583f-8dc7-a76407d1f8a7" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @operation_probe_34;
|
||||
message_kind Reply;
|
||||
receiver @operation_probe_41;
|
||||
reply_to @operation_probe_43;
|
||||
sender @operation_probe_42;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_process oa_procedure "Reusable assessment A to C" id "af139b27-7e42-5729-9e49-53b2ac62c9e7" {
|
||||
description "";
|
||||
parent none;
|
||||
steps [@oa_a, @oa_b, @oa_c];
|
||||
}
|
||||
|
||||
sa_occurrence sa_b "B · Review assessment" id "bf9ba00e-2aaa-5f04-9ba1-2c242d07b938" {
|
||||
body {
|
||||
Action {
|
||||
action @sa_work_b;
|
||||
lifeline none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @sa_procedure;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_functional_chain sa_procedure "Reusable assessment A to C" id "c1d4eda2-fac7-5621-a7ac-25f985911bf5" {
|
||||
description "";
|
||||
parent none;
|
||||
steps [@sa_a, @sa_b, @sa_c];
|
||||
}
|
||||
|
||||
oa_occurrence oa_c "C · Finish assessment" id "c40c2011-4497-52f0-9e0e-10323b3150a8" {
|
||||
body {
|
||||
Action {
|
||||
action @oa_work_c;
|
||||
lifeline none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @oa_procedure;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence oa_r1 "First assessment" id "d48951ad-c6db-5eae-923a-edccab97155e" {
|
||||
body {
|
||||
SequenceReference {
|
||||
sequence @oa_procedure;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @oa_caller;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_functional_chain sa_caller "Caller with three assessments" id "d4911fd0-52ed-535c-9f87-170e8f5731d2" {
|
||||
description "";
|
||||
parent none;
|
||||
steps [@sa_x, @sa_r1, @sa_r2, @sa_r3];
|
||||
}
|
||||
|
||||
oa_occurrence oa_a "A · Begin assessment" id "dc17769b-7e1e-5f15-99bb-0caf98bcb006" {
|
||||
body {
|
||||
Action {
|
||||
action @oa_work_a;
|
||||
lifeline none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @oa_procedure;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence oa_inner "Inner assessment" id "e16033cd-3184-56ef-b462-5559ad212c84" {
|
||||
body {
|
||||
SequenceReference {
|
||||
sequence @oa_procedure;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @oa_nested_definition;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence sa_inner "Inner assessment" id "e21febd2-30ec-5e9d-aa4c-3c54c95c2c9f" {
|
||||
body {
|
||||
SequenceReference {
|
||||
sequence @sa_procedure;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @sa_nested_definition;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_activity oa_work_x "X · Check authorization" id "e78d841a-a37e-5106-8356-b1e3ce6d2501" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_occurrence oa_b "B · Review assessment" id "ef2a06af-6013-5f0b-a56d-db705f0685ce" {
|
||||
body {
|
||||
Action {
|
||||
action @oa_work_b;
|
||||
lifeline none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @oa_procedure;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence oa_r3 "Nested assessment" id "fc986c5c-eae7-5363-bcd5-b832d565a89a" {
|
||||
body {
|
||||
SequenceReference {
|
||||
sequence @oa_nested_definition;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @oa_caller;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sequence_link oa_a_then_b "a then b" id "0fc11ada-23a6-5f39-9891-e7f363a1edfb" {
|
||||
description "";
|
||||
guard "";
|
||||
source @oa_a;
|
||||
target @oa_b;
|
||||
}
|
||||
|
||||
sequence_link oa_b_then_c "b then c" id "169f558e-a466-5fcc-b0d7-53e481952714" {
|
||||
description "";
|
||||
guard "";
|
||||
source @oa_b;
|
||||
target @oa_c;
|
||||
}
|
||||
|
||||
interface_item_allocation operation_probe_30 "InterfaceItemAllocation 30" id "52060906-0000-4000-8000-00000000001e" {
|
||||
acquisition Unspecified;
|
||||
description "";
|
||||
order 0;
|
||||
source @operation_probe_22;
|
||||
target @operation_probe_20;
|
||||
transmission Synchronous;
|
||||
}
|
||||
|
||||
interface_item_allocation operation_probe_31 "InterfaceItemAllocation 31" id "52060906-0000-4000-8000-00000000001f" {
|
||||
acquisition Unspecified;
|
||||
description "";
|
||||
order 0;
|
||||
source @operation_probe_22;
|
||||
target @operation_probe_21;
|
||||
transmission Synchronous;
|
||||
}
|
||||
|
||||
interface_requirement operation_probe_32 "InterfaceRequirement 32" id "52060906-0000-4000-8000-000000000020" {
|
||||
description "";
|
||||
source @operation_probe_12;
|
||||
target @operation_probe_22;
|
||||
}
|
||||
|
||||
interface_provision operation_probe_33 "InterfaceProvision 33" id "52060906-0000-4000-8000-000000000021" {
|
||||
description "";
|
||||
source @operation_probe_13;
|
||||
target @operation_probe_22;
|
||||
}
|
||||
|
||||
boundary_exchange operation_probe_34 "BoundaryExchange 34" id "52060906-0000-4000-8000-000000000022" {
|
||||
description "";
|
||||
items [@operation_probe_20, @operation_probe_21];
|
||||
oriented false;
|
||||
source @operation_probe_12;
|
||||
target @operation_probe_13;
|
||||
}
|
||||
|
||||
sequence_link sa_a_then_b "a then b" id "661511e2-3604-5faf-9deb-f741925615bb" {
|
||||
description "";
|
||||
guard "";
|
||||
source @sa_a;
|
||||
target @sa_b;
|
||||
}
|
||||
|
||||
sequence_link sa_b_then_c "b then c" id "aedc3e72-fd4b-5dcd-b9c1-ced7aee3e0d1" {
|
||||
description "";
|
||||
guard "";
|
||||
source @sa_b;
|
||||
target @sa_c;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
// Native oracle: retain this authored 雨 note and CRLF.
|
||||
@@ -0,0 +1,477 @@
|
||||
arcadia 7;
|
||||
project source7_native_contract "Reusable procedures and operation identity" id "52060906-0000-4000-8000-000000000001" {
|
||||
include "rationale.arcadia";
|
||||
description "";
|
||||
|
||||
sa_function sa_work_a "A · Begin assessment" id "071edc32-5c27-5c1d-91ff-337c80b462d5" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_occurrence oa_x "X · Check authorization" id "08ff2083-dac1-5f4b-ad6a-7cc81d7be29d" {
|
||||
body {
|
||||
Action {
|
||||
action @oa_work_x;
|
||||
lifeline none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @oa_caller;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence sa_a "A · Begin assessment" id "14d1133a-697d-5b54-b624-eed0fb04a354" {
|
||||
body {
|
||||
Action {
|
||||
action @sa_work_a;
|
||||
lifeline none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @sa_procedure;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence sa_c "C · Finish assessment" id "1a215aed-f0b1-521d-b52f-0c1cfbbf1c36" {
|
||||
body {
|
||||
Action {
|
||||
action @sa_work_c;
|
||||
lifeline none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @sa_procedure;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence oa_r2 "Second assessment" id "1e27be58-3e3e-5869-ad30-e94a28ea2a2e" {
|
||||
body {
|
||||
SequenceReference {
|
||||
sequence @oa_procedure;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @oa_caller;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_process oa_caller "Caller with three assessments" id "2100ac23-79ee-54e1-b3cf-69f3d4f3b30a" {
|
||||
description "";
|
||||
parent none;
|
||||
steps [@oa_x, @oa_r1, @oa_r2, @oa_r3];
|
||||
}
|
||||
|
||||
oa_activity oa_work_a "A · Begin assessment" id "25fdfe13-c45d-5822-830a-192ff13f660d" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_process oa_nested_definition "Nested assessment wrapper" id "273d8df8-83c8-5d75-99d1-59a7c9fdb705" {
|
||||
description "";
|
||||
parent none;
|
||||
steps [@oa_inner];
|
||||
}
|
||||
|
||||
sa_function sa_work_b "B · Review assessment" id "3360ccb1-68ac-51cd-8d9a-8893000c80ef" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity oa_work_c "C · Finish assessment" id "47335738-0876-5f90-b25e-1636c7448e93" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_occurrence sa_r3 "Nested assessment" id "4a65dad8-e2a1-51dc-87a0-02ea4ab69384" {
|
||||
body {
|
||||
SequenceReference {
|
||||
sequence @sa_nested_definition;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @sa_caller;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_actor operation_probe_10 "Operator console" id "52060906-0000-4000-8000-00000000000a" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_system operation_probe_11 "Valve service" id "52060906-0000-4000-8000-00000000000b" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_port operation_probe_12 "Service socket" id "52060906-0000-4000-8000-00000000000c" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @operation_probe_10;
|
||||
}
|
||||
|
||||
sa_port operation_probe_13 "Service socket" id "52060906-0000-4000-8000-00000000000d" {
|
||||
contract {
|
||||
Component {
|
||||
kind Standard;
|
||||
orientation Unset;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
legacy none;
|
||||
parent @operation_probe_11;
|
||||
}
|
||||
|
||||
sa_exchange_item operation_probe_20 "Reset" id "52060906-0000-4000-8000-000000000014" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Operation;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
sa_exchange_item operation_probe_21 "ReadStatus" id "52060906-0000-4000-8000-000000000015" {
|
||||
description "";
|
||||
kind Information;
|
||||
mechanism Operation;
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
sa_interface operation_probe_22 "Valve commands" id "52060906-0000-4000-8000-000000000016" {
|
||||
description "";
|
||||
parent none;
|
||||
supertype none;
|
||||
}
|
||||
|
||||
sa_scenario operation_probe_40 "Reset then read status" id "52060906-0000-4000-8000-000000000028" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [@operation_probe_43, @operation_probe_44, @reset_reply];
|
||||
viewpoint BoundaryInterface;
|
||||
}
|
||||
|
||||
sa_lifeline operation_probe_41 "Service participant" id "52060906-0000-4000-8000-000000000029" {
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
represented @operation_probe_10;
|
||||
}
|
||||
|
||||
sa_lifeline operation_probe_42 "Service participant" id "52060906-0000-4000-8000-00000000002a" {
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
represented @operation_probe_11;
|
||||
}
|
||||
|
||||
sa_occurrence operation_probe_43 "Call Reset" id "52060906-0000-4000-8000-00000000002b" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @operation_probe_34;
|
||||
message_kind Call;
|
||||
receiver @operation_probe_42;
|
||||
reply_to none;
|
||||
sender @operation_probe_41;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence operation_probe_44 "Call ReadStatus" id "52060906-0000-4000-8000-00000000002c" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @operation_probe_34;
|
||||
message_kind Call;
|
||||
receiver @operation_probe_42;
|
||||
reply_to none;
|
||||
sender @operation_probe_41;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence sa_x "X · Check authorization" id "53ad2109-ba9d-5859-b258-64cdaab5c4a8" {
|
||||
body {
|
||||
Action {
|
||||
action @sa_work_x;
|
||||
lifeline none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @sa_caller;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence sa_r1 "First assessment" id "62cfdab1-a18b-5b06-8ee7-cd0b320e4024" {
|
||||
body {
|
||||
SequenceReference {
|
||||
sequence @sa_procedure;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @sa_caller;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_function sa_work_c "C · Finish assessment" id "6575bce8-4185-519b-a004-d96650da63dc" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_functional_chain sa_nested_definition "Nested assessment wrapper" id "7932ab3a-6b60-5059-a3a0-fca3a2f9a197" {
|
||||
description "";
|
||||
parent none;
|
||||
steps [@sa_inner];
|
||||
}
|
||||
|
||||
sa_function sa_work_x "X · Check authorization" id "8c3d9b89-aa12-5218-9de9-12b8b5d4e4b3" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_occurrence sa_r2 "Second assessment" id "999b5e15-903f-5ca1-bc11-e51fadf80762" {
|
||||
body {
|
||||
SequenceReference {
|
||||
sequence @sa_procedure;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @sa_caller;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_activity oa_work_b "B · Review assessment" id "a39639dc-0ece-5b71-981d-c9523fed4914" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_occurrence reset_reply "Correlated reset reply" id "aa8b674f-012f-583f-8dc7-a76407d1f8a7" {
|
||||
body {
|
||||
Exchange {
|
||||
exchange @operation_probe_34;
|
||||
message_kind Reply;
|
||||
receiver @operation_probe_41;
|
||||
reply_to @operation_probe_43;
|
||||
sender @operation_probe_42;
|
||||
values [];
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @operation_probe_40;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_process oa_procedure "Reusable assessment A to C" id "af139b27-7e42-5729-9e49-53b2ac62c9e7" {
|
||||
description "";
|
||||
parent none;
|
||||
steps [@oa_a, @oa_b, @oa_c];
|
||||
}
|
||||
|
||||
sa_occurrence sa_b "B · Review assessment" id "bf9ba00e-2aaa-5f04-9ba1-2c242d07b938" {
|
||||
body {
|
||||
Action {
|
||||
action @sa_work_b;
|
||||
lifeline none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @sa_procedure;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_functional_chain sa_procedure "Reusable assessment A to C" id "c1d4eda2-fac7-5621-a7ac-25f985911bf5" {
|
||||
description "";
|
||||
parent none;
|
||||
steps [@sa_a, @sa_b, @sa_c];
|
||||
}
|
||||
|
||||
oa_occurrence oa_c "C · Finish assessment" id "c40c2011-4497-52f0-9e0e-10323b3150a8" {
|
||||
body {
|
||||
Action {
|
||||
action @oa_work_c;
|
||||
lifeline none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @oa_procedure;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence oa_r1 "First assessment" id "d48951ad-c6db-5eae-923a-edccab97155e" {
|
||||
body {
|
||||
SequenceReference {
|
||||
sequence @oa_procedure;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @oa_caller;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_functional_chain sa_caller "Caller with three assessments" id "d4911fd0-52ed-535c-9f87-170e8f5731d2" {
|
||||
description "";
|
||||
parent none;
|
||||
steps [@sa_x, @sa_r1, @sa_r2, @sa_r3];
|
||||
}
|
||||
|
||||
oa_occurrence oa_a "A · Begin assessment" id "dc17769b-7e1e-5f15-99bb-0caf98bcb006" {
|
||||
body {
|
||||
Action {
|
||||
action @oa_work_a;
|
||||
lifeline none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @oa_procedure;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence oa_inner "Inner assessment" id "e16033cd-3184-56ef-b462-5559ad212c84" {
|
||||
body {
|
||||
SequenceReference {
|
||||
sequence @oa_procedure;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @oa_nested_definition;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sa_occurrence sa_inner "Inner assessment" id "e21febd2-30ec-5e9d-aa4c-3c54c95c2c9f" {
|
||||
body {
|
||||
SequenceReference {
|
||||
sequence @sa_procedure;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @sa_nested_definition;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_activity oa_work_x "X · Check authorization" id "e78d841a-a37e-5106-8356-b1e3ce6d2501" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_occurrence oa_b "B · Review assessment" id "ef2a06af-6013-5f0b-a56d-db705f0685ce" {
|
||||
body {
|
||||
Action {
|
||||
action @oa_work_b;
|
||||
lifeline none;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @oa_procedure;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
oa_occurrence oa_r3 "Nested assessment" id "fc986c5c-eae7-5363-bcd5-b832d565a89a" {
|
||||
body {
|
||||
SequenceReference {
|
||||
sequence @oa_nested_definition;
|
||||
};
|
||||
};
|
||||
description "";
|
||||
parent @oa_caller;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
}
|
||||
|
||||
sequence_link oa_a_then_b "a then b" id "0fc11ada-23a6-5f39-9891-e7f363a1edfb" {
|
||||
description "";
|
||||
guard "";
|
||||
source @oa_a;
|
||||
target @oa_b;
|
||||
}
|
||||
|
||||
sequence_link oa_b_then_c "b then c" id "169f558e-a466-5fcc-b0d7-53e481952714" {
|
||||
description "";
|
||||
guard "";
|
||||
source @oa_b;
|
||||
target @oa_c;
|
||||
}
|
||||
|
||||
interface_item_allocation operation_probe_30 "InterfaceItemAllocation 30" id "52060906-0000-4000-8000-00000000001e" {
|
||||
acquisition Unspecified;
|
||||
description "";
|
||||
order 0;
|
||||
source @operation_probe_22;
|
||||
target @operation_probe_20;
|
||||
transmission Synchronous;
|
||||
}
|
||||
|
||||
interface_item_allocation operation_probe_31 "InterfaceItemAllocation 31" id "52060906-0000-4000-8000-00000000001f" {
|
||||
acquisition Unspecified;
|
||||
description "";
|
||||
order 0;
|
||||
source @operation_probe_22;
|
||||
target @operation_probe_21;
|
||||
transmission Synchronous;
|
||||
}
|
||||
|
||||
interface_requirement operation_probe_32 "InterfaceRequirement 32" id "52060906-0000-4000-8000-000000000020" {
|
||||
description "";
|
||||
source @operation_probe_12;
|
||||
target @operation_probe_22;
|
||||
}
|
||||
|
||||
interface_provision operation_probe_33 "InterfaceProvision 33" id "52060906-0000-4000-8000-000000000021" {
|
||||
description "";
|
||||
source @operation_probe_13;
|
||||
target @operation_probe_22;
|
||||
}
|
||||
|
||||
boundary_exchange operation_probe_34 "BoundaryExchange 34" id "52060906-0000-4000-8000-000000000022" {
|
||||
description "";
|
||||
items [@operation_probe_20, @operation_probe_21];
|
||||
oriented false;
|
||||
source @operation_probe_12;
|
||||
target @operation_probe_13;
|
||||
}
|
||||
|
||||
sequence_link sa_a_then_b "a then b" id "661511e2-3604-5faf-9deb-f741925615bb" {
|
||||
description "";
|
||||
guard "";
|
||||
source @sa_a;
|
||||
target @sa_b;
|
||||
}
|
||||
|
||||
sequence_link sa_b_then_c "b then c" id "aedc3e72-fd4b-5dcd-b9c1-ced7aee3e0d1" {
|
||||
description "";
|
||||
guard "";
|
||||
source @sa_b;
|
||||
target @sa_c;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
// Native oracle: retain this authored 雨 note and CRLF.
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:35:43.429487+00:00",
|
||||
"pid": 8736,
|
||||
"exit": 0
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
// Preserve deletion evidence 雨.
|
||||
// Exact bytes matter.
|
||||
@@ -0,0 +1,224 @@
|
||||
arcadia 7;
|
||||
project delete_oracle "Delete oracle" id "de1e7e00-0000-4000-8000-000000000001" {
|
||||
include "notes.arcadia";
|
||||
description "";
|
||||
|
||||
oa_activity delete_10 "Target work" id "de1e7e00-0000-4000-8000-00000000000a" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_activity delete_11 "Untouched work" id "de1e7e00-0000-4000-8000-00000000000b" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_entity delete_12 "OA Dispatch team" id "de1e7e00-0000-4000-8000-00000000000c" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
oa_scenario delete_20 "Reference scenario" id "de1e7e00-0000-4000-8000-000000000014" {
|
||||
context none;
|
||||
description "";
|
||||
parent none;
|
||||
postcondition "";
|
||||
precondition "";
|
||||
steps [];
|
||||
viewpoint OperationalActivity;
|
||||
}
|
||||
|
||||
oa_lifeline delete_21 "Target reference" id "de1e7e00-0000-4000-8000-000000000015" {
|
||||
description "";
|
||||
parent @delete_20;
|
||||
represented @delete_10;
|
||||
}
|
||||
|
||||
sa_function delete_50 "SA Initialize controller" id "de1e7e00-0000-4000-8000-000000000032" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_state_machine delete_51 "SA Controller modes" id "de1e7e00-0000-4000-8000-000000000033" {
|
||||
description "";
|
||||
parent none;
|
||||
}
|
||||
|
||||
sa_region delete_52 "SA Main region" id "de1e7e00-0000-4000-8000-000000000034" {
|
||||
description "";
|
||||
parent @delete_51;
|
||||
}
|
||||
|
||||
sa_state delete_53 "SA Ready" id "de1e7e00-0000-4000-8000-000000000035" {
|
||||
description "";
|
||||
do_activity "";
|
||||
entry "";
|
||||
exit "";
|
||||
kind State;
|
||||
parent @delete_52;
|
||||
}
|
||||
|
||||
allocation delete_13 "OA performs target work" id "de1e7e00-0000-4000-8000-00000000000d" {
|
||||
description "";
|
||||
source @delete_12;
|
||||
target @delete_10;
|
||||
}
|
||||
|
||||
state_action delete_54 "SA Entry initialize" id "de1e7e00-0000-4000-8000-000000000036" {
|
||||
description "";
|
||||
phase Entry;
|
||||
source @delete_53;
|
||||
target @delete_50;
|
||||
}
|
||||
|
||||
diagram view_30 "Work view 30" id "de1e7e00-0000-4000-8000-00000000001e" {
|
||||
description "";
|
||||
layer Oa;
|
||||
projection Allocation;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node node_31 id "de1e7e00-0000-4000-8000-00000000001f" {
|
||||
collapsed false;
|
||||
diagram @view_30;
|
||||
element @delete_10;
|
||||
position {
|
||||
x 80.0;
|
||||
y 80.0;
|
||||
};
|
||||
size {
|
||||
height 90.0;
|
||||
width 180.0;
|
||||
};
|
||||
}
|
||||
|
||||
node node_32 id "de1e7e00-0000-4000-8000-000000000020" {
|
||||
collapsed false;
|
||||
diagram @view_30;
|
||||
element @delete_12;
|
||||
position {
|
||||
x 40.0;
|
||||
y 40.0;
|
||||
};
|
||||
size {
|
||||
height 230.0;
|
||||
width 380.0;
|
||||
};
|
||||
}
|
||||
|
||||
diagram view_40 "Work view 40" id "de1e7e00-0000-4000-8000-000000000028" {
|
||||
description "";
|
||||
layer Oa;
|
||||
projection Allocation;
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node node_41 id "de1e7e00-0000-4000-8000-000000000029" {
|
||||
collapsed false;
|
||||
diagram @view_40;
|
||||
element @delete_10;
|
||||
position {
|
||||
x 80.0;
|
||||
y 80.0;
|
||||
};
|
||||
size {
|
||||
height 90.0;
|
||||
width 180.0;
|
||||
};
|
||||
}
|
||||
|
||||
node node_42 id "de1e7e00-0000-4000-8000-00000000002a" {
|
||||
collapsed false;
|
||||
diagram @view_40;
|
||||
element @delete_12;
|
||||
position {
|
||||
x 40.0;
|
||||
y 40.0;
|
||||
};
|
||||
size {
|
||||
height 230.0;
|
||||
width 380.0;
|
||||
};
|
||||
}
|
||||
|
||||
diagram sa_modes_view "SA Controller modes view" id "de1e7e00-0000-4000-8000-00000000003c" {
|
||||
description "";
|
||||
layer Sa;
|
||||
projection {
|
||||
StateMachine {
|
||||
machine @delete_51;
|
||||
};
|
||||
};
|
||||
routes [];
|
||||
view_options {
|
||||
coverage "All";
|
||||
exchange_labels "Name";
|
||||
hidden_edges [];
|
||||
participant_categories "All";
|
||||
relation_kinds "All";
|
||||
work_categories "All";
|
||||
work_contexts "All";
|
||||
};
|
||||
}
|
||||
|
||||
node node_61 id "de1e7e00-0000-4000-8000-00000000003d" {
|
||||
collapsed false;
|
||||
diagram @sa_modes_view;
|
||||
element @delete_51;
|
||||
position {
|
||||
x 40.0;
|
||||
y 40.0;
|
||||
};
|
||||
size {
|
||||
height 460.0;
|
||||
width 620.0;
|
||||
};
|
||||
}
|
||||
|
||||
node node_62 id "de1e7e00-0000-4000-8000-00000000003e" {
|
||||
collapsed false;
|
||||
diagram @sa_modes_view;
|
||||
element @delete_52;
|
||||
position {
|
||||
x 60.0;
|
||||
y 95.0;
|
||||
};
|
||||
size {
|
||||
height 380.0;
|
||||
width 580.0;
|
||||
};
|
||||
}
|
||||
|
||||
node node_63 id "de1e7e00-0000-4000-8000-00000000003f" {
|
||||
collapsed false;
|
||||
diagram @sa_modes_view;
|
||||
element @delete_53;
|
||||
position {
|
||||
x 100.0;
|
||||
y 155.0;
|
||||
};
|
||||
size {
|
||||
height 190.0;
|
||||
width 320.0;
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:05:04.973Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Untitled mission — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "e503f68c42bf49e61bf2fbfbd61ad4b668f1e8d14ad29d739df89be4d7e635bb",
|
||||
"note": "Native dd39 opened the prepared lifecycle-work source:61 objects5 links18 checks, all changes saved."
|
||||
}
|
||||
|
After Width: | Height: | Size: 107 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:05:26.654Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "db95638f0cc6689187f2a9734fa0265026492c84bb4beb1fe0d50e565882ca06",
|
||||
"note": "OA1 at100%: Create capsule, nested C1/C2 activation rectangles, Reply returns and Delete cross; pre-birth/post-death dotted guide; long labels clipped."
|
||||
}
|
||||
|
After Width: | Height: | Size: 128 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:05:43.734Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "70d9d25dff0409fee289db060f7a0bedc37329c21eb3a1b149904160d1152126",
|
||||
"note": "Click664,535 selects C1 bound_1040; continuous selected outer bar remains visible across C2/R2/R1 caption bands."
|
||||
}
|
||||
|
After Width: | Height: | Size: 139 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:05:58.016Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "ae7edb18eab70e8d91304512c73a28410bc0d36c202f111d4148f0774241f172",
|
||||
"note": "Exact nested receive point669,549 selects C2 bound_1030; outer C1 remains independently visible."
|
||||
}
|
||||
|
After Width: | Height: | Size: 138 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:06:11.954Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "faf92252b8494f5fd897a1f9f3a4bff8498a70b46b74cc198716421be2c3e7d4",
|
||||
"note": "Create capsule700,365 selects bound_1005; long label stays within rounded boundary."
|
||||
}
|
||||
|
After Width: | Height: | Size: 139 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:06:27.134Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "868ef6ac8fcd77e9161ec7acae72f45e974722fa847f86a033168af66f056f53",
|
||||
"note": "Death cross668,825 selects bound_1070; post-death guide remains dotted."
|
||||
}
|
||||
|
After Width: | Height: | Size: 138 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:06:42.149Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "aea218876bd07fbb411562fbb8a552569e2481ff4b89ead77cec44388de682d3",
|
||||
"note": "Native scenario picker uses dark selected row with light readable text and visible popup boundary."
|
||||
}
|
||||
|
After Width: | Height: | Size: 141 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:07:03.785Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "c2ccbb7b3a106e99d58de8822c914c28b8713d2fccec367b0e234b44fd94011c",
|
||||
"note": "OA3 at100%: self Create caption clears preceding Action; bar starts on Call receive and stops on Reply send; self Delete returns to cross. Unicode header and capsule remain clipped."
|
||||
}
|
||||
|
After Width: | Height: | Size: 136 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:07:21.715Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "b7c6e5396926eb4fa33fc5050c3fe5ce01ff49faf2d145280648f45155f9ab19",
|
||||
"note": "Self activation664,620 selects bound_3040; bar is bounded by receive592 and reply-send660."
|
||||
}
|
||||
|
After Width: | Height: | Size: 135 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:07:36.636Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "a3c8c67c026644101c7bf0a355592aeff611c97f406bff32f5e519c428c1be83",
|
||||
"note": "Exact self Reply send675,660 selects bound_3050; dashed return remains distinct from activation."
|
||||
}
|
||||
|
After Width: | Height: | Size: 135 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:08:08.315Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "0a8f4527fab4c03c8fa117d35b277540cd3fe47b7af663071f24178f33c3f223",
|
||||
"note": "OA4: parent activation stops at ALT; shutdown piece ends at death, empty continue operand has separate open piece; no resumed solid activation after frame."
|
||||
}
|
||||
|
After Width: | Height: | Size: 141 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:08:26.866Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "7eddcf61090f79d39c0f0fea2c5bb692b7d2663a59308c59a0cf0302974d224a",
|
||||
"note": "Fit96% reveals lifetime legend and separate path cues; no solid parent revival below ALT."
|
||||
}
|
||||
|
After Width: | Height: | Size: 142 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:08:41.723Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "19d375e4a32601018d924581ad511d5e9bc21b0e9b81f8916d50a70210626925",
|
||||
"note": "Open sibling651,733 atFit96% selects originating bound_4040 and highlights separate pre-frame, terminated and open pieces without a continuous revival."
|
||||
}
|
||||
|
After Width: | Height: | Size: 140 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:09:12.021Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "7f09eee86f275e775d49973adcde521883cb821b89b5404c0875e9ce330cc38e",
|
||||
"note": "SA2 at100%: same lifecycle/nested geometry with long CJK header/capsule clipped and four pressure Call/Reply labels."
|
||||
}
|
||||
|
After Width: | Height: | Size: 130 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:09:25.288Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "90881612112287f7ecde082852fe7714e807d813583ea278b317cf811a7e46ca",
|
||||
"note": "SA outer shoulder664,627 selects C1 bound_2040 across R2 caption band; continuous outline remains visible."
|
||||
}
|
||||
|
After Width: | Height: | Size: 140 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:09:59.985Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "ac4abf4ed480fc3776f9be56df99abb432a85def8f5b380ea54020e50004913f",
|
||||
"note": "SA C1 Inspector shows specific interface operation Pressure check API / Check pressure, synchronous allocation bound_220, and Pressure channel bound_223. Scroll over Description stayed within editor; scrolling gutter reached fields."
|
||||
}
|
||||
|
After Width: | Height: | Size: 147 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:19:30.496Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "53662192d516eb891b31eaa95570eb801597697431d9baa6c8a2ff653ae38d81",
|
||||
"note": "Native compatible reference chooser: selected Pressure channel row has visible teal bottom rule below secondary text; focus outline visible. No mutation."
|
||||
}
|
||||
|
After Width: | Height: | Size: 142 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:20:03.832Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "ee700f6bb3a683c3b295c46725e4cb2119a8b5e9d660c932f0f94b4ae60fdd4c",
|
||||
"note": "SA5: activation ends at Delete; dotted guide continues; incomplete reply is a repair card with no fabricated arrow."
|
||||
}
|
||||
|
After Width: | Height: | Size: 135 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:20:21.506Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "d6b24c9e83f4e029382dd2019056fa736904fa0377b6a95fef0395e690412f3b",
|
||||
"note": "Repair card selects intended bound_5050; teal outline remains outside text."
|
||||
}
|
||||
|
After Width: | Height: | Size: 135 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:20:30.923Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "53e052fbe90fbabe70e59a65f3df09255a898c9f69bb3ff82b565a764fa68160",
|
||||
"note": "SA5 reply preserves receiver bound_5001 and correlation bound_5040 with Sender Not assigned, matching repair card."
|
||||
}
|
||||
|
After Width: | Height: | Size: 135 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:20:53.739Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "f7b229ac61f00e225ff4849183db5b05b4c29bb1a706a8ff81b85f8a1669d0d1",
|
||||
"note": "SA6: exclusive Create branch has local solid lifetime; use-existing call has ? path uncertainty and unanswered ellipsis without fabricated activation rectangle."
|
||||
}
|
||||
|
After Width: | Height: | Size: 142 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:21:17.493Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "125092a665597bf1dd53609a7a819d7ec8b1765ab3108de0119582c50b4e58a7",
|
||||
"note": "Exact receiver endpoint selects bound_6040 while lifetime remains unresolved; no activation rectangle. Right-click on the scenario arrow did not open a context menu."
|
||||
}
|
||||
|
After Width: | Height: | Size: 141 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:21:26.797Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "9b6d427f5c4953eec0998867607214420edbf5b344a298bc5ceb814fc45c75ab",
|
||||
"note": "Native model-tree context menu has distinct popup boundary and fully enclosed keyboard Properties target; lower-case descenders clear the outline. Disabled Review counterpart changes visibly muted."
|
||||
}
|
||||
|
After Width: | Height: | Size: 146 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:21:35.584Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "0b5919b8b2a24f36df2357fdc8dcad72742b69f27d4d8a0c55284047ff5b4193",
|
||||
"note": "Down moves complete outlined target from Properties to Open source without changing model selection."
|
||||
}
|
||||
|
After Width: | Height: | Size: 146 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:21:49.849Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "3437d1191f9d76d72a175eba6adb4915fae17bdb006cf79be8deec0c604dfdb3",
|
||||
"note": "Open source selects C1 bound_2040 declaration; text remains legible over selection. Declaration lies at bottom edge in current pre-navigation source, a known navigation ergonomics scope."
|
||||
}
|
||||
|
After Width: | Height: | Size: 110 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:22:39.629Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "4d69301a846a3f167b1391528f78ad9267a4e0d4f87b7658a23f814c5352b508",
|
||||
"note": "Control+Home then Control+Shift+End selects full source without edits. Multiline source glyphs remain readable over selection; syntax remains largely monochrome in this build."
|
||||
}
|
||||
|
After Width: | Height: | Size: 109 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:22:59.166Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "b329863266a660cf80f8f2f4997c518e21f7b0b701e1c489acaeabab71c6ee11",
|
||||
"note": "Save all reports All source files saved after native inspection and source selection. Independent exact whole-Project/SourceBundle comparison passes."
|
||||
}
|
||||
|
After Width: | Height: | Size: 107 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:23:40.648Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1442,
|
||||
"height": 932,
|
||||
"sha256": "1bd7437d2d226c89a2dc9d2befd825a32b58d045b0bc0bca4e3379082e6877d9",
|
||||
"note": "Native reopening succeeds with 61 objects, 5 links and 18 expected checks; all changes saved."
|
||||
}
|
||||
|
After Width: | Height: | Size: 107 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:24:59.640Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1102,
|
||||
"height": 732,
|
||||
"sha256": "81ca57906306b0417a27a6000059f5607e20f008c4210fa8edfebd3ad71d156a",
|
||||
"note": "Window minimum reached through native Size command: captured 1102x732 including chrome, client1100x700. At100% canvas clips the larger scene as expected; Fit remains reachable."
|
||||
}
|
||||
|
After Width: | Height: | Size: 108 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:25:28.772Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1102,
|
||||
"height": 732,
|
||||
"sha256": "2f8fc0cc4ad90b0f8c3f660846a0c95bb78f58f74ac2e1eae9e4cc2edee91c09",
|
||||
"note": "Fit60% shows complete scene including lifecycle legend. Click near R2 send endpoint selects bound_1060 under endpoint priority; this is not an outer-shoulder hit."
|
||||
}
|
||||
|
After Width: | Height: | Size: 102 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:25:52.726Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1102,
|
||||
"height": 732,
|
||||
"sha256": "25be232f3c08ee4f1c7a7032ed593f4ec9a9de4ccd2bf62eb7b3df14224de7f5",
|
||||
"note": "At Fit60%, x509/y445 selects C1 bound_1040 with continuous outer outline. x507/y445 had selected lifeline; exposed shoulder is only a few pixels wide in overview, an explicit interaction limitation."
|
||||
}
|
||||
|
After Width: | Height: | Size: 103 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:28:17.175Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Nested lifecycle union acceptance — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1575,
|
||||
"height": 930,
|
||||
"sha256": "c8abdfa6cb3cbeabd17e456f26d730ee4ea69e36e73dc792a57238cf93443683",
|
||||
"note": "Compact OA allocated-work view at authored150%: performer, header and child activity boundaries remain visible against near-white canvas."
|
||||
}
|
||||
|
After Width: | Height: | Size: 115 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:28:26.810Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Delete oracle — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1575,
|
||||
"height": 930,
|
||||
"sha256": "74ccc3c80a48d8332c672b748ebf31f54a22601ff8ebbf5b6b3c396d58ec1acf",
|
||||
"note": "Target work selection outlines child activity and corresponding tree row without obscuring content."
|
||||
}
|
||||
|
After Width: | Height: | Size: 122 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"utc": "2026-09-13T02:28:43.961Z",
|
||||
"window": {
|
||||
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\studio-dd39e1f\\arcadia-studio.exe",
|
||||
"id": 12256084,
|
||||
"title": "Delete oracle — Arcadia Studio"
|
||||
},
|
||||
"screenshotId": "screenshot-0",
|
||||
"width": 1575,
|
||||
"height": 930,
|
||||
"sha256": "32ba06808d82931bd9a5ecf98b8c2f123fa258ccba8efbc46bebcb28af686b5f",
|
||||
"note": "Name field Control+A selects Target work with legible text and focused border; no edits."
|
||||
}
|
||||
|
After Width: | Height: | Size: 121 KiB |