docs: update project-status with completion of bounded catalog contract and explicit grouping
This commit is contained in:
1 parent
9dd8c07e66
commit
00daa6b903
1 file changed
+26
-3
+26
-3
@@ -159,9 +159,9 @@ No partial milestones are closed here; this is a reconciliation snapshot.
|
||||
## Proposed next delivery order
|
||||
|
||||
1. Complete issue/evidence reconciliation without closing partial milestones.
|
||||
2. Design a bounded #28 catalog contract with explicit grouping/reassignment and
|
||||
stable model/file identities; retain PHP/PDO/Phinx and the existing repositories.
|
||||
3. Extend #18/#20 with immutable, confirmed manifests and safe source selection.
|
||||
2. **COMPLETED: Design bounded #28 catalog contract with explicit grouping/reassignment and
|
||||
stable model/file identities** — see `MeshVaultSharedContracts/docs/superpowers/specs/2026-10-14-catalog-explicit-grouping-contract.md`
|
||||
3. Implement explicit confirmed grouping with `ExplicitImportGroupingAdapter` and persisted decisions.
|
||||
4. Resolve #24/#25 publication recovery before calling imports restart-safe.
|
||||
5. Add progress and retry contracts (#26/#27), then M4 CRUD/removal/downloads and
|
||||
serialized folder/model moves. Complete schema prerequisites as their contracts
|
||||
@@ -169,3 +169,26 @@ No partial milestones are closed here; this is a reconciliation snapshot.
|
||||
|
||||
M5 metadata, M6 browse/search, M7 lifecycle/duplicate review and M8 hardening/release
|
||||
remain ahead. No production readiness or percentage-complete claim is implied.
|
||||
|
||||
## Design Phase Complete: Explicit Grouping & Stable Identity (2026-10-14)
|
||||
|
||||
The bounded #28 catalog contract for explicit grouping and stable identity has been designed and documented. This extends Tasks 1-4 contracts without breaking them.
|
||||
|
||||
**Key Deliverables:**
|
||||
- **New Interface**: `ExplicitImportGroupingAdapterInterface` with `modelFor()`, `persistDecisions()`, `recoverDecisions()`
|
||||
- **New Implementation**: `ExplicitImportGroupingAdapter` supporting explicit model_id, folder_path+model_name, and fallback to legacy guessed
|
||||
- **Database Migration**: `import_jobs_decisions` table for decision persistence
|
||||
- **Repository Extensions**: `recordGroupingDecision`, `getGroupingDecisions`, `updateItemManagedPath`
|
||||
- **Catalog Service Extensions**: `findModel`, `listModelsInFolder`, `getOrCreateModel`
|
||||
- **ImportService Integration**: Optional `$groupingContext` parameter for explicit grouping
|
||||
- **Worker Atomic Publish**: Temp copy → atomic rename + catalog register in single savepoint (addresses #24 crash gap)
|
||||
- **Backward Compatibility**: Legacy adapter unchanged; explicit adapter opt-in via container
|
||||
|
||||
**Acceptance Criteria Addressed:**
|
||||
- #18: Confirmed explicit grouping (user confirmation) — via context parameter and decision persistence
|
||||
- #20: Explicit user-confirmed grouping; stable model identity across imports; grouping persistence — via new adapter and decision table
|
||||
- #24: Crash between publish and suffix save — via atomic publish-then-register pattern
|
||||
|
||||
**Out of Scope (Future):** UI (#14), incremental scanner (#15), missing-file UI (#25), progress/retry contracts (#26/#27), search/facets (#29), duplicate review (#30)
|
||||
|
||||
**Next Phase:** RED tests → GREEN implementation per implementation sequence in contract §13.
|
||||
Reference in new issue
Block a user