2025-09-03T00:42:46Z - 2026-09-03T00:42:46Z
Overview
152 pull requests merged by 2 users
Merged
#156 perf(scanner): three high-impact speed optimizations
Merged
#155 feat(scanner): add debug instrumentation for vision pipeline timing
Merged
#151 feat(migrations): reconcile collaboration tables missed by initial-schema backfill (B3)
Merged
#154 chore: sync agent pipeline v0.6.0 (keep local L1/L3)
Merged
#149 feat(migrations): reconcile user_cards UNIQUE constraint per Option A (B6)
Merged
#153 convoy: reconcile user profile schema missed by initial-schema backfill (reconcile-historical-add-scripts B5)
Merged
#150 feat(migrations): reconcile collections columns missed by initial-schema backfill (B2)
Merged
#152 feat(migrations): reconcile favorites system missed by initial-schema backfill (B4)
Merged
#148 feat(migrations): reconcile cards columns missed by initial-schema backfill (B1 of reconcile-historical-add-scripts)
Merged
#147 convoy: render-test regression-lock for ScanDisambiguationDialog (PR #144)
Merged
#146 refactor(deck): useDeckDetail + DeckDetailView (Brief 3)
Merged
#145 refactor(decks): useDecksPage + DecksPageView (Brief 3)
Merged
#143 refactor(deck): extract grouped card list panel (Brief 2)
Merged
#142 refactor(decks): extract edit modal and deck grid (Brief 2)
Merged
#144 fix(scanner): import useFocusTrap in ScanDisambiguationDialog
Merged
#137 refactor(deck): extract grouping lib and stats sidebar (Brief 1)
Merged
#136 refactor(decks): extract format utils and create modal (Brief 1)
Merged
#141 convoy: scripts/rotate-admin-password.js — one-shot admin rotation (rotate-default-admin)
Merged
#140 convoy: flip visual-diff to a hard merge gate (harden-visual-diff-gate brief 2/2)
Merged
#139 chore(visual): refresh baselines from https://tcg-vault-4mwg6pitb-randall-stillwells-projects.vercel.app
Merged
#138 convoy: add seed-visual-baselines workflow (harden-visual-diff-gate brief 1/2)
Merged
#135 chore(docs): sweep stale visual-baseline references + queue gate-hardening convoy
Merged
#134 feat(convoy-metrics): un-gitignore .metrics.jsonl + add CI gate on convoy PRs
Merged
#133 convoy: forbidden-pattern gate + AGENTS.md docs (briefs 3+4)
Merged
#132 convoy: migrate CI to self-hosted axiom runners (briefs 1+2)
Merged
#131 refactor(glass): migrate Button.secondary + Input + MobileNav off bespoke glass-surface
Merged
#130 docs(convoys): close unify-glass-panel-surfaces + cleanup-card-item-list-and-share-modal-palette
Merged
#129 refactor(share-modal): tokenize interior palette (cleanup Brief 2)
Merged
#128 refactor(card-item): tokenize list-mode palette (cleanup Brief 1)
Merged
#127 ci(forbidden-patterns): add Check 7/7 — no bespoke var(--glass-surface-*) (Brief 7)
Merged
#126 ci: slash GitHub Actions minutes via paths-ignore + consolidation + caching
Merged
#125 refactor(bulk-toolbar): migrate to .glass-panel-strong + token sweep (Brief 4)
Merged
#124 refactor(layout): migrate 3 floating popovers to .glass-panel-strong (Brief 3)
Merged
#123 feat(GlassSurface): add cornerLights prop (subtle | chrome | none) (Brief 1)
Merged
#122 refactor(styles): retire .card; migrate 7 consumers to .glass-panel (Brief 5)
Merged
#121 refactor(auth): migrate login + signup form cards to .glass-panel-strong (Brief 2)
Merged
#120 refactor(landing): use .page-header-glass for the nav bar (Brief 6)
Merged
#119 docs(convoys): unify-glass-panel-surfaces + cleanup palette — conductor seed + architect plan
Merged
#118 refactor(design): tone down card corner-light gradients to ~55% intensity
Merged
#117 refactor(design): site-wide sweep — broken Tailwind tokens, rounded corners, SearchBar primitive
Merged
#116 refactor(design): move light response onto chip borders; cut directional drop shadows
Merged
#115 feat(design): warm↔cool gradient + edge-light response on chips
Merged
#114 refactor(layout): split sidebar into nav+badge chips; move help/theme to topbar dropdown
Merged
#113 refactor(layout): floating sidebar + floating top header
Merged
#112 refactor(design-system): subtle ember border on nav hover/focus
Merged
#111 refactor(design-system): spotlight-only hover — drop floating-chip tint, tone down gradient
Merged
#110 refactor(design-system): redesign-v2 — bolder hover + mouse-tracking spotlight + active gradient
Merged
#109 refactor(design-system): redesign-v2 refinements — tone down + dedupe profile + seamless header
Merged
#108 docs(convoys): mark redesign-v2-from-mockups epic shipped
Merged
#107 feat(design-system): redesign v2 #7 + #8 — dashboard rebuild + Card Spotlight rail
Merged
#106 feat(design-system): redesign v2 #6 — card grid outer-glow
Merged
#105 feat(design-system): redesign v2 #3 — TopSearchBar + Cmd+K + page-header-glass sweep
Merged
#104 feat(design-system): redesign v2 #4 — StatCard primitive + dashboard wiring
Merged
#103 feat(design-system): redesign v2 #2 + #5 — sidebar pill + wordmark + Daily Ember
Merged
#102 feat(design-system): redesign v2 #1 — corner-ember gradient + dark default
Merged
#101 fix(design-system): unblock body hearth gradient + boost intensity
Merged
#100 feat(design-system): hearth body gradient + glass page header strips
Merged
#99 fix(design-system): compose rim + elevation tokens correctly (panels actually have chrome now)
Merged
#98 fix(design-system): glass-panel rules now actually apply backdrop-filter
Merged
#97 feat(design-system): sweep authenticated body panels to glass
Merged
#96 feat(design-system): finish Liquid Glass — close all remaining sub-convoys
Merged
#95 feat(design-system): Liquid Glass redesign portfolio — foundation + primitives + Layout
Merged
#94 refactor(card-editor): useCardEditor + CardEditorView (Brief 3)
Merged
#93 refactor(deck-builder): useDeckBuilder + DeckBuilderView (Brief 3)
Merged
#92 refactor(card-editor): extract preview and form components (Brief 2)
Merged
#91 refactor(deck-builder): extract deck list and card browser (Brief 2)
Merged
#90 refactor(card-editor): extract search panel component (Brief 1)
Merged
#89 refactor(deck-builder): extract stats lib and stats bar (Brief 1)
Merged
#88 refactor(collection): useCollectionView + view (Brief 3)
Merged
#87 refactor(collections): useCollectionsPage + view (Brief 3)
Merged
#86 refactor(card): useCardDetail + CardDetailView (Brief 3)
Merged
#85 refactor(collection): extract edit + delete modals (Brief 2)
Merged
#84 refactor(collections): extract edit + success modals (Brief 2)
Merged
#83 refactor(card): extract deck modal (Brief 2)
Merged
#82 refactor(collections): extract create modal + tag lib (Brief 1)
Merged
#81 refactor(card): extract quantity modal (Brief 1)
Merged
#80 refactor(collection): extract CSV export lib (Brief 1)
Merged
#79 refactor(cards): extract useCardsPage + CardsPageView (Brief 3)
Merged
#78 refactor(cards): extract PublicCardsView (Brief 2)
Merged
#77 refactor(cards): extract Card3D component (Brief 1)
Merged
#76 refactor(scanner): extract ScannerPageView component (page Brief 3)
Merged
#75 refactor(scanner): extract useScannerQueue hook (page Brief 2)
Merged
#74 refactor(scanner): extract session and route API libs (page Brief 1)
Merged
#73 refactor(scanner): extract CameraScannerView component
Merged
#72 refactor(scanner): extract identification hook (Brief 5)
Merged
#71 refactor(scanner): extract camera lifecycle hook (Brief 4)
Merged
#70 refactor(scanner): extract card identification pipeline (Brief 3)
Merged
#69 refactor(scanner): extract card detection and tracking lib (Brief 2)
Merged
#68 refactor(auth): add withAdmin() wrapper for admin API routes
Merged
#67 refactor(scanner): extract disambiguation dialog and upload helpers
Merged
#66 chore(convoys): close shipped convoy metadata and refresh ship-readiness
Merged
#65 ci: trigger visual diff on tests/visual changes
Merged
#64 ci: run migrations against Postgres service container in CI
Merged
#63 fix(lint): clear lib/config baseline and make CI lint blocking
Merged
#62 fix(lint): clear ESLint baseline in pages/
Merged
#61 fix(lint): clear ESLint baseline in components/
Merged
#60 chore: backfill system collection descriptions
Merged
#59 Remove dead Lorcana import route and CLI script
Merged
#58 chore: seed Linux Playwright visual baseline for homepage
Merged
#57 Purge direct @neondatabase/serverless dependency
Merged
#56 Remove Quick Login + scanner a11y polish
Merged
#55 Vocabulary cleanup follow-up
Merged
#54 Align UI copy: My Collection vs Lists
Merged
#53 Normalize collector numbers in catalog match and harden scanner adds
Merged
#52 Switch Pokémon catalog sync to pokemon-tcg-data GitHub repo
Merged
#51 Reconcile pending scan submissions after catalog sync
Merged
#50 Add catalog sync button to admin panel
Merged
#49 Prioritize newest sets in catalog sync cron
Merged
#48 feat(catalog): weekly Vercel Cron sync for MTG and Pokémon sets
Merged
#47 test(scanner): cover redesign API and component surfaces
Merged
#46 fix(api): validate quantity on POST /api/user-cards
Merged
#45 fix(scanner): close redesign a11y audit findings
Merged
#44 feat(scanner): persist scan captures to Blob (Brief 3)
Merged
#43 feat(scanner): condition, foil, quantity, ownership badge (Brief 2)
Merged
#42 feat(scanner): stack-destination picker and auto-route (Brief 1)
Merged
#41 fix(scanner): idempotent Mark-Owned and reliable bulk actions
Merged
#40 fix(scanner): catalog gap review path + not-listed disambiguation
Merged
#39 fix(scanner): printing disambiguation + Layer-1 500
Merged
#38 feat(scanner): AI Gateway + Layer-1 OCR (convoy #3)
Merged
#37 fix(scanner): Gemini model + readable scan errors
Merged
#36 fix(auth): scanner redirect + admin card-editor crash
Merged
#35 feat(scanner): server-side scan pipeline (convoy #2)
Merged
#34 fix(security): stop leaking Gemini API key to browsers
Merged
#33 docs: post-convoy cleanup for 7-convoy 2026-05-26 wave
Merged
#32 feat(infra): adopt node-pg-migrate + backfill initial schema migration
Merged
#31 refactor(auth): collapse lib/auth-context.js + lib/admin-auth.js onto lib/use-auth.js
Merged
#30 refactor(db): collapse @neondatabase/serverless onto @vercel/postgres + delete lib/database.js
Merged
#29 chore(lint): forbid require() in scripts/** under "type": "module"
Merged
#28 chore(components): remove dead user prop from MobileNavigation
Merged
#27 fix(scripts): require TEST_USERS_PASSWORD + purge weak literals from test-user helpers
Merged
#26 ci(workflows): exclude pages/api/** from visual-diff path filter
Merged
#25 fix(scripts): convert reset-db.js to ESM + require ADMIN_INITIAL_PASSWORD
Merged
#24 fix(migration): rename-admin-email crashes — neon() returns array, not { rows }
Merged
#22 docs: post-convoy cleanup for pick-a-name — first post-P0 P1 convoy
Merged
#21 feat(brand): unify on Deck Hearth across in-repo strings + infra (P1 brand decision)
Merged
#20 feat(security): rate-limit search/upload/import + gate import routes (P0 #6 - closes last P0)
Merged
#19 fix(security): drop wildcard CORS + redundant OPTIONS from 24 API routes (P0 #5 PARTIAL → RESOLVED)
Merged
#18 feat(test): adopt @playwright/test + ship playwright.config.js + visual scaffold (P1 #10 step 2)
Merged
#17 fix(ci): plumb VERCEL_AUTOMATION_BYPASS_SECRET into preview-smoke + visual-diff
Merged
#15 fix(layout+pages): default user=null + page audit sweep (P0 #7)
Merged
#16 fix(ci): scoped permissions for preview-smoke + visual-diff workflows
Merged
#14 docs: post-convoy cleanup for drop-public-setup
Merged
#13 feat(seed): require ADMIN_INITIAL_PASSWORD + convert setup-db to ESM (drop-public-setup)
Merged
#12 docs: post-convoy cleanup for fix-auth-bypass
Merged
#11 test(auth): add vitest harness + 16 auth-focused unit tests (Brief 5 of fix-auth-bypass)
Merged
#10 fix(api): return 401 (not 500) on unauthenticated cards-collection writes
Merged
#9 fix(auth): tighten public auth surface — CORS + rate limit (Brief 4 of fix-auth-bypass)
Merged
#8 fix(auth): remove synthetic-admin bypass (Brief 2 of fix-auth-bypass)
Merged
#6 fix(auth): centralize JWT secret + 24h TTL (Brief 1 of fix-auth-bypass)
Merged
#7 fix(api): delete dev endpoints + CI guard (Brief 3 of fix-auth-bypass)
Merged
#5 docs(AGENTS): reflect bump-next-js outcome (Next 16, ESLint v9, typescript devDep)
Merged
#4 bump: next 15.4.3 → 16.2.6 + ESLint flat config (v9 fallback) + typescript devDep
1 issue created by 1 user
Opened
#23 agent-context: behind 0.3.0