docs: add issue/evidence reconciliation table (2026-10-14)
This commit is contained in:
1 parent
4d10f4fb2b
commit
9dd8c07e66
1 file changed
+22
@@ -117,6 +117,28 @@ Pushed to origin/main. Previously closed: #6, #7, #8, #9, #11, #23.
|
|||||||
transactional multipart aggregate, shared service contracts consumed by import/metadata/status,
|
transactional multipart aggregate, shared service contracts consumed by import/metadata/status,
|
||||||
explicit reassignment/rollback/FK evidence). Remaining open: #14, #15, #18, #20, #29, #30, #46, #47.
|
explicit reassignment/rollback/FK evidence). Remaining open: #14, #15, #18, #20, #29, #30, #46, #47.
|
||||||
|
|
||||||
|
## Issue/evidence reconciliation — 2026-10-14
|
||||||
|
|
||||||
|
This section maps each open issue to existing evidence and remaining gaps.
|
||||||
|
No partial milestones are closed here; this is a reconciliation snapshot.
|
||||||
|
|
||||||
|
| Issue | Title / Scope | Existing Evidence | Remaining Gaps | Milestone |
|
||||||
|
|-------|---------------|-------------------|----------------|-----------|
|
||||||
|
| #14 | UI/CSRF protection | HTTP integration tests exist (`tests/Http/AppTest.php`); CSRF token middleware not implemented | CSRF token generation/validation middleware; form integration; SameSite cookie policy | M2 |
|
||||||
|
| #15 | Scanner / file discovery | `FileEnumerator` + `LocalFilesystem` + `PathSafety` implemented; recursive walk, extension filter, size limits | Incremental scanning (mtime/hash checkpoint); symlink policy beyond escape; watch-mode integration; scan resumption | M2/M3 |
|
||||||
|
| #18 | Import grouping / manifest | `LegacyGuessedImportGroupingAdapter` isolates first-directory guess; `ImportService` groups by adapter; `ImportWorker` registers files | **Confirmed explicit grouping** (user confirmation); immutable manifest write; source selection policy; grouping override/merge | M3 |
|
||||||
|
| #20 | Model/file identity & grouping | `CatalogService`/`Repository` provide stable IDs; `ensureModel` reuses folder/name; adapter stateless fresh lookup | Explicit user-confirmed grouping (not guessed); stable model identity across imports; grouping persistence | M3 |
|
||||||
|
| #24 | Publication recovery | `VerifiedCopier` verifies bytes on copy; `ImportWorker` persists planned name before copy | Crash between publish and suffix save → duplicate suffixed copies; orphaned published files on catalog failure; replay idempotency | M3/M4 |
|
||||||
|
| #25 | Missing-file replacement/removal | `CatalogService::changeFileStatus` supports Present/Missing/Corrupt; `detachFiles` removes associations | Replace missing file (re-upload); remove missing file (cleanup); missing-file scan/report; UI workflow | M4 |
|
||||||
|
| #26 | Progress contracts | `ImportJobRepository` tracks item status (Pending/Processing/Completed/Failed); byte totals in job | Progress callbacks during copy/hash/validate; ETA; pause/resume; granular stage reporting | M4 |
|
||||||
|
| #27 | Retry contracts | `ImportJobRepository::resumeInterrupted` resets Processing→Pending; worker `runOnce` loop | Exponential backoff; max retries per item/job; retry classification (transient vs permanent); dead-letter | M4 |
|
||||||
|
| #29 | Browse/search | Catalog read methods (`file`, `fileByManagedPath`, `aggregate`, `folderChildren`) | Full-text search; faceted filter (mime, size, date); pagination; sort; saved queries | M5/M6 |
|
||||||
|
| #30 | Lifecycle/duplicate review | `ModelMetadata` DTO; `changeFileStatus`; `detachFiles`/`attachFiles` | Duplicate detection (hash-based); review queue; merge/split models; archive/restore; retention policy | M5/M7 |
|
||||||
|
| #46 | Asset watch/build delivery | M1 Docker stack with asset watcher (`dev.sh`, `docker-compose.yml`); Tailwind/Vite | Production asset pipeline; cache busting; CDN integration; build verification | M1 (partial) |
|
||||||
|
| #47 | Hardening/release | Foundation checks; PHPCS; PHPUnit; Docker test runner; PostgreSQL CI | Security audit; dependency scanning; load testing; release automation; rollback procedure | M8 |
|
||||||
|
|
||||||
|
**Legend:** Evidence = code/tests/docs that exist in `main` at `4d10f4f`. Gaps = acceptance criteria not yet satisfied. Milestone = earliest milestone where closure is planned per proposed delivery order.
|
||||||
|
|
||||||
## Important implementation findings
|
## Important implementation findings
|
||||||
|
|
||||||
- `LegacyGuessedImportGroupingAdapter` now isolates the importer's first-directory
|
- `LegacyGuessedImportGroupingAdapter` now isolates the importer's first-directory
|
||||||
|
|||||||
Reference in new issue
Block a user