# Milestones ## v2.0 Platform Foundation (Shipped: 2026-04-08) **Phases completed:** 10 phases, 32 plans **Timeline:** 22 days (2026-03-17 to 2026-04-08) **Codebase:** 23,970 LOC TypeScript (17,859 src + 6,111 tests), 210 files changed (+47,370 / -2,244) **Key accomplishments:** - PostgreSQL migration: 13 pgTable definitions, async services, PGlite test infrastructure, Docker Compose - External OIDC authentication via Logto with three-way auth middleware (browser sessions, API keys, MCP OAuth) - Multi-user data model with userId on all entities, cross-user isolation, and composite constraints - S3 object storage via MinIO replacing local filesystem for all image operations - Global item catalog with search, owner count aggregation, idempotent seeding, and 18-item bikepacking catalog - User profiles with avatar, bio, public setup sharing, and visibility toggle - Reference item model with COALESCE merge pattern for transparent global-to-personal data overlay - Tag system for global item discovery with AND-filtered search - Global FAB with animated mini menu and full-screen catalog search overlay with tag chip filtering - Item and catalog detail pages replacing slide-out panels, with edit mode toggle - Add-from-catalog flow for both collection items and thread candidates - Manual entry fallback with non-functional catalog submission prompt **Archive:** `.planning/milestones/v2.0-ROADMAP.md`, `.planning/milestones/v2.0-REQUIREMENTS.md` --- ## v1.3 Research & Decision Tools (Shipped: 2026-04-08) **Phases completed:** 4 phases, 6 plans **Timeline:** 23 days (2026-03-16 to 2026-04-08) **Codebase:** ~8,300 LOC TypeScript, 52 files changed (+3,106 / -158) **Key accomplishments:** - Pros/cons text fields on candidates with full-stack support (schema, service, Zod, form, card indicator) - Candidate ranking with sortOrder column, drag-to-reorder UI, and gold/silver/bronze rank badges - Side-by-side comparison table with sticky labels, weight/price delta highlighting, and resolved-thread winner marking - Setup impact preview showing per-candidate weight and cost deltas against a selected setup with replacement detection **Archive:** `.planning/milestones/v1.3-ROADMAP.md`, `.planning/milestones/v1.3-REQUIREMENTS.md` --- ## v1.2 Collection Power-Ups (Shipped: 2026-03-16) **Phases completed:** 3 phases, 6 plans, 11 tasks **Timeline:** 3 days (2026-03-14 → 2026-03-16) **Codebase:** 7,310 LOC TypeScript, 66 files changed (+7,243 / -206) **Key accomplishments:** - Weight unit conversion (g/oz/lb/kg) with segmented toggle wired across all 8 display call sites - Candidate status tracking (researching/ordered/arrived) with clickable StatusBadge popup - Sticky search/filter toolbar with text search and icon-aware CategoryFilterDropdown - Per-setup item classification (base/worn/consumable) with click-to-cycle badge - Recharts donut chart with category/classification toggle, hover tooltips, and weight subtotals - Classification-preserving sync that maintains metadata across atomic setup re-sync **Archive:** `.planning/milestones/v1.2-ROADMAP.md`, `.planning/milestones/v1.2-REQUIREMENTS.md` --- ## v1.1 Fixes & Polish (Shipped: 2026-03-15) **Phases completed:** 3 phases, 7 plans **Timeline:** 1 day (2026-03-15) **Codebase:** 6,134 LOC TypeScript, 65 files changed (+5,049 / -1,109) **Key accomplishments:** - Fixed threads table and thread creation with categoryId support, modal dialog flow - Overhauled planning tab with educational empty state, pill tabs, and category filter - Fixed image display bug (Zod schemas missing imageFilename — silently stripped by validator) - Redesigned image upload as hero preview area with 4:3 placeholders on all cards - Migrated categories from emoji to Lucide icons with 119-icon curated picker - Built IconPicker component with search, 8 group tabs, portal popover **Archive:** `.planning/milestones/v1.1-ROADMAP.md`, `.planning/milestones/v1.1-REQUIREMENTS.md` --- ## v1.0 MVP (Shipped: 2026-03-15) **Phases completed:** 3 phases, 10 plans **Timeline:** 2 days (2026-03-14 → 2026-03-15) **Codebase:** 5,742 LOC TypeScript, 53 commits, 114 files **Key accomplishments:** - Full gear collection with item CRUD, categories, weight/cost totals, and image uploads - Planning threads with candidate comparison and thread resolution into collection - Named setups (loadouts) composed from collection items with live totals - Dashboard home page with summary cards linking to all features - Onboarding wizard for first-time setup experience - Complete test suite with service-level and route-level integration tests **Archive:** `.planning/milestones/v1.0-ROADMAP.md`, `.planning/milestones/v1.0-REQUIREMENTS.md` ---