Files
ARCADIA-Studio/harness/review-v2-api-transfer.md
T

61 lines
5.2 KiB
Markdown

# V2 API/source/desktop transfer verification
Date: 2026-09-05. Integration worker: `v2_requirements_arch_review`. Native Computer Use was performed by the lead; this worker owns no CUA session. Code remained unchanged. Documentation changes: the new `RelocateNode` command schema in `docs/openapi.json`, a corrected title underline in `docs/api.rst`, and V2 README/scope/architecture updates.
## Checks completed
- After the core worker declared the final core changes stable, `cargo test -p oa-server --locked` passed all 12 actual HTTP/configuration/storage tests on Windows.
- `cargo clippy -p oa-server --all-targets --locked -- -D warnings` passed.
- `cargo build --release --locked -p oa-server` passed; the resulting optimized executable was used for the transfer below.
- `docs/api.rst` initially failed warning-as-error rendering at its too-short title underline. The authorized documentation fix was applied; Docutils HTML5 rendering then passed with `halt_level=2` and `report_level=2`. Output: `D:/CodexBuilds/Capella2-v2-01a06e2e/api-review.html`.
- OpenAPI parses as JSON, declares exactly one `RelocateNode {node, diagram}` command variant, and the actual release server serves that updated schema.
- Rewrote README, scope and architecture for V2. The README's new source example was parsed by the actual core. A focused independent `cargo test -p oa-desktop --locked forms::` pass ran all six form tests successfully after the membership/perspective fixes.
## Actual release transport workflow
The desktop executable's headless `--write-example` entry point generated `api-input-demo.arcadia`. This is a generated V2 example, not a claim that this worker saved it by operating the GUI. A fresh isolated loopback server imported the source with `Content-Type: text/plain`, preserving model identity while assigning a distinct hosted resource identity.
1. Import returned revision 1.
2. Conditional `PATCH /api/v1/projects/{id}` renamed the project and returned revision 2.
3. One conditional transaction edited the SA function name and CAD artifact URI/revision, returning revision 3.
4. Exact model comparison proved that all UUIDs, aliases, diagram placements, traces, occurrence lists and other fields remained unchanged apart from those intended values.
5. An actual HTTP dry run created a proposed diagram and applied `RelocateNode` into it. The candidate moved the intact placement; the accepted model and revision stayed unchanged.
6. `GET .../source` exported canonical source. Reimporting it into a separate hosted resource produced an exactly equal model, including all persistent identity and artifact metadata.
7. The server log contained only the expected startup line, with no runtime error. The verification process was terminated after requests completed; this is not a new graceful-shutdown claim.
| Property | Verified value |
|---|---|
| Hosted resource | `6e6204f4-6def-43b7-a7db-1c09e93c5775` |
| Hosted revision | `3` |
| Model UUID | `e0242a95-142d-4a44-8f27-1afd019e879b` |
| Project name | `Coastal rescue - API integration review` |
| SA function alias | `classify_incident_and_alert_operator` |
| SA function UUID | `b8a17e7e-d94b-429d-9899-5c1eca899efa` |
| SA function name | `Classify incident and coordinate rescue (API review)` |
| Artifact alias | `console_enclosure_cad` |
| Artifact UUID | `7a4eb9a9-6951-4d6a-aaea-fcf760bb8241` |
| Artifact URI | `cad/console-enclosure-reviewed.step` |
| Artifact revision | `CAD-REV-B-api-review` |
| Retained model contents | 39 elements, 23 relations, 3 diagrams, 10 traces, 2 artifacts |
GUI-ready source: `D:/CodexBuilds/Capella2-v2-01a06e2e/api-edited-demo.arcadia`.
Reproducible transfer script and structured result: `D:/CodexBuilds/Capella2-v2-01a06e2e/api-transfer.py` and `api-transfer-result.json`. Isolated store/log/result directory: `D:/CodexBuilds/Capella2-v2-01a06e2e/api-transfer-50d2b0c1-0035-4060-8afc-b37a9d4aa1a4`.
## Lead's native GUI verification
The lead reported personally opening the exported `.arcadia` through the Windows file picker. The actual running application displayed the changed project title, the API-renamed SA function with its preserved alias, and the CAD URI/revision in Traceability. Counts remained 39 elements and 23 relationships, with one expected review-drift warning caused by the independently renamed traced SA function. This closes the REST-export-to-native-desktop portion of the transfer. Further native editing/save/reopen is being performed by the lead and must be recorded after its result is observed.
## Reproducible build commands
The ordinary repository commands require no D: cache convention:
```sh
cargo test -p oa-server --locked
cargo clippy -p oa-server --all-targets --locked -- -D warnings
cargo build --release --locked -p oa-server
cargo run --locked -p oa-server --bin arcadia-server
```
This worker used the pre-existing D: build target to share available dependencies. Windows native tests/release are this pass's evidence. Previous native Linux service evidence remains in `docs/server.md`; this pass did not repeat Linux tests, Docker, a remote deployment or systemd installation. Docker was not retried because no daemon was available. Overall desktop workflow, package and multi-platform acceptance remains the lead's responsibility.