2025-09-03T00:42:46Z - 2026-09-03T00:42:46Z

Overview

152 active pull requests
1 active issue
Excluding merges, 2 authors have pushed 173 commits to main and 233 commits to all branches. On main, 384 files have changed and there have been 62450 additions and 19867 deletions.

152 pull requests merged by 2 users

Merged #156 perf(scanner): three high-impact speed optimizations 2026-09-01 18:18:14 -04:00

Merged #155 feat(scanner): add debug instrumentation for vision pipeline timing 2026-09-01 18:11:03 -04:00

Merged #151 feat(migrations): reconcile collaboration tables missed by initial-schema backfill (B3) 2026-07-06 12:27:46 -04:00

Merged #154 chore: sync agent pipeline v0.6.0 (keep local L1/L3) 2026-07-06 12:27:33 -04:00

Merged #149 feat(migrations): reconcile user_cards UNIQUE constraint per Option A (B6) 2026-06-14 09:18:23 -04:00

Merged #153 convoy: reconcile user profile schema missed by initial-schema backfill (reconcile-historical-add-scripts B5) 2026-06-14 09:18:20 -04:00

Merged #150 feat(migrations): reconcile collections columns missed by initial-schema backfill (B2) 2026-06-14 09:18:05 -04:00

Merged #152 feat(migrations): reconcile favorites system missed by initial-schema backfill (B4) 2026-06-14 09:11:27 -04:00

Merged #148 feat(migrations): reconcile cards columns missed by initial-schema backfill (B1 of reconcile-historical-add-scripts) 2026-06-14 09:11:08 -04:00

Merged #147 convoy: render-test regression-lock for ScanDisambiguationDialog (PR #144) 2026-06-13 10:22:12 -04:00

Merged #146 refactor(deck): useDeckDetail + DeckDetailView (Brief 3) 2026-06-13 02:14:46 -04:00

Merged #145 refactor(decks): useDecksPage + DecksPageView (Brief 3) 2026-06-13 02:14:43 -04:00

Merged #143 refactor(deck): extract grouped card list panel (Brief 2) 2026-06-13 02:11:50 -04:00

Merged #142 refactor(decks): extract edit modal and deck grid (Brief 2) 2026-06-13 02:11:48 -04:00

Merged #144 fix(scanner): import useFocusTrap in ScanDisambiguationDialog 2026-06-13 02:00:47 -04:00

Merged #137 refactor(deck): extract grouping lib and stats sidebar (Brief 1) 2026-06-13 01:44:17 -04:00

Merged #136 refactor(decks): extract format utils and create modal (Brief 1) 2026-06-13 01:44:14 -04:00

Merged #141 convoy: scripts/rotate-admin-password.js — one-shot admin rotation (rotate-default-admin) 2026-06-13 00:23:44 -04:00

Merged #140 convoy: flip visual-diff to a hard merge gate (harden-visual-diff-gate brief 2/2) 2026-06-12 23:03:17 -04:00

Merged #139 chore(visual): refresh baselines from https://tcg-vault-4mwg6pitb-randall-stillwells-projects.vercel.app 2026-06-12 22:54:10 -04:00

Merged #138 convoy: add seed-visual-baselines workflow (harden-visual-diff-gate brief 1/2) 2026-06-12 22:37:50 -04:00

Merged #135 chore(docs): sweep stale visual-baseline references + queue gate-hardening convoy 2026-06-12 21:30:34 -04:00

Merged #134 feat(convoy-metrics): un-gitignore .metrics.jsonl + add CI gate on convoy PRs 2026-06-12 18:46:28 -04:00

Merged #133 convoy: forbidden-pattern gate + AGENTS.md docs (briefs 3+4) 2026-06-06 01:18:21 -04:00

Merged #132 convoy: migrate CI to self-hosted axiom runners (briefs 1+2) 2026-06-06 00:46:31 -04:00

Merged #131 refactor(glass): migrate Button.secondary + Input + MobileNav off bespoke glass-surface 2026-06-05 07:23:55 -04:00

Merged #130 docs(convoys): close unify-glass-panel-surfaces + cleanup-card-item-list-and-share-modal-palette 2026-06-05 07:18:30 -04:00

Merged #129 refactor(share-modal): tokenize interior palette (cleanup Brief 2) 2026-06-04 17:55:39 -04:00

Merged #128 refactor(card-item): tokenize list-mode palette (cleanup Brief 1) 2026-06-04 17:55:36 -04:00

Merged #127 ci(forbidden-patterns): add Check 7/7 — no bespoke var(--glass-surface-*) (Brief 7) 2026-06-04 17:47:26 -04:00

Merged #126 ci: slash GitHub Actions minutes via paths-ignore + consolidation + caching 2026-06-04 17:40:37 -04:00

Merged #125 refactor(bulk-toolbar): migrate to .glass-panel-strong + token sweep (Brief 4) 2026-06-04 17:25:17 -04:00

Merged #124 refactor(layout): migrate 3 floating popovers to .glass-panel-strong (Brief 3) 2026-06-04 17:25:14 -04:00

Merged #123 feat(GlassSurface): add cornerLights prop (subtle | chrome | none) (Brief 1) 2026-06-04 16:30:32 -04:00

Merged #122 refactor(styles): retire .card; migrate 7 consumers to .glass-panel (Brief 5) 2026-06-04 16:30:29 -04:00

Merged #121 refactor(auth): migrate login + signup form cards to .glass-panel-strong (Brief 2) 2026-06-04 16:30:26 -04:00

Merged #120 refactor(landing): use .page-header-glass for the nav bar (Brief 6) 2026-06-04 16:30:23 -04:00

Merged #119 docs(convoys): unify-glass-panel-surfaces + cleanup palette — conductor seed + architect plan 2026-06-04 15:09:41 -04:00

Merged #118 refactor(design): tone down card corner-light gradients to ~55% intensity 2026-06-04 15:06:25 -04:00

Merged #117 refactor(design): site-wide sweep — broken Tailwind tokens, rounded corners, SearchBar primitive 2026-06-04 15:06:22 -04:00

Merged #116 refactor(design): move light response onto chip borders; cut directional drop shadows 2026-06-04 13:31:54 -04:00

Merged #115 feat(design): warm↔cool gradient + edge-light response on chips 2026-06-04 13:23:22 -04:00

Merged #114 refactor(layout): split sidebar into nav+badge chips; move help/theme to topbar dropdown 2026-06-04 13:16:10 -04:00

Merged #113 refactor(layout): floating sidebar + floating top header 2026-06-04 13:07:17 -04:00

Merged #112 refactor(design-system): subtle ember border on nav hover/focus 2026-06-04 13:00:33 -04:00

Merged #111 refactor(design-system): spotlight-only hover — drop floating-chip tint, tone down gradient 2026-06-04 12:57:10 -04:00

Merged #110 refactor(design-system): redesign-v2 — bolder hover + mouse-tracking spotlight + active gradient 2026-06-04 12:52:11 -04:00

Merged #109 refactor(design-system): redesign-v2 refinements — tone down + dedupe profile + seamless header 2026-06-04 12:45:57 -04:00

Merged #108 docs(convoys): mark redesign-v2-from-mockups epic shipped 2026-06-04 12:24:34 -04:00

Merged #107 feat(design-system): redesign v2 #7 + #8 — dashboard rebuild + Card Spotlight rail 2026-06-04 12:21:59 -04:00

Merged #106 feat(design-system): redesign v2 #6 — card grid outer-glow 2026-06-04 12:14:54 -04:00

Merged #105 feat(design-system): redesign v2 #3 — TopSearchBar + Cmd+K + page-header-glass sweep 2026-06-04 12:14:50 -04:00

Merged #104 feat(design-system): redesign v2 #4 — StatCard primitive + dashboard wiring 2026-06-04 11:59:54 -04:00

Merged #103 feat(design-system): redesign v2 #2 + #5 — sidebar pill + wordmark + Daily Ember 2026-06-04 11:59:45 -04:00

Merged #102 feat(design-system): redesign v2 #1 — corner-ember gradient + dark default 2026-06-04 11:48:49 -04:00

Merged #101 fix(design-system): unblock body hearth gradient + boost intensity 2026-06-04 10:39:29 -04:00

Merged #100 feat(design-system): hearth body gradient + glass page header strips 2026-06-04 10:12:25 -04:00

Merged #99 fix(design-system): compose rim + elevation tokens correctly (panels actually have chrome now) 2026-06-03 23:49:06 -04:00

Merged #98 fix(design-system): glass-panel rules now actually apply backdrop-filter 2026-06-03 22:38:38 -04:00

Merged #97 feat(design-system): sweep authenticated body panels to glass 2026-06-03 22:28:52 -04:00

Merged #96 feat(design-system): finish Liquid Glass — close all remaining sub-convoys 2026-06-03 21:34:07 -04:00

Merged #95 feat(design-system): Liquid Glass redesign portfolio — foundation + primitives + Layout 2026-06-03 21:12:33 -04:00

Merged #94 refactor(card-editor): useCardEditor + CardEditorView (Brief 3) 2026-06-03 19:18:31 -04:00

Merged #93 refactor(deck-builder): useDeckBuilder + DeckBuilderView (Brief 3) 2026-06-03 19:18:28 -04:00

Merged #92 refactor(card-editor): extract preview and form components (Brief 2) 2026-06-03 18:29:11 -04:00

Merged #91 refactor(deck-builder): extract deck list and card browser (Brief 2) 2026-06-03 18:29:08 -04:00

Merged #90 refactor(card-editor): extract search panel component (Brief 1) 2026-06-03 18:24:43 -04:00

Merged #89 refactor(deck-builder): extract stats lib and stats bar (Brief 1) 2026-06-03 18:24:40 -04:00

Merged #88 refactor(collection): useCollectionView + view (Brief 3) 2026-06-03 18:10:21 -04:00

Merged #87 refactor(collections): useCollectionsPage + view (Brief 3) 2026-06-03 18:10:17 -04:00

Merged #86 refactor(card): useCardDetail + CardDetailView (Brief 3) 2026-06-03 18:10:14 -04:00

Merged #85 refactor(collection): extract edit + delete modals (Brief 2) 2026-06-03 17:58:12 -04:00

Merged #84 refactor(collections): extract edit + success modals (Brief 2) 2026-06-03 17:58:09 -04:00

Merged #83 refactor(card): extract deck modal (Brief 2) 2026-06-03 17:58:06 -04:00

Merged #82 refactor(collections): extract create modal + tag lib (Brief 1) 2026-06-03 17:53:09 -04:00

Merged #81 refactor(card): extract quantity modal (Brief 1) 2026-06-03 17:53:04 -04:00

Merged #80 refactor(collection): extract CSV export lib (Brief 1) 2026-06-03 17:53:01 -04:00

Merged #79 refactor(cards): extract useCardsPage + CardsPageView (Brief 3) 2026-06-03 13:49:25 -04:00

Merged #78 refactor(cards): extract PublicCardsView (Brief 2) 2026-06-03 13:06:25 -04:00

Merged #77 refactor(cards): extract Card3D component (Brief 1) 2026-06-03 09:57:49 -04:00

Merged #76 refactor(scanner): extract ScannerPageView component (page Brief 3) 2026-06-02 22:56:34 -04:00

Merged #75 refactor(scanner): extract useScannerQueue hook (page Brief 2) 2026-06-02 22:28:25 -04:00

Merged #74 refactor(scanner): extract session and route API libs (page Brief 1) 2026-06-02 17:15:27 -04:00

Merged #73 refactor(scanner): extract CameraScannerView component 2026-06-02 17:04:03 -04:00

Merged #72 refactor(scanner): extract identification hook (Brief 5) 2026-06-02 16:59:03 -04:00

Merged #71 refactor(scanner): extract camera lifecycle hook (Brief 4) 2026-06-02 16:44:56 -04:00

Merged #70 refactor(scanner): extract card identification pipeline (Brief 3) 2026-06-02 16:34:13 -04:00

Merged #69 refactor(scanner): extract card detection and tracking lib (Brief 2) 2026-06-02 13:52:40 -04:00

Merged #68 refactor(auth): add withAdmin() wrapper for admin API routes 2026-06-02 13:42:22 -04:00

Merged #67 refactor(scanner): extract disambiguation dialog and upload helpers 2026-06-02 12:01:33 -04:00

Merged #66 chore(convoys): close shipped convoy metadata and refresh ship-readiness 2026-06-02 12:01:28 -04:00

Merged #65 ci: trigger visual diff on tests/visual changes 2026-06-02 12:01:23 -04:00

Merged #64 ci: run migrations against Postgres service container in CI 2026-06-02 12:01:19 -04:00

Merged #63 fix(lint): clear lib/config baseline and make CI lint blocking 2026-06-02 02:03:42 -04:00

Merged #62 fix(lint): clear ESLint baseline in pages/ 2026-06-02 02:03:39 -04:00

Merged #61 fix(lint): clear ESLint baseline in components/ 2026-06-02 02:03:36 -04:00

Merged #60 chore: backfill system collection descriptions 2026-06-02 01:42:23 -04:00

Merged #59 Remove dead Lorcana import route and CLI script 2026-06-02 01:42:18 -04:00

Merged #58 chore: seed Linux Playwright visual baseline for homepage 2026-06-02 01:42:14 -04:00

Merged #57 Purge direct @neondatabase/serverless dependency 2026-06-02 01:42:11 -04:00

Merged #56 Remove Quick Login + scanner a11y polish 2026-05-29 23:58:41 -04:00

Merged #55 Vocabulary cleanup follow-up 2026-05-29 11:01:03 -04:00

Merged #54 Align UI copy: My Collection vs Lists 2026-05-29 10:53:41 -04:00

Merged #53 Normalize collector numbers in catalog match and harden scanner adds 2026-05-28 15:45:55 -04:00

Merged #52 Switch Pokémon catalog sync to pokemon-tcg-data GitHub repo 2026-05-28 12:56:01 -04:00

Merged #51 Reconcile pending scan submissions after catalog sync 2026-05-28 10:47:59 -04:00

Merged #50 Add catalog sync button to admin panel 2026-05-28 10:18:02 -04:00

Merged #49 Prioritize newest sets in catalog sync cron 2026-05-27 22:49:58 -04:00

Merged #48 feat(catalog): weekly Vercel Cron sync for MTG and Pokémon sets 2026-05-27 15:59:59 -04:00

Merged #47 test(scanner): cover redesign API and component surfaces 2026-05-27 15:28:04 -04:00

Merged #46 fix(api): validate quantity on POST /api/user-cards 2026-05-27 15:25:21 -04:00

Merged #45 fix(scanner): close redesign a11y audit findings 2026-05-27 15:22:18 -04:00

Merged #44 feat(scanner): persist scan captures to Blob (Brief 3) 2026-05-27 14:57:26 -04:00

Merged #43 feat(scanner): condition, foil, quantity, ownership badge (Brief 2) 2026-05-27 14:54:34 -04:00

Merged #42 feat(scanner): stack-destination picker and auto-route (Brief 1) 2026-05-27 14:50:54 -04:00

Merged #41 fix(scanner): idempotent Mark-Owned and reliable bulk actions 2026-05-27 14:44:47 -04:00

Merged #40 fix(scanner): catalog gap review path + not-listed disambiguation 2026-05-27 14:42:52 -04:00

Merged #39 fix(scanner): printing disambiguation + Layer-1 500 2026-05-27 14:10:47 -04:00

Merged #38 feat(scanner): AI Gateway + Layer-1 OCR (convoy #3) 2026-05-27 13:59:59 -04:00

Merged #37 fix(scanner): Gemini model + readable scan errors 2026-05-27 13:42:37 -04:00

Merged #36 fix(auth): scanner redirect + admin card-editor crash 2026-05-27 13:36:59 -04:00

Merged #35 feat(scanner): server-side scan pipeline (convoy #2) 2026-05-27 09:47:05 -04:00

Merged #34 fix(security): stop leaking Gemini API key to browsers 2026-05-27 09:41:48 -04:00

Merged #33 docs: post-convoy cleanup for 7-convoy 2026-05-26 wave 2026-05-27 00:15:21 -04:00

Merged #32 feat(infra): adopt node-pg-migrate + backfill initial schema migration 2026-05-27 00:01:59 -04:00

Merged #31 refactor(auth): collapse lib/auth-context.js + lib/admin-auth.js onto lib/use-auth.js 2026-05-26 23:58:08 -04:00

Merged #30 refactor(db): collapse @neondatabase/serverless onto @vercel/postgres + delete lib/database.js 2026-05-26 23:54:01 -04:00

Merged #29 chore(lint): forbid require() in scripts/** under "type": "module" 2026-05-26 23:53:31 -04:00

Merged #28 chore(components): remove dead user prop from MobileNavigation 2026-05-26 23:53:29 -04:00

Merged #27 fix(scripts): require TEST_USERS_PASSWORD + purge weak literals from test-user helpers 2026-05-26 23:53:25 -04:00

Merged #26 ci(workflows): exclude pages/api/** from visual-diff path filter 2026-05-26 23:51:22 -04:00

Merged #25 fix(scripts): convert reset-db.js to ESM + require ADMIN_INITIAL_PASSWORD 2026-05-26 23:08:46 -04:00

Merged #24 fix(migration): rename-admin-email crashes — neon() returns array, not { rows } 2026-05-25 12:30:10 -04:00

Merged #22 docs: post-convoy cleanup for pick-a-name — first post-P0 P1 convoy 2026-05-25 05:10:12 -04:00

Merged #21 feat(brand): unify on Deck Hearth across in-repo strings + infra (P1 brand decision) 2026-05-25 03:28:29 -04:00

Merged #20 feat(security): rate-limit search/upload/import + gate import routes (P0 #6 - closes last P0) 2026-05-25 00:00:00 -04:00

Merged #19 fix(security): drop wildcard CORS + redundant OPTIONS from 24 API routes (P0 #5 PARTIAL → RESOLVED) 2026-05-24 21:41:38 -04:00

Merged #18 feat(test): adopt @playwright/test + ship playwright.config.js + visual scaffold (P1 #10 step 2) 2026-05-24 20:25:18 -04:00

Merged #17 fix(ci): plumb VERCEL_AUTOMATION_BYPASS_SECRET into preview-smoke + visual-diff 2026-05-24 17:26:22 -04:00

Merged #15 fix(layout+pages): default user=null + page audit sweep (P0 #7) 2026-05-24 15:31:37 -04:00

Merged #16 fix(ci): scoped permissions for preview-smoke + visual-diff workflows 2026-05-24 15:22:13 -04:00

Merged #14 docs: post-convoy cleanup for drop-public-setup 2026-05-23 18:06:35 -04:00

Merged #13 feat(seed): require ADMIN_INITIAL_PASSWORD + convert setup-db to ESM (drop-public-setup) 2026-05-23 18:02:44 -04:00

Merged #12 docs: post-convoy cleanup for fix-auth-bypass 2026-05-23 13:22:50 -04:00

Merged #11 test(auth): add vitest harness + 16 auth-focused unit tests (Brief 5 of fix-auth-bypass) 2026-05-23 12:12:15 -04:00

Merged #10 fix(api): return 401 (not 500) on unauthenticated cards-collection writes 2026-05-23 12:04:55 -04:00

Merged #9 fix(auth): tighten public auth surface — CORS + rate limit (Brief 4 of fix-auth-bypass) 2026-05-23 11:57:50 -04:00

Merged #8 fix(auth): remove synthetic-admin bypass (Brief 2 of fix-auth-bypass) 2026-05-23 11:57:24 -04:00

Merged #6 fix(auth): centralize JWT secret + 24h TTL (Brief 1 of fix-auth-bypass) 2026-05-23 11:40:51 -04:00

Merged #7 fix(api): delete dev endpoints + CI guard (Brief 3 of fix-auth-bypass) 2026-05-23 11:40:44 -04:00

Merged #5 docs(AGENTS): reflect bump-next-js outcome (Next 16, ESLint v9, typescript devDep) 2026-05-23 10:36:44 -04:00

Merged #4 bump: next 15.4.3 → 16.2.6 + ESLint flat config (v9 fallback) + typescript devDep 2026-05-23 03:31:27 -04:00

1 issue created by 1 user

Opened #23 agent-context: behind 0.3.0 2026-05-25 11:44:43 -04:00