68 lines
3.9 KiB
Markdown
68 lines
3.9 KiB
Markdown
# Timed transition: actual saved bundle oracle
|
|
|
|
The actual two-file native save independently parsed, validated and reopened with
|
|
exactly the intended graph changes. The entry file alone was not treated as the
|
|
accepted model: the oracle read both `state-recovered-renamed.arcadia` and its
|
|
`sa/model.arcadia` include from `.local/native-qa`.
|
|
|
|
The staged production service was launched on an isolated loopback port with fresh
|
|
synthetic storage and a system-only PATH. Its SHA256 was
|
|
`BB775876741FE4A7B07CDE08940AEC8E23F545FDAFEC024FC4DC3BA6DD1AB9FC`.
|
|
Both pristine and saved bundles passed `/api/v1/projects/import-source-project`;
|
|
the returned native Projects were compared structurally, with object-key ordering
|
|
normalized and sequence ordering retained.
|
|
|
|
## Exact accepted delta
|
|
|
|
The expected entire Project was constructed from the pristine parsed Project by
|
|
only these changes, then compared for full equality to the saved parsed Project:
|
|
|
|
1. Add SA Event `49044cb7-5f91-408a-86fc-1cc012eb2972`, alias `after_30_s`, name
|
|
`After 30 s`, empty description, no parent, typed `Time { kind: After,
|
|
expression: "30 s" }`.
|
|
2. Rename existing StateTransition `f0060906-0000-4000-8000-000000000033` from
|
|
`Refresh status` to `Unfinished timed refresh`.
|
|
3. Append the new Event ID after the original Sample tick Event
|
|
`f0060906-0000-4000-8000-000000000013` in that transition's typed trigger list.
|
|
|
|
**Full Project equality passed.** The original trigger Event remains Time/After
|
|
`1 s`. The transition retains alias `refresh_status`, Internal kind, Ready→Ready
|
|
endpoints, empty free-text trigger, guard `pressure_valid`, typed effect
|
|
`f0060906-0000-4000-8000-000000000011` (Monitor pressure) and free-text effect
|
|
`Update status display`. All other elements, relations, IDs, source-independent
|
|
model metadata, state actions, containment, diagram placements, sizes, collapse
|
|
states, routes, traces and artifact links remain equal.
|
|
|
|
Counts are pristine 14→saved 15 elements, 10 relations, 1 diagram and 8 placements.
|
|
The saved graph has no structural errors. Its three existing
|
|
`work_without_behavior_context` warnings address the three work functions; typed
|
|
state actions do not constitute process/scenario evidence under the coverage policy.
|
|
|
|
GET source-project also matched the exact two submitted file contents and entry
|
|
name. After force-stopping and restarting only the oracle server, model, two-file
|
|
source bundle and ETag still matched. Before/after hashes of all original input
|
|
files were identical; the oracle did not rewrite native artifacts.
|
|
|
|
## Inputs and reproducibility
|
|
|
|
| Source file | SHA256 |
|
|
|---|---|
|
|
| `.local/native-fixtures/state-actions.arcadia` | `9CDE82608110E56AA9E14C9E33EB38976F53AED74AB013145D411D5743A0EC26` |
|
|
| `.local/native-qa/state-recovered-renamed.arcadia` | `AD8FD359CE7B0BE4F3AE0F55424EEB4EE032DEFB359F2F5AD89C00A79B62DADF` |
|
|
| `.local/native-qa/sa/model.arcadia` | `8FB649F8ABB93CF4C321F2D847A1A9F1A1551E0F713E938C46EF11E24DC58801` |
|
|
|
|
Tracked runner: `harness/fixtures/run-timed-bundle-oracle.ps1`. From the repository
|
|
root, using PowerShell7 and the actual saved artifacts:
|
|
|
|
```powershell
|
|
$env:PATH = "$env:SystemRoot\System32;$env:SystemRoot;$env:SystemRoot\System32\Wbem"
|
|
& harness/fixtures/run-timed-bundle-oracle.ps1 -ServerExe .local/native-qa/bin-20260906-corrected/arcadia-server.exe -PristineFile .local/native-fixtures/state-actions.arcadia -SavedEntry .local/native-qa/state-recovered-renamed.arcadia
|
|
```
|
|
|
|
Evidence: `.local/timed-bundle-oracle-20260906-162848/` contains exact bundle request
|
|
payloads, parsed models, accepted/reopened bundles, response status/ETags, validation,
|
|
input hashes and `result.json` with the before/after transition. The response pairs
|
|
are sufficient to repeat the graph comparison even if the native files later move.
|
|
All owned oracle processes were stopped. This is independent parser/persistence
|
|
proof of the native save, not an additional native interaction or Linux claim.
|