Files
ARCADIA-Studio/harness/release-semantic-artifact-boundary-review-20260906.md

4.0 KiB

Independent semantic artifact GUI boundary review

2026-09-06. Reviewed the artifact worker's proposed typed editor/recovery contract and existing core implementation before deep GUI wiring. This is a design/core boundary review, not acceptance of the unfinished GUI.

Root ran the independent new crates/oa-core/tests/semantic_artifact_absence_oracle.rs: 2 passed, 0 failed, each exercising both transition directions. Log: .local/source6-artifact-absence-oracle.log.

Established boundaries and corrections sent to implementer

  1. Presence observes attachment to the reviewed owner, not global record existence (semantic/catalog.rs:381). A still-existing source link moved elsewhere is absent from its old owner. Taking this explicitly identified absence removes the counterpart link without deleting or changing the moved source. The new oracle pins this behavior.
  2. A missing source key is different from an identified absent link. semantic/mutate.rs:418 deliberately preserves target-only data for TakeSource. The new oracle pins that no-op; the GUI must not synthesize a missing UUID to turn it into deletion. The reviewer's initial contrary hypothesis was falsified by this guard and corrected before the test run.
  3. Creation needs an existing applicable source plus a stable reserved destination record and explicit decisions for Presence and all seven introduced metadata facets. A pair with neither initial artifact present cannot capture valid metadata observations: reviewed facets cannot be NotApplicable on both sides (semantic/historical.rs:128). Complete artifact candidates are not deletion tombstones: the final candidate must equal the final record, including selected metadata (semantic/review.rs:1120). The implementation worker owns additional direct creation/tombstone tests.
  4. Presence aliases the actual Owner write slot (semantic/review.rs:194); the batch adapter must compare Value(owner)/NotApplicable, not merely Presence booleans. Deletion also removes the seven metadata slots. Cross-row Owner moves versus kept Presence and metadata versus deletion must produce visible retained conflicts, independent of row order.
  5. Owner moves and simultaneous metadata edits are authorized on the immutable initially attached owner trace (semantic/review.rs:609), then recorded with the resulting owner. Further metadata review after Apply must use the current owner context; do not silently reinterpret the old trace. Existing r3_semantic owner/move/order tests already cover this core rule and were not duplicated.
  6. Revision and Fragment distinguish None from Some(""); Name, Description and URI are strings. Optional toggles must preserve both raw text and enabled state through row switching and recovery. URI validation remains the existing nonempty URI-reference rule. Owner validity is the existing general model-object rule (validation.rs:851), not a newly invented same-layer or element-only restriction. Initial trace applicability is narrower than general artifact ownership; the GUI should expose resulting scope limitations explicitly.

Implementation review requirements still pending

The proposed strict typed Saved DTO is appropriate if it preserves reserved IDs, raw optional values, exact selector decisions and row inclusion/order while validating duplicates and scope on restore. Candidates must be assembled from all chosen fields so the supplied complete record equals the core's final result; untouched seed fields cannot leak into unrelated edits. Invalid raw metadata must remain editable with a located error. Recovery must replan against the accepted model and preserve the ordinary source/history transaction path.

The worker was sent these requirements directly. No production changes were made by this reviewer. New graphical adapter code, its recovery wiring, meaningful conflict rendering, undo/redo/source parity and native artifact workflows still require inspection/testing after implementation. Windows core test evidence above is not Linux, MSRV or release-package evidence.