fix(evidence): bind corpus to workspace identity
This commit is contained in:
@@ -122,3 +122,16 @@ and the final full harness plus scoped Ruff/diff invocation completed with exit
|
||||
Final focused verification: `89 passed` across corpus/CLI JSON, direct/HTTP parity, migrations, and
|
||||
real Docker pgvector lifecycle; scoped Ruff and `git diff --check` clean. A contemporaneous full-suite
|
||||
run reached unrelated Task 6 immutable-file tamper tests; those files were deliberately not changed.
|
||||
|
||||
## Immutable corpus/workspace binding
|
||||
|
||||
- A corpus root becomes bound to the workspace id persisted in its ACTIVE manifest. Job, non-job,
|
||||
explicit GC, and ACTIVE search entry points compare the configured namespace before discovery,
|
||||
vector access, staging, deletion, or ACTIVE mutation.
|
||||
- Reusing the same paths after renaming a workspace now fails closed with a typed/sanitized message:
|
||||
use a new corpus root or perform an intentional explicit rebuild. Unscoped legacy manifests also
|
||||
fail this ownership check.
|
||||
- Tests prove unchanged-document reuse cannot silently mix workspace A vectors into a workspace B
|
||||
manifest, and that mismatched job, GC, and search paths perform no vector/filesystem mutations.
|
||||
|
||||
Focused workspace-binding, search-pack, preprocess JSON, and scoped Ruff/diff tests pass.
|
||||
|
||||
Reference in New Issue
Block a user