Commit Graph

167 Commits

Author SHA1 Message Date
65fe350209 docs(04-02): complete planning tab frontend overhaul plan
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 16:40:25 +01:00
d05aac0687 feat(04-02): overhaul PlanningView with empty state, pill tabs, and category filter
- Replace inline thread creation form with modal trigger
- Add educational empty state with 3-step workflow guide
- Add Active/Resolved pill tab selector replacing checkbox
- Add category filter dropdown for thread list
- Display category emoji + name badge on ThreadCard
- Add aria-hidden to decorative SVG icons for a11y
- Auto-format pre-existing indentation issues (spaces to tabs)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 16:38:48 +01:00
eb79ab671e feat(04-02): add CreateThreadModal and uiStore modal state
- Add createThreadModalOpen state to uiStore with open/close actions
- Create CreateThreadModal with name input and category dropdown
- Modal submits via useCreateThread with name + categoryId
- Fix pre-existing formatting in uiStore.ts (spaces to tabs)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 16:36:51 +01:00
4a31a16e0e docs(04-01): complete database thread categoryId plan
- SUMMARY.md documents 2 tasks, 1 deviation (test fixes)
- STATE.md advanced to plan 1/2 in phase 4
- ROADMAP.md marks 04-01 complete
- REQUIREMENTS.md marks DB-01 and PLAN-01 complete

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 16:33:40 +01:00
ed8508110f feat(04-01): update thread service, routes, and hooks for categoryId
- createThread now inserts categoryId from data
- getAllThreads joins categories table, returns categoryName/categoryEmoji
- updateThread accepts optional categoryId
- ThreadListItem interface includes category fields
- useCreateThread hook sends categoryId
- Fix test files to pass categoryId when creating threads

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 16:31:48 +01:00
629e14f60c feat(04-01): add categoryId to threads schema, Zod schemas, and test helper
- Add categoryId column with FK to categories on threads table
- Update createThreadSchema to require categoryId
- Update updateThreadSchema to allow optional categoryId
- Update test helper CREATE TABLE to include category_id

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 16:30:46 +01:00
92afac3eb7 docs(04): create phase plan 2026-03-15 16:27:47 +01:00
80496b7f50 docs(state): record phase 4 context session 2026-03-15 16:22:40 +01:00
8e270e4d98 docs(04): capture phase context 2026-03-15 16:22:32 +01:00
9a08e5f9fd docs: create milestone v1.1 roadmap (3 phases) 2026-03-15 16:11:17 +01:00
6975b4612f docs: define milestone v1.1 requirements 2026-03-15 16:08:42 +01:00
c348c65369 docs: start milestone v1.1 Fixes & Polish 2026-03-15 16:06:06 +01:00
261c1f9d02 chore: complete v1.0 MVP milestone
Archive roadmap, requirements, and phase directories to milestones/.
Evolve PROJECT.md with validated requirements and key decisions.
Reorganize ROADMAP.md with milestone grouping.
Delete REQUIREMENTS.md (fresh for next milestone).
v1.0
2026-03-15 15:49:45 +01:00
89368c2651 docs: update retrospective for v1.0 2026-03-15 15:49:35 +01:00
f556231a38 docs(phase-3): complete phase execution
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 12:57:45 +01:00
477be8e926 docs(03-03): complete visual verification plan for setups and dashboard
- Auto-approved checkpoint for all Phase 3 requirements
- All 10 plans across 3 phases complete (100%)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 12:54:40 +01:00
e1e30ba52b docs(03-02): complete setup frontend plan
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 12:52:38 +01:00
67099551d0 feat(03-02): setup list page, detail page, and item picker
- Create SetupCard component with name, item count, weight, cost display
- Build setups list page with inline create form and grid layout
- Build setup detail page with category-grouped items and sticky totals bar
- Create ItemPicker component in SlideOutPanel with category-grouped checkboxes
- Add onRemove prop to ItemCard for non-destructive setup item removal
- Setup detail has delete confirmation dialog with collection safety note
- Empty states for both setup list and setup detail pages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 12:50:54 +01:00
86a7a0def1 feat(03-02): navigation restructure, TotalsBar refactor, and setup hooks
- Move collection view from / to /collection with gear/planning tabs
- Rewrite / as dashboard with three summary cards (Collection, Planning, Setups)
- Refactor TotalsBar to accept optional stats/linkTo/title props
- Create DashboardCard component for dashboard summary cards
- Create useSetups hooks (CRUD + sync/remove item mutations)
- Update __root.tsx with route-aware TotalsBar, FAB visibility, resolve navigation
- Add item picker and setup delete UI state to uiStore
- Invalidate setups queries on item update/delete for stale data prevention
- Update routeTree.gen.ts with new collection/setups routes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 12:49:03 +01:00
c2b8985d37 docs(03-01): complete setup backend plan
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 12:44:40 +01:00
0f115a2a4b feat(03-01): implement setup backend with junction table
- Setup service with CRUD, syncSetupItems, removeSetupItem
- SQL aggregation for itemCount, totalWeight, totalCost via COALESCE
- Hono routes for all 7 endpoints with zValidator
- Mount setupRoutes at /api/setups
- All 87 tests pass (24 new setup tests)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 12:43:02 +01:00
1e4e74f8d2 test(03-01): add failing tests for setup backend
- Add setups and setupItems tables to DB schema
- Add Zod schemas for setup create/update/sync
- Add Setup/SetupItem types to shared types
- Add setup tables to test helper
- Write service and route tests (RED - no implementation yet)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 12:42:15 +01:00
6b773c6f79 docs(03): create phase plan for setups and dashboard 2026-03-15 12:32:23 +01:00
e633df7d0e docs(phase-3): add validation strategy 2026-03-15 12:27:18 +01:00
2424ecc0c2 docs(03): research phase domain 2026-03-15 12:26:27 +01:00
56258d7eed docs(state): record phase 3 context session 2026-03-15 12:22:31 +01:00
8532c5c4a2 docs(03): capture phase context 2026-03-15 12:22:25 +01:00
88140b994d docs(phase-2): complete phase execution 2026-03-15 11:54:54 +01:00
f0ba26ff88 docs(02-03): complete visual verification plan for planning threads
- All four THRD requirements verified working end-to-end in browser
- Phase 2 complete, STATE.md and ROADMAP.md updated

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 11:51:38 +01:00
edcef3fcda docs(02-02): complete thread frontend UI plan
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 11:48:10 +01:00
7d043a8585 feat(02-02): add thread detail page with candidate CRUD and resolution flow
- Create CandidateCard with edit, delete, and pick winner actions
- Create CandidateForm with same fields as ItemForm for candidate add/edit
- Build thread detail page with candidate grid and resolution banner
- Update root layout with candidate panel, delete dialog, and resolve dialog
- Hide FAB on thread detail pages, keep it for gear tab
- Resolution navigates back to planning tab after success
2026-03-15 11:46:19 +01:00
a9d624dc83 feat(02-02): add thread hooks, UI store, tab navigation, and thread list
- Create useThreads/useCandidates TanStack Query hooks
- Extend uiStore with candidate panel and resolve dialog state
- Add ThreadTabs component for gear/planning tab switching
- Add ThreadCard component with candidate count and price range chips
- Refactor index.tsx to tabbed HomePage with PlanningView
- Create placeholder thread detail route for navigation target
2026-03-15 11:44:17 +01:00
53d6fa445d docs(02-01): complete thread backend API plan
- Created 02-01-SUMMARY.md with execution results
- Updated STATE.md with phase 2 position and decisions
- Updated ROADMAP.md with plan progress
- Marked THRD-01 through THRD-04 requirements complete

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 11:41:19 +01:00
add3e3371d feat(02-01): add thread API routes and mount in server
- Thread CRUD: GET /, POST /, GET /:id, PUT /:id, DELETE /:id
- Candidate CRUD: POST /:id/candidates, PUT/DELETE nested candidates
- Resolution: POST /:id/resolve with validation and error handling
- Image cleanup on thread/candidate deletion
- Routes mounted at /api/threads in server index

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 11:39:15 +01:00
37c9999d07 test(02-01): add failing integration tests for thread API routes
- 14 integration tests covering all thread and candidate endpoints
- Thread CRUD, candidate CRUD, and resolution endpoint tests
- Covers error cases: 400 validation, 404 not found, resolved re-resolve

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 11:38:35 +01:00
1a8b91edca feat(02-01): implement thread service with CRUD and transactional resolution
- Thread CRUD: create, update, delete with cascade candidate cleanup
- Candidate CRUD: create, update, delete with all item-compatible fields
- getAllThreads with subquery aggregates for candidateCount and price range
- getThreadWithCandidates with candidate+category join
- resolveThread: atomic transaction creating collection item from candidate data
- Category fallback to Uncategorized on resolution if category deleted

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 11:37:53 +01:00
e146eeab80 test(02-01): add failing tests for thread service
- Add threads and threadCandidates tables to Drizzle schema
- Add Zod schemas for thread/candidate/resolve validation
- Add Thread/ThreadCandidate types to shared types
- Update test helper with threads and thread_candidates tables
- Write comprehensive failing tests for thread service

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 11:36:01 +01:00
2c4eb5b632 docs(02): create phase plan for planning threads 2026-03-15 11:30:50 +01:00
6e3f787bef docs(phase-2): add research and validation strategy 2026-03-15 11:25:17 +01:00
91c16b9b3c docs(phase-2): research planning threads domain 2026-03-15 11:24:28 +01:00
f390834e9d docs(state): record phase 2 context session 2026-03-15 11:18:31 +01:00
bdcb303418 docs(02): capture phase context 2026-03-15 11:18:26 +01:00
e1051e022b docs(phase-1): complete phase execution 2026-03-14 22:58:55 +01:00
55d47d4e33 fix(01): align image upload field name and wrap category delete in transaction 2026-03-14 22:58:41 +01:00
950bf2c287 docs(01-04): complete onboarding wizard and visual verification plan
- Phase 1 (Foundation and Collection) fully complete: 4/4 plans done
- Onboarding wizard with settings API and human-verified collection experience

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 22:54:05 +01:00
9fcbf0bab5 feat(01-04): add onboarding wizard with settings API and persisted state
- Settings API: GET/PUT /api/settings/:key with SQLite persistence
- useSettings hook with TanStack Query for settings CRUD
- OnboardingWizard: 3-step modal overlay (welcome, create category, add item)
- Root layout checks onboarding completion flag before rendering wizard
- Skip option available at every step, all paths persist completion to DB

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 22:51:25 +01:00
0084cc0608 docs(01-03): complete frontend collection UI plan
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 22:48:09 +01:00
12fd14ff41 feat(01-03): add slide-out panel, item form, category picker, and collection page
- CategoryPicker combobox with search, select, and inline create
- SlideOutPanel with backdrop, escape key, and slide animation
- ItemForm with all fields, validation, dollar-to-cents conversion
- Root layout with TotalsBar, panel, confirm dialog, and floating add button
- Collection page with card grid grouped by category, empty state

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 22:46:24 +01:00
b099a47eb4 feat(01-03): add data hooks, utilities, UI store, and foundational components
- API fetch wrapper with error handling and multipart upload
- Weight/price formatters for display
- TanStack Query hooks for items, categories, and totals with cache invalidation
- Zustand UI store for panel and confirm dialog state
- TotalsBar, CategoryHeader, ItemCard, ConfirmDialog, ImageUpload components

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 22:44:48 +01:00
a5df33a2d8 docs(01-02): complete backend API plan
- SUMMARY.md with 30 passing tests, 13 files, 3min duration
- STATE.md updated to plan 2/4 at 50% progress
- ROADMAP.md and REQUIREMENTS.md updated with COLL-01 through COLL-04

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 22:42:22 +01:00