From 61be2440bd07fa4f2f3e6f087665b287042d3ead Mon Sep 17 00:00:00 2001 From: Rbanh Date: Sun, 12 Jul 2026 17:43:07 -0400 Subject: [PATCH] Document collaborative file safety acceptance --- docs/editor/README.md | 1 + docs/editor/collaborative-file-safety.md | 4 ++ .../collaborative-file-safety/README.md | 39 +++++++++++++++++++ .../external-change-metadata.png | 3 ++ 4 files changed, 47 insertions(+) create mode 100644 docs/editor/evaluations/collaborative-file-safety/README.md create mode 100644 docs/editor/evaluations/collaborative-file-safety/external-change-metadata.png diff --git a/docs/editor/README.md b/docs/editor/README.md index f7cf7fd..ba14d86 100644 --- a/docs/editor/README.md +++ b/docs/editor/README.md @@ -26,6 +26,7 @@ Docs for the in-process egui editor (`crates/editor/`). Update this index when a | [collaborative-file-safety.md](collaborative-file-safety.md) | Exact authored-file revisions, Git/read-only status, conflict recovery, and optional ownership providers | | [evaluations/material-renderer-foundation/](evaluations/material-renderer-foundation/) | Live screenshots and verification record for the renderer/material/component foundation | | [evaluations/material-library-targeted-drop/](evaluations/material-library-targeted-drop/) | Live screenshot and verification record for the docked Material Library and exact reversible surface drops | +| [evaluations/collaborative-file-safety/](evaluations/collaborative-file-safety/) | Live screenshot and verification record for source-control status and guarded external-change recovery | | [evaluations/navigation-authoring/](evaluations/navigation-authoring/) | Live screenshots and verification record for navigation authoring and runtime parity | | [evaluations/production-readiness/](evaluations/production-readiness/) | Current #50 release-candidate matrix and required clean-checkout, soak, performance, limitation, and independent-signoff evidence | diff --git a/docs/editor/collaborative-file-safety.md b/docs/editor/collaborative-file-safety.md index b8ec3cc..5cedaf1 100644 --- a/docs/editor/collaborative-file-safety.md +++ b/docs/editor/collaborative-file-safety.md @@ -56,3 +56,7 @@ empty provider registry performs no calls and adds no UI. The architectural policy is recorded in [ADR 0037](../adr/0037-collaborative-authored-file-safety.md). + +Live editor acceptance, including external-change detection, metadata comparison, cancel/reload +invariants, and source-control status, is recorded in the +[collaborative file-safety evaluation](evaluations/collaborative-file-safety/). diff --git a/docs/editor/evaluations/collaborative-file-safety/README.md b/docs/editor/evaluations/collaborative-file-safety/README.md new file mode 100644 index 0000000..e24893c --- /dev/null +++ b/docs/editor/evaluations/collaborative-file-safety/README.md @@ -0,0 +1,39 @@ +# Collaborative File Safety Evaluation + +Date: 2026-07-12 +Branch: `codex/collaboration-live-acceptance` +Implementation commits: `5a82a9e`, `f2ad88f` + +This record captures live acceptance for source-control status and guarded authored-file writes. +The permanent workflow and recovery contract live in the +[collaborative file-safety guide](../../collaborative-file-safety.md). + +## Live Editor Evidence + +The image below is a native Wayland capture from the debug editor. A disposable untracked scene +was loaded, changed locally, and then changed independently on disk before Save. + +![External-change guard showing loaded and current revision metadata while the dirty untracked scene remains open](external-change-metadata.png) + +The bottom status strip reports the active scene as `UNTRACKED`. The guarded save left the disk +revision unchanged and opened recovery choices with the exact loaded/current revision, byte count, +modified time, and permissions. + +## Acceptance Results + +| Area | Result | Evidence | +|------|--------|----------| +| Source-control status | Pass | Active disposable scene reported `UNTRACKED` without disrupting the editor workflow | +| External-change guard | Pass | Save detected the changed disk revision and did not overwrite it | +| Metadata comparison | Pass | Loaded/current revision, byte count, modified time, and permissions were displayed | +| Cancel invariants | Pass | Cancel preserved the dirty local scene and made no filesystem change | +| Invalid reload | Pass | Malformed external RON failed safely, kept the recovery dialog open, and reported the error | +| Valid reload | Pass | Reload replaced the local draft, removed its duplicate actor, cleared dirty/history state, and adopted the disk revision | +| Repository hygiene | Pass | Disposable scene and importer registry churn were removed after acceptance | +| Packaged acceptance | Deferred | Explicitly deferred by project-owner direction; no packaged result is claimed here | + +## Automated Verification + +The implementation commits were already covered on integrated `main` by the workspace formatting, +check, strict Clippy, test, level-validation, and navigation-artifact suites. This evidence-only +change was additionally checked with `git diff --check`. diff --git a/docs/editor/evaluations/collaborative-file-safety/external-change-metadata.png b/docs/editor/evaluations/collaborative-file-safety/external-change-metadata.png new file mode 100644 index 0000000..2938e9a --- /dev/null +++ b/docs/editor/evaluations/collaborative-file-safety/external-change-metadata.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:389a5c6917c624360eaba139da180fa9dbf7680f1d0d3e0ea168c90fd677a813 +size 713878