diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 2497a4d..6c0fd99 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -16,7 +16,7 @@ None - [x] **Phase 1: Foundation** - Project scaffolding, tooling, database models - [x] **Phase 2: Bot Core** - Telegram bot setup, /help, /status (M1) -- [ ] **Phase 3: Project CRUD** - Project management commands (M2) +- [x] **Phase 3: Project CRUD** - Project management commands (M2) - [ ] **Phase 4: Single Model Q&A** - AI client abstraction, basic queries (M3) - [ ] **Phase 5: Multi-Model Discussions** - Open mode, discuss mode, @mentions (M4, M5, M8) - [ ] **Phase 6: Consensus & Export** - Consensus generation, markdown export (M6, M7) @@ -38,11 +38,12 @@ None **Plans**: 2 (02-01 infrastructure, 02-02 help/status commands) **Completed**: 2026-01-16 -### Phase 3: Project CRUD +### Phase 3: Project CRUD ✓ **Goal**: Full project management via Telegram (/projects, /project new/select/delete/models/info) **Depends on**: Phase 2 **Research**: Unlikely (standard CRUD with established patterns) **Plans**: 3 (03-01 service & list/create, 03-02 select/info, 03-03 delete/models) +**Completed**: 2026-01-16 ### Phase 4: Single Model Q&A **Goal**: Query a single AI model through the bot with abstracted AI client layer @@ -72,7 +73,7 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 |-------|----------------|--------|-----------| | 1. Foundation | 3/3 | Complete | 2026-01-16 | | 2. Bot Core | 2/2 | Complete | 2026-01-16 | -| 3. Project CRUD | 2/3 | In progress | - | +| 3. Project CRUD | 3/3 | Complete | 2026-01-16 | | 4. Single Model Q&A | 0/TBD | Not started | - | | 5. Multi-Model Discussions | 0/TBD | Not started | - | | 6. Consensus & Export | 0/TBD | Not started | - | diff --git a/.planning/STATE.md b/.planning/STATE.md index b1fe201..5103a6d 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -5,23 +5,23 @@ See: .planning/PROJECT.md (updated 2026-01-16) **Core value:** Get richer, more diverse AI insights through structured multi-model discussions—ask a team of AIs instead of just one. -**Current focus:** Phase 3 — Project CRUD (in progress) +**Current focus:** Phase 3 — Project CRUD (complete) ## Current Position Phase: 3 of 6 (Project CRUD) -Plan: 2 of 3 in current phase -Status: In progress -Last activity: 2026-01-16 — Completed 03-02-PLAN.md (project select/info) +Plan: 3 of 3 in current phase +Status: Phase complete +Last activity: 2026-01-16 — Completed 03-03-PLAN.md (project models/delete) -Progress: ████░░░░░░ ~40% +Progress: █████░░░░░ ~50% ## Performance Metrics **Velocity:** -- Total plans completed: 7 +- Total plans completed: 8 - Average duration: 4 min -- Total execution time: 0.42 hours +- Total execution time: 0.5 hours **By Phase:** @@ -29,10 +29,10 @@ Progress: ████░░░░░░ ~40% |-------|-------|-------|----------| | 01-foundation | 3 | 15 min | 5 min | | 02-bot-core | 2 | 4 min | 2 min | -| 03-project-crud | 2 | 6 min | 3 min | +| 03-project-crud | 3 | 11 min | 4 min | **Recent Trend:** -- Last 5 plans: 02-01 (2 min), 02-02 (2 min), 03-01 (3 min), 03-02 (3 min) +- Last 5 plans: 02-02 (2 min), 03-01 (3 min), 03-02 (3 min), 03-03 (5 min) - Trend: Fast ## Accumulated Context @@ -56,6 +56,8 @@ Recent decisions affecting current work: - **03-01:** Single /project handler with subcommand parsing - **03-02:** Case-insensitive name matching with ilike - **03-02:** user_data dict for storing selected_project_id +- **03-03:** Explicit project ID required for delete (safety) +- **03-03:** Comma-separated model list parsing ### Deferred Issues @@ -67,6 +69,6 @@ None yet. ## Session Continuity -Last session: 2026-01-16T18:43:43Z -Stopped at: Completed 03-02-PLAN.md (project select/info) +Last session: 2026-01-16T18:55:00Z +Stopped at: Completed 03-03-PLAN.md (project models/delete) - Phase 3 complete Resume file: None diff --git a/.planning/phases/03-project-crud/03-03-SUMMARY.md b/.planning/phases/03-project-crud/03-03-SUMMARY.md new file mode 100644 index 0000000..59505b8 --- /dev/null +++ b/.planning/phases/03-project-crud/03-03-SUMMARY.md @@ -0,0 +1,94 @@ +--- +phase: 03-project-crud +plan: 03 +subsystem: bot +tags: [telegram, project-crud, models-config] + +# Dependency graph +requires: + - phase: 03-02 + provides: project select/info commands, get_selected_project helper +provides: + - update_project_models service function + - delete_project service function + - /project models command for configuring AI models + - /project delete command for project removal +affects: [discussion-commands, ai-client] + +# Tech tracking +tech-stack: + added: [] + patterns: [] + +key-files: + created: [] + modified: + - src/moai/core/services/project.py + - src/moai/bot/handlers/projects.py + +key-decisions: + - "Explicit project ID required for delete (safety)" + - "Comma-separated model list parsing" + +patterns-established: + - "Service functions return None or bool for not-found cases" + +issues-created: [] + +# Metrics +duration: 5min +completed: 2026-01-16 +--- + +# Phase 3 Plan 3: Project Models & Delete Summary + +**Full Project CRUD complete: /project models configures AI model list, /project delete removes projects with cascade - M2 milestone done** + +## Performance + +- **Duration:** 5 min +- **Started:** 2026-01-16T18:50:00Z +- **Completed:** 2026-01-16T18:55:00Z +- **Tasks:** 2 +- **Files modified:** 2 + +## Accomplishments +- Added update_project_models(project_id, models) to service layer +- Added delete_project(project_id) with cascade handling +- Implemented /project models command (show/set AI models for current project) +- Implemented /project delete command requiring explicit ID for safety +- Completed M2 milestone: full project CRUD via Telegram + +## Task Commits + +Each task was committed atomically: + +1. **Task 1: Add update_models and delete_project to service** - `e2e10d9` (feat) +2. **Task 2: Implement /project models and /project delete handlers** - `bb3eab7` (feat) + +**Plan metadata:** `afab4f8` (docs: complete plan) + +## Files Created/Modified +- `src/moai/core/services/project.py` - Added update_project_models and delete_project functions +- `src/moai/bot/handlers/projects.py` - Added models/delete handlers, updated usage help + +## Decisions Made +- Require explicit project ID for delete (not name) for safety +- Comma-separated model list parsing (e.g., "claude,gpt,gemini") +- Clear user_data selection when deleting the currently selected project + +## Deviations from Plan + +None - plan executed exactly as written. + +## Issues Encountered +None + +## Next Phase Readiness +- M2 milestone complete +- Full project CRUD available: new, select, info, models, delete +- Ready for Phase 4: Single Model Q&A + +--- +*Phase: 03-project-crud* +*Completed: 2026-01-16*