329bfce379
feat(27-02): add /setups top-level route page
...
- Creates src/client/routes/setups/index.tsx
- Renders SetupsView inside standard max-w-7xl page container
- Follows existing createFileRoute pattern from $setupId.tsx sibling
2026-04-10 23:43:33 +02:00
2286e428a0
fix(27): revise plans based on checker feedback
2026-04-10 23:40:11 +02:00
0f3e85f7c4
docs(27): create phase plan
2026-04-10 23:32:19 +02:00
078694c124
docs(phase-27): add validation strategy
2026-04-10 23:27:04 +02:00
9bb8f8faa2
docs(27): research phase — top nav restructure and search bar rethink
2026-04-10 23:26:18 +02:00
c5b4dacc1a
docs(27): add phase 27 to roadmap
2026-04-10 23:22:24 +02:00
d6ed015b85
docs(state): record phase 27 context session
2026-04-10 23:20:30 +02:00
510ef9fce3
docs(27): capture phase context
2026-04-10 23:20:21 +02:00
fbf6fd449a
docs: remove backlog 999.3 — public access already shipped in phase 24
2026-04-10 23:14:21 +02:00
e367e152e0
docs: add backlog item 999.11 — marketing website (www vs app split)
2026-04-10 23:11:04 +02:00
24a2725e2c
docs: add backlog items 999.5–999.10 — legal pages, admin panel, feedback, analytics, mobile app, monetization
2026-04-10 23:10:40 +02:00
2a00b2d31f
docs: add backlog item 999.4 — top nav restructure and search bar rethink
CI / ci (push) Successful in 1m11s
CI / e2e (push) Has been skipped
CI / deploy (push) Successful in 7s
2026-04-10 17:21:51 +02:00
6e3ce4a31f
fix: resolve biome lint errors in discovery files
...
CI / ci (push) Successful in 1m8s
CI / e2e (push) Has been skipped
CI / deploy (push) Successful in 14s
Remove unused functions and imports from route tests, fix array index key
warnings in skeleton components, apply biome formatting.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 15:15:58 +02:00
c98995288b
docs(phase-26): evolve PROJECT.md after phase completion
CI / ci (push) Failing after 10s
CI / deploy (push) Has been skipped
CI / e2e (push) Has been skipped
2026-04-10 15:08:50 +02:00
c892800969
docs(phase-26): complete phase execution
2026-04-10 15:08:18 +02:00
31a72c68f3
docs(26-03): complete discovery landing page plan
...
- 26-03-SUMMARY.md: landing page rewrite and PublicSetupCard enhancement
- STATE.md: advanced to phase complete, recorded decisions
- ROADMAP.md: phase 26 marked complete (3/3 plans)
- REQUIREMENTS.md: DISC-01 through DISC-05 marked complete
2026-04-10 15:03:00 +02:00
8aaf4352ed
feat(26-03): rewrite landing page as public discovery page
...
- Replace DashboardPage with LandingPage using discovery hooks
- Add HeroSection with Discover Gear heading and catalog search trigger
- Add PopularSetupsSection using useDiscoverySetups with PublicSetupCard
- Add RecentItemsSection using useDiscoveryItems with GlobalItemCard
- Add TrendingCategoriesSection using useDiscoveryCategories with pills
- Conditional Go to Collection CTA for authenticated users
- Loading skeletons with animate-pulse for all three sections
- Empty state handling: sections return null when no data
- SectionSkeleton helper for consistent loading states
- All clickable elements have cursor-pointer
2026-04-10 15:01:49 +02:00
0bf1c68043
feat(26-03): enhance PublicSetupCard with itemCount and creatorName
...
- Add optional itemCount and creatorName fields to PublicSetupCardProps
- Render item count badge (blue pill) when itemCount > 0
- Render creator attribution line when creatorName is present
- Reorder card layout: name, creator, then count/date row
- Add cursor-pointer to Link className
- Backward compatible: existing usages passing only id/name/createdAt unaffected
2026-04-10 15:00:57 +02:00
0b2e355bf8
docs(26-02): complete discovery routes and hooks plan
2026-04-10 14:59:58 +02:00
747a1c3727
feat(26-02): React Query hooks for discovery data
...
- Create useDiscoverySetups, useDiscoveryItems, useDiscoveryCategories hooks
- Export DiscoverySetup and DiscoveryCategory interfaces
- Set staleTime 2min for setups/items, 5min for categories
2026-04-10 14:57:53 +02:00
0323e0cd33
feat(26-02): discovery HTTP routes, server registration, and route tests
...
- Create src/server/routes/discovery.ts with GET /setups, /items, /categories handlers
- Register discoveryRoutes in src/server/index.ts with browseTier rate limiting
- Add auth skip for /api/discovery/* GET requests in auth middleware
- Create tests/routes/discovery.test.ts with 10 tests covering all endpoints and pagination
2026-04-10 14:57:35 +02:00
a00b90d97a
docs(26-01): complete discovery service plan
...
- SUMMARY.md: discovery service with cursor pagination
- STATE.md: advanced to plan 2, added decisions, updated progress to 71%
- ROADMAP.md: phase 26 in progress (1/3 plans)
- REQUIREMENTS.md: DISC-02, DISC-03, DISC-04, INFR-02 marked complete
2026-04-10 14:55:15 +02:00
d1f8a7aa4c
feat(26-01): implement discovery service with cursor pagination
...
- getPopularSetups: public setups ordered by item count desc, composite cursor pagination
- getRecentGlobalItems: global items ordered by createdAt desc, ISO timestamp cursor
- getTrendingCategories: category counts ordered desc, null categories excluded, simple limit
- Shared CursorPage<T> response shape with hasMore and nextCursor fields
2026-04-10 14:54:13 +02:00
06b6e935f2
test(26-01): add failing tests for discovery service
...
- getPopularSetups: ordering, privacy filter, cursor pagination, creatorName
- getRecentGlobalItems: ordering, cursor pagination, second page deduplication
- getTrendingCategories: ordering by count desc, null category exclusion, empty state
2026-04-10 14:53:09 +02:00
2f88ead599
fix(26): revise plans based on checker feedback
2026-04-10 14:48:44 +02:00
9226dd3d90
docs(26): create phase plan
2026-04-10 14:45:38 +02:00
9336cd80ed
docs(phase-26): add research and validation strategy
2026-04-10 14:38:53 +02:00
6b446033b5
docs(phase-26): research discovery landing page
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-10 14:38:10 +02:00
274bced96d
docs(state): record phase 26 context session
2026-04-10 14:33:04 +02:00
dbab91a3c7
docs(26): capture phase context
2026-04-10 14:32:56 +02:00
b01625473f
docs: capture 4 todos - storage tests, image bugs, manufacturer entity
CI / ci (push) Successful in 1m5s
CI / deploy (push) Has been skipped
CI / e2e (push) Has been skipped
2026-04-10 11:24:26 +02:00
77b84dd208
docs: capture todo - Add cursor pointer to all clickable links
2026-04-10 11:17:56 +02:00
6a1572a817
docs(phase-25): evolve PROJECT.md after phase completion
CI / ci (push) Successful in 1m18s
CI / e2e (push) Has been skipped
CI / deploy (push) Has been skipped
2026-04-10 11:13:50 +02:00
1789ee9093
docs(phase-25): complete phase execution
2026-04-10 11:13:18 +02:00
aeb3402576
docs(25-02): complete HTTP routes, MCP catalog tools, and attribution display plan
2026-04-10 11:08:16 +02:00
fc9a9134e8
chore(25-02): apply biome formatter to task 1 and 2 files
2026-04-10 11:06:11 +02:00
e4a65314bd
feat(25-02): add attribution display on catalog detail page
...
- GlobalItem interface extended with sourceUrl, imageCredit, imageSourceUrl fields
- Attribution block below image: Photo credit and source link when present
- Product page link (sourceUrl) at bottom of detail page
- Image div mb-6 moved to attribution paragraph for consistent spacing
2026-04-10 11:05:52 +02:00
df6c75f164
feat(25-02): add MCP catalog tools upsert_catalog_item and bulk_upsert_catalog
...
- New catalog.ts with catalogToolDefinitions and registerCatalogTools
- upsert_catalog_item: single item upsert with full attribution fields (SEED-03)
- bulk_upsert_catalog: batch upsert up to 100 items with created/updated counts
- Registered in createMcpServer after image tools
- 6 new MCP catalog tool tests passing
2026-04-10 11:03:50 +02:00
6491615b1d
feat(25-02): add POST single and bulk upsert routes for global items
...
- POST /api/global-items upserts single item via upsertGlobalItem service
- POST /api/global-items/bulk upserts up to 100 items via bulkUpsertGlobalItems service
- Zod validation via @hono/zod-validator with upsertGlobalItemSchema and bulkUpsertGlobalItemsSchema
2026-04-10 11:02:49 +02:00
25f590247c
test(25-02): add failing tests for POST single and bulk upsert routes
2026-04-10 11:02:28 +02:00
9dbf019466
docs(25-01): complete catalog enrichment data layer plan
...
- SUMMARY.md: attribution columns, upsert service, Zod schemas
- STATE.md: advance to plan 2, add decisions
- ROADMAP.md: update phase 25 progress
- REQUIREMENTS.md: mark CATL-01, CATL-02, CATL-05 complete
2026-04-10 10:59:58 +02:00
c8ebbf8139
feat(25-01): Zod schemas, upsert service functions, passing tests
...
- Add upsertGlobalItemSchema and bulkUpsertGlobalItemsSchema to schemas.ts
- Add UpsertGlobalItemInput and BulkUpsertGlobalItemsInput types to types.ts
- Implement upsertGlobalItem with onConflictDoUpdate and tag sync
- Implement bulkUpsertGlobalItems processing array in single transaction
- Fix migration 0003 to only add new columns + unique constraint
- All 21 tests pass including 8 new upsert operation tests
2026-04-10 10:58:36 +02:00
9093a2c8f6
test(25-01): add failing tests for upsertGlobalItem and bulkUpsertGlobalItems
...
- Import upsertGlobalItem and bulkUpsertGlobalItems (not yet exported)
- Tests cover: create, conflict update, attribution fields, tag sync
- Tests cover: empty tags clear, tags omitted leaves untouched
- Tests cover: bulk upsert counts (created vs updated)
2026-04-10 10:56:54 +02:00
39ef9cc433
feat(25-01): add attribution columns and unique constraint to globalItems
...
- Add sourceUrl, imageCredit, imageSourceUrl nullable columns
- Add unique constraint on (brand, model) pair
- Generate migration 0003_loving_serpent_society.sql
2026-04-10 10:55:55 +02:00
b6970c9a04
fix(25): revise plans based on checker feedback
2026-04-10 10:51:30 +02:00
d9d9532399
docs(25): create phase plan for catalog enrichment and agent tools
2026-04-10 10:45:22 +02:00
6c0c31350e
docs(phase-25): add validation strategy
2026-04-10 10:39:10 +02:00
bc2a532238
docs(25): research catalog enrichment and agent tools phase
2026-04-10 10:38:26 +02:00
e805269485
docs(state): record phase 25 context session
2026-04-10 10:33:15 +02:00
56bea00e61
docs(25): capture phase context
2026-04-10 10:33:06 +02:00