146 lines
8.8 KiB
Markdown
146 lines
8.8 KiB
Markdown
# Save diagnostics Windows development preview
|
||
|
||
This scoped preview delivers [issue 46](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/46)
|
||
on the released 715 foundation plus compact controls/contextual Help. Protected
|
||
Save As destination conflicts now explain that existing files are protected and
|
||
offer fresh-directory Save As or current-entry Save All recovery. Observed
|
||
external edits retain their external-change diagnosis. File protection, source
|
||
format, model/history semantics and APIs are unchanged.
|
||
[Contribution decisions, regressions and native review](save-as-diagnostics-20261001.md)
|
||
are authoritative for the bounded implementation.
|
||
|
||
## Inputs and artifact
|
||
|
||
Version `0.2.0-preview.save-diagnostics.20261001`, target
|
||
`x86_64-pc-windows-gnullvm`, dev/unoptimized with debug assertions. Desktop source
|
||
`0e83157e09d52e6152df91208e41693b62da2d46`; packaged documentation
|
||
`ef28f1784efe6717b0ca72c0eb3c97bc30ebfe47`. This source integrates the compact
|
||
Help contribution; it excludes the separately owned follow-up union.
|
||
The exact server artifact is reused from715; core/server/Cargo/vendor inputs
|
||
are unchanged. Neither binary was rebuilt during packaging.
|
||
|
||
| Artifact | SHA256 |
|
||
| --- | --- |
|
||
| Studio | `e9cce9355525ecdc59bfae12608b1e0272167acef5a86b25368ef547e08886ff` |
|
||
| Server | `6cebacc117e46fdab023c6402a5cebd6929fb55993ae8ff6b89cd1c6c1170237` |
|
||
| Selected libunwind | `f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4` |
|
||
| ZIP | `8b4e353e075f22350a07794ee47a02cf85725501223299cf367134aa1f5b63b7` |
|
||
|
||
ZIP: 34,191,561 bytes, 565 files. The [evidence packet](experiments/save-diagnostics-package-20261001/README.md) preserves exact provenance,
|
||
scripts/receipts, native captures, full source/model and HTTP records; its index
|
||
allows byte verification. [Confirmed publication](experiments/save-diagnostics-package-20261001/publication.md)
|
||
delivers release 9 from evidence checkpoint `e144e32e9984477a258759a9dcc75f6e499fc224`,
|
||
with all three assets downloaded and matched. The tag's original validation
|
||
checkpoint predates publication; these later receipts do not rewrite its history.
|
||
The [fresh independent final review](experiments/save-diagnostics-package-20261001/raw/independent-review.md)
|
||
finds no material blocker in this exact bounded artifact. Parent collection and
|
||
offline and Git index verification pass for 164 indexed evidence files and
|
||
637 source inputs. Publication/download verification is a separate completed gate
|
||
in the linked receipts.
|
||
The [independent packet closure review](experiments/save-diagnostics-package-20261001/packet-review.md)
|
||
also verifies every copied artifact against its original and passes the collected
|
||
verifier with staged-index/current-source checks.
|
||
|
||
The server's original published build receipts were recovered read-only from
|
||
immutable evidence commit `206f3b969482241e01e2dfc6be955caf31747b89`. The 462-member
|
||
archive passed safe-name/size/CRC/SHA checks before selecting 18 exact build/gate
|
||
records. Original compiler Rust 1.98.1 and LLVM-MinGW 20260908/runtime identity
|
||
remain in those receipts. The current Studio/package uses LLVM-MinGW 20260826
|
||
and the selected DLL above; fresh server tests exercise this exact pairing with
|
||
system-only PATH. The server is not represented as rebuilt with the current
|
||
Studio toolchain. The recovered records and immediate donor manifest support
|
||
explicit per-binary reuse.
|
||
|
||
## Verification and limits
|
||
|
||
The unchanged desktop source's 29 targeted save checks, formatting, strict
|
||
all-target Clippy, GUI build and fresh source/native independent review pass.
|
||
Earlier compact Help/full-suite evidence remains separately scoped; no new
|
||
full-suite final-commit claim is made. Packaging and extraction verify exact
|
||
stage/archive/extracted content for all 565 files, 564 checksum entries, 559 package
|
||
inputs, 268 dependency packages, 489 notices and 18 documentation links.
|
||
The broader source snapshot contains 637 Git-identified files; it is distinct
|
||
from the 559 selected package inputs and six generated bundle files.
|
||
Independent artifact precheck examines PE ordinary/delay imports, notices,
|
||
metadata equality, source hashes and archive safety. A first reviewer checker
|
||
incorrectly assumed every input has a local_path; that failure remains recorded,
|
||
and the corrected local-only input check passes.
|
||
|
||
Fresh actual extracted server testing passes 23 assertions from 11 HTTP exchanges:
|
||
readiness, exact packaged OpenAPI, complete Unicode/CRLF source import/read/edit,
|
||
revision/ETag, stale If-Match 412 with preserved model/source, acknowledged store
|
||
identity and exact persistence after owned forced restart. This is not graceful
|
||
shutdown, power-loss or remote deployment acceptance. The prior #39 Unicode
|
||
harness failure belongs to its original record. This fresh run copies the
|
||
corrected `server-smoke-unicode02/run.py` byte-for-byte (SHA256
|
||
`20344608a0623584a0e0ac66dc7f435a0de053d39b4254e92f1c1148aed8e8b9`),
|
||
rather than the failed `server-smoke/run.py`. Its captured fixture independently
|
||
confirms the U+2014 comment and CRLF text.
|
||
|
||
Two actual extracted Windows 11 desktop processes with system-only child PATH
|
||
open the offline guide/full example, Apply the declared Activity-name edit,
|
||
refuse protected same-folder/new-entry Save As, display complete pointer recovery
|
||
guidance, recover using Save All and fresh-folder Save As, refuse a controlled
|
||
genuine external edit, recover after its exact restoration, and reopen the saved
|
||
source in a fresh process before a no-op Save All. Both exit 0 with empty logs;
|
||
all 565 packaged files remain exact. The initial premature loading capture is
|
||
retained and is not treated as loaded-model proof.
|
||
|
||
Eight phase oracles compare complete 37-file sets/bytes, including separately
|
||
copied seven companions. A further fresh-reopen oracle checks all 37 saved bytes.
|
||
The application writes 30 source files; it does not clone arbitrary external
|
||
artifacts. A separate actual packaged-server oracle checks complete pristine and
|
||
both saved Projects and exact source envelopes: only Activity
|
||
`61f7bbfb-74a4-5540-9182-2583dfb27a49` Name changes from `Assess pressure alarm`
|
||
to `Assess pressure alarm Package46`. A read-only validation probe confirms both
|
||
are valid; the extra warning is expected trace_drift/OaChanged while the prior
|
||
work-context warning remains. No trace reconciliation is inferred.
|
||
|
||
The GUI trial uses 1442×932 on one existing Windows machine/account. Earlier
|
||
contribution minimum-window, editor-history and #39 F1/caret results retain their
|
||
own scope; those checks were not all repeated on this extracted package. Keyboard
|
||
tooltip access, broader accessibility/DPI, second clean machine/profile, Linux,
|
||
full-suite and all OA/SA workflows are not claimed. Linux/WSL remains user-deferred.
|
||
Dense diagrams, Scenario group adapters, quantities/calculations/constraints,
|
||
maintained libraries and complete first-release acceptance remain unfinished.
|
||
Existing releases 7/8 and their tags remain frozen. No new local/server source
|
||
semantics, experimental E/F labels or unverified peer changes are introduced.
|
||
|
||
## Run and reproduce
|
||
|
||
Verify the adjacent ZIP SHA256, extract the complete folder and launch
|
||
`arcadia-studio.exe`, keeping `libunwind.dll` beside both executables. Read
|
||
`START-HERE.txt`; Home and Help/F1 expose the example and offline guidance.
|
||
Copy the complete example before editing. Save All updates its loaded entry;
|
||
Save As preserves include paths and needs a fresh source destination. Copy
|
||
needed companion/external artifacts separately.
|
||
|
||
Optional local backend from a writable working directory:
|
||
|
||
```powershell
|
||
.\arcadia-server.exe --bind 127.0.0.1:8787 --data-dir C:/ArcadiaModels/server
|
||
```
|
||
|
||
Packaged `docs/server.md` and `docs/api.rst` define REST, authentication and
|
||
deployment. No remote deployment was performed. Source build/check commands,
|
||
with the recorded Rust 1.98.1/gnullvm environment and jobs 1/incremental disabled:
|
||
|
||
```powershell
|
||
cargo fmt --all -- --check
|
||
cargo test --locked -p oa-desktop -- save_as_tests source_project_tests repair_save_state_tests --test-threads=1
|
||
cargo clippy --locked -p oa-desktop --all-targets -- -D warnings
|
||
cargo build --locked -p oa-desktop --bin arcadia-studio
|
||
cargo build --locked -p oa-server --bin arcadia-server
|
||
```
|
||
|
||
The 29 recorded checks use that exact three-filter command in the contribution's
|
||
`commands.json`; this is not a full-suite invocation.
|
||
Use [Windows packaging](../docs/windows-packaging.md) and
|
||
`scripts/package-windows.ps1` with explicit target/version, verified binary
|
||
directory, recorded BuildEvidence, matching LLVM-MinGW root and fresh OutputRoot.
|
||
The script packages/verifies; it does not compile or establish native acceptance.
|
||
The packet's offline verifier checks captured bytes and Git input identities;
|
||
runtime helpers retain the original Windows paths in their raw record and
|
||
require explicit adaptation to a fresh reconstruction directory. Do not rerun
|
||
mutation helpers against a user's project or replace published artifacts.
|