docs: make schema v3 the only workspace contract

This commit is contained in:
2026-08-11 02:53:41 +02:00
parent edef085fea
commit 5310c6555b
9 changed files with 1180 additions and 123 deletions
+19 -10
View File
@@ -34,9 +34,16 @@
Compose network and persists `/qdrant/storage` in `qdrant-data`. Ollama persists its local model
cache in `embedding-models`, and `embedding-model-init` blocks `core` until
`qwen3-embedding:0.6b` is present.
<!-- workspace-descriptor-contract:start -->
- **Semantic contract.** Internal semantic indexing is fixed to `qwen3-embedding:0.6b`,
`1024` dimensions, and cosine distance. Schema-v3 descriptors are operational; schema-v1/v2 descriptors remain `migration_required` until an explicit reviewed migration writes schema version 3. One workspace owns one Qdrant collection, and schema, Evidence, and Memory records
coexist inside that collection with payload `kind` separation.
`1024` dimensions, and cosine distance. Schema v3 is the only accepted workspace descriptor.
Schema v1 and v2 workspace descriptors are rejected before activation. Candidate snapshot
validation makes activation or a pull fail atomically and leaves the prior valid snapshot active;
there is no in-product migrator or automatic conversion. One workspace owns one Qdrant
collection, and
schema, Evidence, and Memory records coexist inside that collection with payload `kind`
separation.
<!-- workspace-descriptor-contract:end -->
- **Final review runtime barriers.** Operational routes, retained session pins, and runtime
rendering now require schema version 3 before resolving bindings, readiness, diagnostics, or
Pi. Session admission verifies the exact internal Qdrant collection (dimensions, cosine
@@ -53,11 +60,13 @@
archives exactly one labeled `<project>_qdrant-data` volume and preserves the prior `qdrant`
running state. `./scripts/vector-restore.sh --project-name <name> --input <file>
--confirm-project <name>` requires the exact repeated project confirmation, validates manifest
and archive safety before stopping `qdrant`, stages rollback content, restores in place, and
restarts `qdrant` only if it was previously running. Restore does not migrate legacy workspace
descriptors, rename collections, or repair a semantic-index incompatibility. Backup and restore
share one atomic Docker-daemon lock per Compose project/Qdrant volume; contenders fail before
volume resolution, and cleanup removes the lock only when its ownership labels still match.
and archive safety before stopping `qdrant`, stages rollback content, restores semantic storage
in place, and restarts `qdrant` only if it was previously running. Recovery requires the registry
to already hold a reviewed v3 descriptor revision compatible with the restored collection; the
helper does not restore descriptors, rename collections, or repair a semantic-index
incompatibility. Backup and restore share one atomic Docker-daemon lock per Compose
project/Qdrant volume; contenders fail before volume resolution, and cleanup removes the lock
only when its ownership labels still match.
- **Verification recorded for Task 13 final audit.** On Apple M4 Pro
(`Darwin 25.5.0`, Docker Server `29.6.2 linux/arm64`), harness pytest passed
**827 passed / 4 deselected**; backend Vitest passed **477/477** plus TypeScript and build;
@@ -85,9 +94,8 @@
Windows Docker Desktop startup were not manually executed in this run.
- **Task 13 known limitations.** Broad harness Ruff remains existing unrelated debt
(**220 errors**); touched harness files were verified Ruff-clean. The final active-reference
audit remains non-empty only in categorized legacy parser/migration compatibility, legacy
descriptor/config fixtures, deterministic negative guards, retained off-repository migration
SQL, L2 legacy fixtures, gitignored task notes, and historical reference notes. No active
audit remains non-empty only in deterministic negative guards, retained off-repository migration
SQL, L2 compatibility fixtures, gitignored task notes, and historical reference notes. No active
schema-v3 operator manual or supported runtime deployment path retains external vector or
embedding endpoint coupling.
- **Final review fix verification.** Backend Vitest passed **477/477** plus TypeScript and build;
@@ -102,6 +110,7 @@
distinct. The rollback-only smoke passed twice consecutively after each fix revision, and the
subsequent full unified smoke passed with exact cleanup.
# Historical archive
## Historical snapshots and archived reference notes
### Historical snapshot — Unified deployment release gate, Task 13 (2026-08-05)