Files
ARCADIA-Studio/harness/verification-v2-linux.md

157 lines
8.0 KiB
Markdown

# V2 native Linux verification — 2026-09-05
Status: **passed**, including the focused desktop refresh verified at 04:54
Moscow time on 2026-09-05. This report covers native Linux compilation, tests, linting, and
the headless example command. It does not claim graphical runtime acceptance;
the root agent owns that separate WSLg check.
## Environment and reproducible commands
- Distribution: WSL `Ubuntu-24.04`, Ubuntu 24.04.2 LTS, x86_64.
- Kernel: `6.6.87.2-microsoft-standard-WSL2`.
- Native compiler: `rustc 1.98.1 (48a229cea 2026-09-01)`.
- Native Cargo: `cargo 1.98.1 (797e8a9bc 2026-08-05)`.
- Workspace: `/mnt/c/Users/sorok/OneDrive/Documents/ChatGPT/Capella 2`.
- Native Rust binaries: `/home/sorokinoleg/.cache/arcadia/rust/bin`.
- Native target cache: `/mnt/d/CodexBuilds/Capella2-01a06e2e/linux-target`.
- Vendor directory: `/mnt/d/CodexBuilds/Capella2-01a06e2e/vendor`, selected by
the existing ignored `target/linux-cargo.toml` source-replacement config.
- `Cargo.lock` SHA-256:
`eb3b55fe34920d5d9e069e2f4c80ee130eb85ec2ca12fddd7fc880b8ccfe062d`.
Run inside this WSL distribution:
```sh
cd '/mnt/c/Users/sorok/OneDrive/Documents/ChatGPT/Capella 2'
export PATH=/home/sorokinoleg/.cache/arcadia/rust/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export CARGO_TARGET_DIR=/mnt/d/CodexBuilds/Capella2-01a06e2e/linux-target
cargo fmt --all -- --check
cargo test --workspace --locked --offline --config target/linux-cargo.toml
cargo clippy --workspace --all-targets --locked --offline --config target/linux-cargo.toml -- -D warnings
cargo build --release -p oa-desktop -p oa-server --locked --offline --config target/linux-cargo.toml
```
The Windows orchestration uses `wsl.exe -d Ubuntu-24.04 --cd <workspace>
--exec /usr/bin/env PATH=<path-above> CARGO_TARGET_DIR=<target-above> cargo ...`.
No cross-compilation target is selected: Cargo and Rust execute natively in
Ubuntu and generate Linux executables.
## Results
`cargo test --workspace --locked --offline --config target/linux-cargo.toml`
passed on the full-workspace baseline: **91 tests**, zero failures (incremental
test build completed in 12.05s). This includes the root agent's 64-unit nested
header allowance, canvas text width correction, counterpart diagram focus,
StateTransition behavior context, numbered transition details, diagram/layer
focus after placement relocation, and actual SelectNode-before-drag regression.
| Suite | Passed |
| --- | ---: |
| Core language | 12 |
| Core process diagnostics | 1 |
| Core review regressions | 15 |
| Core workflows | 28 |
| Desktop reducer/property forms | 23 |
| Server actual HTTP/storage | 12 |
The core tests include reviewed divergent transitions in both directions,
Capability/Mission mapping, same-parent sequence/branch preservation,
placement relocation/artifact survival/invalid rollback, unowned-machine
warnings, and checked external-save conflicts. Desktop tests include shared
perspective and placement ownership forms, plus counterpart creation focus
and existing-view reuse. The server suite exercises actual
HTTP, atomic writes, restart, auth, bounded bodies, and concurrent ownership.
Native `cargo fmt --all -- --check` passed. Strict
`cargo clippy --workspace --all-targets --locked --offline --config
target/linux-cargo.toml -- -D warnings` passed on that full-workspace snapshot
(12.44s).
The optimized desktop/server build passed (initial build 3m53s, workspace
refresh 31.69s). `file` identifies both
outputs as native x86-64 ELF PIE executables. `ldd` resolves every linked
library; runtime-loaded graphics drivers are covered by the separate GUI check.
A preliminary test invocation caught the same renamed legacy-fixture include
path that Windows caught. The root agent corrected the two language-test paths
to `examples/legacy-v1-coastal-rescue.*`; the complete rerun above passes.
No Linux-specific source changes were needed or made by this worker.
## Focused desktop refresh after native GUI review
Native GUI review prompted four desktop-only corrections: stable merge-input
widget placement while preview rows change, readable artifact owner labels for
placements, and clearing prior merge decisions when the effective counterpart
or target kind changes, and automatic node placement only while authoring on
the Architecture page. Behavior and Data authoring no longer inserts nodes
into an unrelated active architecture diagram. The latest source passed:
- `cargo test -p oa-desktop --locked --offline --config target/linux-cargo.toml`:
**25 tests**, zero failures (19.29s build). The focused regressions include
`transition_resolutions_belong_to_the_effective_target_and_kind` and
`behavior_and_data_authoring_do_not_place_nodes_in_unrelated_architecture_views`.
- `cargo clippy -p oa-desktop --all-targets --locked --offline --config
target/linux-cargo.toml -- -D warnings`: passed (10.71s).
- `cargo fmt --all -- --check`: passed.
- The established locked/offline release command for desktop and server:
passed (22.40s), recompiling only `oa-desktop`.
Core and server source were unchanged; their earlier 56 and 12 passing native
tests remain the evidence for those crates. Together with the current desktop
suite, this covers 93 tests across these native runs; a new full-workspace
93-test invocation was not performed for the desktop-only corrections.
The refreshed desktop's `ldd` output still has no unresolved libraries.
## Headless examples and release artifacts
The native optimized desktop command below exited successfully and produced
a 29,222-byte canonical `arcadia 2` example without launching a window:
```sh
/mnt/d/CodexBuilds/Capella2-01a06e2e/linux-target/release/arcadia-studio --write-example /mnt/d/CodexBuilds/Capella2-v2-01a06e2e/linux-verification/linux-demo.arcadia
```
Before the focused UI-only refresh, the headless example was checked by a temporary native Rust assertion
program linked to the current `oa-core`. It confirmed:
- Packaged `examples/coastal-rescue.arcadia` and `examples/coastal-rescue.json`
deserialize to equal projects, with zero validation checks.
- Native-generated source exactly equals canonical formatting of its parsed
model, reparses to an equal project, and equals its saved/reloaded JSON.
- The native-generated example has zero validation checks: 39 elements,
23 relations, three diagrams, ten traces, and two artifact links.
The assertion source and executable are `verify_examples.rs` and
`verify_examples` in the evidence directory below. Their assertions compare
each example's representations; independently generated demo instances have
fresh identities and are not claimed byte-identical to one another.
Final native binaries are in
`D:/CodexBuilds/Capella2-01a06e2e/linux-target/release/` (the same directory is
`/mnt/d/CodexBuilds/Capella2-01a06e2e/linux-target/release/` inside Ubuntu):
| Binary | Bytes | SHA-256 |
| --- | ---: | --- |
| `arcadia-studio` | 23,344,152 | `df88c9dd2f4759c95514c32c0c50ad225642fff085b67162e6bebafafad01b04` |
| `arcadia-server` | 7,180,464 | `0df8a6eaaa9bb548669cf38d9b7e452d11171affe075652b9d561ddef2281814` |
Raw logs are stored outside the source tree at
`D:/CodexBuilds/Capella2-v2-01a06e2e/linux-verification/`.
The full-workspace baseline logs are `release-ready-fmt.log`,
`release-ready-tests.log`, `release-ready-clippy.log`,
`release-ready-build.log`, `release-ready-examples.log`, and the two
`release-ready-ldd-*.log` files. The latest focused desktop logs are
`context-fix-desktop-tests.log`, `context-fix-desktop-clippy.log`,
`context-fix-fmt.log`, `context-fix-release-build.log`, and
`context-fix-ldd-studio.log`. Other earlier logs cover superseded snapshots.
## Scope and refresh
Only this report was edited by the Linux verification worker. The root agent
declared the tested source stable before the 91-test workspace pass and before
the focused 25-test desktop/Clippy/release refresh.
No GUI was launched and no server daemon was started by this worker. Later
source changes require another incremental refresh before packaging.
The root agent received the native release-ready path immediately after the
build completed, before hashes/report work, for its separate WSLg GUI run.