docs(03-04): complete flat-file settings retirement and per-user AI classification plan

- 03-04-SUMMARY.md: Plan complete — classifier signature, env var defaults, security
  mitigations T-03-17/18/19/21 all resolved; DOC-03, DOC-05 requirements completed
- STATE.md: Advance to Plan 4/5 complete, add 5 key decisions from this plan
- ROADMAP.md: Mark 03-04-PLAN.md complete (Wave 4)
- REQUIREMENTS.md: Mark DOC-03 and DOC-05 as complete
This commit is contained in:
curo1305
2026-05-23 20:39:33 +02:00
parent 349912cac3
commit 6bd57629ce
4 changed files with 212 additions and 10 deletions
+11 -7
View File
@@ -16,7 +16,7 @@ progress:
# Project State
**Project:** DocuVault
**Status:** Phase 3 In Progress — Plan 03 Complete
**Status:** Phase 3 In Progress — Plan 04 Complete
**Current Phase:** 3
**Last Updated:** 2026-05-23
@@ -26,15 +26,15 @@ progress:
|---|---|---|
| 1 | Infrastructure Foundation | ✓ Complete |
| 2 | Users & Authentication | ✓ Complete (5/5 plans) |
| 3 | Document Migration & Multi-User Isolation | In Progress (3/5 plans complete) |
| 3 | Document Migration & Multi-User Isolation | In Progress (4/5 plans complete) |
| 4 | Folders, Sharing, Quotas & Document UX | Not Started |
| 5 | Cloud Storage Backends | Not Started |
## Current Position
**Phase:** 03-document-migration-multi-user-isolation — In Progress
**Plan:** 3/5 complete (Plan 03: Per-user document/topic isolation, get_regular_user, admin topics endpoint)
**Progress:** ████░░░░░░ 52% (2/5 phases complete, 13/15 plans done)
**Plan:** 4/5 complete (Plan 04: Flat-file settings retirement + per-user AI classification)
**Progress:** ████░░░░░░ 53% (2/5 phases complete, 14/15 plans done)
## Performance Metrics
@@ -96,6 +96,10 @@ progress:
| CASE WHEN replaces GREATEST in quota decrement | SQLite lacks GREATEST scalar function; CASE WHEN used_bytes > :delta THEN used_bytes - :delta ELSE 0 END is semantically equivalent and SQLite-compatible |
| load_topics_for_user uses or_(user_id == x, user_id.is_(None)) | SQLAlchemy is_(None) not == None; or_() combines system topics and user's own topics for namespace-scoped query (D-17, DOC-04) |
| AI-suggested topics go in user namespace | classifier passes user_id=doc.user_id to create_topic; AI-suggested topics are per-user not system-wide (D-11) |
| Celery task signature unchanged for ai_provider | Task receives only document_id; ai_provider/ai_model resolved inside _run via session.get(User, doc.user_id) — prevents broker injection (T-03-19) |
| _DEFAULT_SYSTEM_PROMPT in classifier.py | System prompt env var is optional; hardcoded fallback kept in classifier module not config.py (D-13) |
| Default AI provider is ollama/llama3.2 | Code defaults; overridable via DEFAULT_AI_PROVIDER / DEFAULT_AI_MODEL env vars (D-15) |
| /settings route kept as static placeholder | SettingsView shows admin-managed card; route not removed to avoid UX regression (Risk 6) |
### Open Questions
@@ -111,7 +115,7 @@ _Updated at each phase transition._
| Field | Value |
|---|---|
| Last session | 2026-05-23 — Executed Plan 03-03 (per-user document/topic isolation, get_regular_user dep, admin topics endpoint) |
| Next action | Run `/gsd:execute-phase 3` to execute Plan 03-04 |
| Last session | 2026-05-23 — Executed Plan 03-04 (flat-file settings retirement, per-user AI classification, frontend placeholder) |
| Next action | Run `/gsd:execute-phase 3` to execute Plan 03-05 |
| Pending decisions | None |
| Resume file | `.planning/phases/03-document-migration-multi-user-isolation/03-04-PLAN.md` |
| Resume file | `.planning/phases/03-document-migration-multi-user-isolation/03-05-PLAN.md` |