Files

4.1 KiB

Artifact lifecycle native fixtures

These source-6 fixtures preserve direct-core expected results for the implemented artifact review controls. MOVE, CREATE and DELETE passed native exact-source Save/Undo/Redo checks: nine saves succeeded first attempt. MOVE invalid raw/optional state and CREATE excluded row/reserved identity also survived controlled-stop recovery exactly. Full desktop 518/518 and the corrected six-artifact filter passed at the implementation checkpoint; strict all-target workspace Clippy passed separately. See the native lifecycle evidence, implementation evidence, and native steps. These native runs used the preceding binary; subsequent diagnostic/reserved-identity wording changes require their own verification. Destination-only retention and every possible owner/type were not separately exercised natively.

Work on copies. Each semantic-artifacts-{move,delete,create} set contains original and expected .arcadia/.json files, a complete core request, and an identity/count manifest. semantic-artifacts.hashes.json lists portable relative filenames and SHA256 hashes. Every fixture uses Interlock requirement rationale as its owner trace.

  • Move: explicitly review Owner, Revision Some(""), and Fragment None; two links remain.
  • Delete: the source link remains present under another owner; Take Presence removes the destination link. Source metadata remains, so this fixture has eight acknowledged facts and no retired metadata.
  • Create: an existing source link seeds a reserved destination counterpart. Presence plus all seven metadata facets must be explicitly reviewed; one link becomes two.

The generator validates every request with plan_semantic_transition and prepare_semantic_transition, updates the exact source bundle through source_project::update_bundle, and reparses both source oracles. No GUI action is simulated.

Generator usage

generate-semantic-artifacts OUTPUT_DIRECTORY [RESERVED_CREATION_UUID]

An explicit output directory is required. Without a UUID it generates fresh initial fixture identities; use a new scratch directory. With a UUID it loads the existing creation fixture JSON and exact original source in that directory, preserves both base files, and writes the creation after oracle, request and manifest for the UI's reserved identity. Do not regenerate initial fixtures after starting native work.

The checked Windows compilation recipe uses the already-built workspace libraries and the user-local GNU LLVM toolchain; it writes its executable only under ignored .local. Library filenames belong to that build and must be updated together if a different build changes their fingerprints. No executable is committed.

. .local/toolchain/env.ps1
rustc --edition 2024 -C linker=clang.exe --extern oa_core=.local/target-gnullvm/debug/deps/liboa_core-6c8da57367eec642.rlib --extern serde_json=.local/target-gnullvm/debug/deps/libserde_json-da2c4f333fc47818.rlib -L dependency=.local/target-gnullvm/debug/deps harness/fixtures/release1-native/artifacts/generate-semantic-artifacts.rs -o .local/native-fixtures/generate-semantic-artifacts-preserved.exe

Copy this directory into an isolated trial directory, for example .local/native-fixtures/artifacts-session. After the GUI reserves its UUID, regenerate the exact creation oracle:

.local/native-fixtures/generate-semantic-artifacts-preserved.exe .local/native-fixtures/artifacts-session <UI_RESERVED_UUID>

For fresh fixtures with new initial identities, omit the UUID and select a new directory:

.local/native-fixtures/generate-semantic-artifacts-preserved.exe .local/native-fixtures/artifacts-fresh

The native steps explain why the static creation after file is a template until the UI's reserved UUID is supplied. Keep model/source/Undo/Redo comparisons exact after that substitution. Refresh local hashes after regenerating a creation oracle; the committed hash inventory continues to describe the committed template.