Files
IronPad-Docker/docs/ai-workflow/CHECKLIST.md

222 lines
6.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Ironpad — Implementation Checklist
This checklist tracks **what is planned vs what is done**, based on the PRD.
It is the authoritative execution status for the project.
---
## Phase 0 — Preparation ✅ (COMPLETED)
### Repository & Tooling
- [x] Create project root structure
- [x] Initialize Rust backend (`ironpad`, edition 2021)
- [x] Add backend dependencies (Axum, Tokio, notify, git2, etc.)
- [x] Verify backend builds (`cargo check`)
### Backend Scaffolding
- [x] Create `routes/`, `services/`, `models/` modules
- [x] Create placeholder files for all planned backend components
- [x] Prepare WebSocket and file watcher modules
### Data Layer
- [x] Create `data/` directory structure
- [x] Create initial files (`index.md`, `inbox.md`)
- [x] Initialize `data/` as its own Git repository
### Project Meta
- [x] Create `ai-context.md`
- [x] Create implementation checklist
---
## Phase 1 — MVP ✅ (COMPLETED)
### Backend Core
- [x] Implement `main.rs` (Axum server bootstrap)
- [x] Dynamic port selection (30003010)
- [x] Auto-open system browser on startup
- [x] Serve static frontend files (production path)
### Notes (CRUD)
- [x] List notes from filesystem
- [x] Read markdown file by ID
- [x] Create new note with auto-generated frontmatter
- [x] Update note with auto-save + timestamp update
- [x] Archive note on delete (move to `data/archive/`)
### Frontmatter Automation
- [x] Parse/serialize frontmatter
- [x] Deterministic ID from path
- [x] Auto-manage `created`/`updated` timestamps
- [x] Preserve user-defined fields
### Frontend (Basic)
- [x] Vue 3 + Vite setup
- [x] Note list sidebar
- [x] Note viewer/editor (textarea)
- [x] Create/archive note actions
- [x] Auto-save on edit
---
## Phase 2 — Core Daily Driver ✅ (COMPLETED)
### Real-Time Sync
- [x] File system watching (`notify` crate)
- [x] WebSocket server for real-time updates
- [x] External edit detection + UI notifications
- [x] Filter out own saves from notifications
### Search
- [x] Full-text search (ripgrep with fallback)
- [x] Search endpoint (`GET /api/search?q=`)
- [x] UI search integration (Ctrl+K)
### Git Integration
- [x] Git status endpoint
- [x] Auto-commit (60-second batching)
- [x] Manual commit button
- [x] Git status indicator in UI
### Projects
- [x] Project creation (folder + `index.md` + `assets/`)
- [x] List projects API
- [x] Project task file creation (`tasks.md`)
### Tasks (Basic)
- [x] Task parsing from markdown checkboxes
- [x] Tasks API (list all tasks)
- [x] Task view in sidebar
---
## Phase 3 — Full PRD Compliance ✅ (COMPLETED)
### Projects & Tasks (Per PRD Section 7.2, 7.3)
- [x] Project-specific task endpoint (`GET /api/projects/:id/tasks`)
- [x] Task toggle endpoint (update checkbox state)
- [x] Add task via UI (append to `tasks.md`)
- [x] Task sections: Active, Completed, Backlog
- [x] Project task view at `/projects/:id/tasks` route
### File Locking (Per PRD Section 7.7)
- [x] Backend tracks open files via WebSocket
- [x] File lock when Task View opens
- [x] Editor shows "Read-Only" if file locked
- [x] Auto-unlock when view closes
### Daily Notes (Per PRD Section 6)
- [x] Create `data/daily/` directory
- [x] Daily note endpoint (create/get today's note)
- [x] Daily note templates
- [x] Daily notes in sidebar
### CodeMirror 6 Editor (Per PRD Section 9.3)
- [x] Install CodeMirror 6 dependencies
- [x] Replace textarea with CodeMirror
- [x] Markdown syntax highlighting
- [x] Line numbers
- [x] Keyboard shortcuts
### Markdown Preview (Per PRD Section 5)
- [x] Split view (editor + preview)
- [x] Markdown-it rendering
- [x] CommonMark consistency
### Assets API (Per PRD Section 8)
- [x] `POST /api/assets/upload` endpoint
- [x] `GET /api/assets/:project/:file` endpoint
- [x] Image upload UI in editor
### Git Advanced (Per PRD Section 7.5)
- [x] Git conflict detection
- [x] Conflict warning banner in UI
- [x] `POST /api/git/push` endpoint
- [x] `GET /api/git/conflicts` endpoint
### Frontend Architecture (Per PRD Section 14)
- [x] Vue Router for navigation
- [x] Pinia state management
- [x] Separate view components (NotesView, TasksView, ProjectView)
- [x] WebSocket composable
---
## Phase 4 — Enhanced Task System ✅ (COMPLETED)
### Dashboard
- [x] Cross-project dashboard as home page (`/`)
- [x] Project cards with active task counts and summaries
- [x] Click-through to project or task detail
- [x] Clickable "Ironpad" title navigates to dashboard
### Tags
- [x] Tags field in task frontmatter (YAML sequence)
- [x] Backend parses/writes tags on task CRUD
- [x] Tag pills displayed on task list items
- [x] Tag filter bar — click to filter tasks by tag
- [x] Tag editor in task detail panel with autocomplete
- [x] `projectTags` computed getter for all unique tags in project
### Subtasks
- [x] `parent_id` field in task frontmatter
- [x] Backend accepts `parent_id` on task creation
- [x] Task list groups subtasks under parent (indented)
- [x] Subtask count badge on parent tasks (completed/total)
- [x] Subtask panel in task detail with inline add
- [x] Subtasks clickable to view/edit
### Recurring Tasks
- [x] `recurrence` and `recurrence_interval` fields in frontmatter
- [x] Backend auto-creates next instance on recurring task completion
- [x] Due date advanced by interval (daily/weekly/monthly/yearly)
- [x] Recurrence picker (dropdown) in task detail panel
- [x] Recurrence indicator on task list items
### Calendar View
- [x] Month grid calendar at `/calendar`
- [x] Tasks with due dates plotted on day cells
- [x] Daily notes shown as blue dots
- [x] Color-coded urgency (overdue/today/soon)
- [x] Month navigation (prev/next) + Today button
- [x] Click task → navigate to detail, click date → daily note
- [x] Calendar link in sidebar navigation
### Due Date
- [x] Inline date picker in task detail panel
- [x] Clear due date button
- [x] Due date display with color-coded urgency on task items
---
## Phase 5 — Polish
- [ ] UI polish and animations
- [ ] Responsive sidebar
- [ ] Better error handling/messages
- [ ] Loading states
---
## Phase 6 — Future / Optional
- [ ] Global hotkey (Ctrl+Shift+Space)
- [ ] System tray mode
- [ ] Backlinks between notes
- [ ] Graph view
- [ ] Export (PDF / HTML)
- [ ] Custom themes
- [ ] Tantivy search (if >5000 notes)
- [ ] Task dependencies (blocked by)
- [ ] Time estimates on tasks
- [ ] Calendar drag-and-drop rescheduling
- [ ] Week/day calendar views
---
## Rules
- No item is marked complete unless it is implemented and verified.
- New features must be added to this checklist before implementation.
- If it's not on this list, it's out of scope.