chore: archive v2.2 User Experience Polish milestone
All checks were successful
CI / ci (push) Successful in 1m15s
CI / e2e (push) Has been skipped
CI / deploy (push) Has been skipped

Phases 28-31 archived to milestones/v2.2-phases/
Requirements and roadmap snapshots archived to milestones/

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-13 16:00:35 +02:00
parent 92b84d2cd6
commit 2853477a75
62 changed files with 586 additions and 96 deletions

View File

@@ -60,19 +60,21 @@ Help people make better gear decisions — discover what others use, compare rea
- ✓ MCP catalog tools (upsert_catalog_item, bulk_upsert_catalog) for agent seeding — v2.1
- ✓ Discovery landing page with catalog search, popular setups feed, recent items, trending categories — v2.1
- ✓ Profile page with Logto-powered account management (display name, bio, avatar, email, password, delete) — v2.2
- ✓ Image fit-within framing with dominant color background fill and crop editor — v2.2
- ✓ Catalog-driven onboarding flow with hobby picker, category-grouped item browser, and batch collection creation — v2.2
- ✓ Mobile icon-based action buttons on detail pages — v2.2
### Active
## Current Milestone: v2.2 User Experience Polish
## Current Milestone: v2.3 Global & Social Ready
**Goal:** Fix broken user-facing features and polish the experience for real users — working profiles, better image handling, refreshed onboarding, and mobile refinements.
**Goal:** Make GearBox work for a global audience with setup sharing, multi-currency support, and localization infrastructure.
**Target features:**
- Profile page with Logto integration for account management, branded login screens, email verification
- Image fit-within framing (letterbox/pillarbox) instead of hard crops
- Catalog-driven onboarding flow with visual refresh
- Mobile UX improvements (icon actions, touch refinements)
**Next milestone:** v2.3 Global & Social Ready — setup sharing system, multi-currency, i18n
- Setup sharing system with visibility toggle (private/link/public)
- Multi-currency support (USD/EUR/GBP) with user preference
- i18n foundation with translation framework and locale-aware formatting
### Future
@@ -96,19 +98,19 @@ Help people make better gear decisions — discover what others use, compare rea
## Context
Shipped through v2.0 with 23,970 LOC TypeScript across 210+ files. All milestones v1.0-v2.0 complete.
Shipped through v2.2 with 31 phases across 6 milestones. All milestones v1.0-v2.2 complete.
Tech stack: React 19, Hono, Drizzle ORM, PostgreSQL, TanStack Router/Query, Tailwind CSS v4, Lucide React, Recharts, framer-motion, all on Bun.
Primary use case is bikepacking gear but data model is hobby-agnostic.
Auth: External OIDC via Logto (browser sessions) + API keys (programmatic) + MCP OAuth (Claude).
Infrastructure: PostgreSQL, MinIO (S3-compatible image storage), Docker Compose for dev/prod.
Features: MCP server (21 tools), global item catalog with attribution and bulk import, user profiles, public setup sharing, catalog-driven gear flow, item/candidate detail pages, candidate ranking/comparison/impact preview. Public discovery landing page with catalog search, popular setups feed, recent items, and trending categories.
Features: MCP server (21 tools), global item catalog with attribution and bulk import, user profiles with Logto account management, public setup sharing, catalog-driven onboarding, fit-within image framing with crop editor, item/candidate detail pages, candidate ranking/comparison/impact preview. Public discovery landing page with catalog search, popular setups feed, recent items, and trending categories. Top nav + mobile bottom tab bar.
20+ test files (service-level, route-level integration, MCP). E2E tests pending rewrite for OIDC auth (backlog 999.1).
## Constraints
- **Runtime**: Bun — used as package manager and runtime
- **Design**: Light, airy, minimalist — white/light backgrounds, lots of whitespace, no visual clutter
- **Navigation**: Dashboard-based home page, not sidebar or top-nav tabs
- **Navigation**: Top nav bar (desktop) + bottom tab bar (mobile), discovery landing page for unauthenticated users
- **Auth**: External self-hosted provider — no in-house auth maintenance
- **Database**: PostgreSQL with Drizzle ORM
- **UGC**: Structured input only (ratings, predefined fields) — no freeform text until moderation exists