deckhearth/lib
Randall Stillwell 04504903bf
Some checks are pending
CI / Lint (pull_request) Waiting to run
CI / Schema map up to date (pull_request) Waiting to run
CI / Forbidden patterns (9 checks) (pull_request) Waiting to run
CI / Migrations apply (node-pg-migrate) (pull_request) Waiting to run
CI / Unit tests (vitest) (pull_request) Waiting to run
Convoy metrics gate / Require role-event telemetry on convoy PRs (pull_request) Waiting to run
PR Health rollup / Aggregate gate status (pull_request) Waiting to run
Preview smoke / Should run? (pull_request) Waiting to run
Preview smoke / Playwright smoke (pull_request) Blocked by required conditions
perf(scanner): three high-impact speed optimizations
1. Non-blocking scan capture upload (emitScannedCard)
   - Card result shows immediately; upload fires in background
   - Removes ~500ms blocking S3/MinIO roundtrip from the result path

2. Parallel OCR workers for name + number strips (ocr-worker)
   - Two independent Tesseract workers run simultaneously
   - Cuts Layer 1 OCR time ~50% on mobile (name + number in parallel)
   - terminateOcrWorker cleans up both workers on teardown

3. Faster pre-verification timing (scanner-card-detection)
   - VERIFICATION_INTERVAL_MS: 1000 → 500ms
   - MIN_FIRST_SEEN_MS_FOR_VERIFY: 800 → 500ms
   - Net ~300ms faster from first detection to verification start

All 58 scanner tests pass (2.20s).
2026-09-01 17:17:20 -05:00
..
card-import Migrate Deck Hearth off Vercel/Neon to homelab Dokploy stack. 2026-08-15 09:32:13 -05:00
flags bootstrap: agent pipeline v0.5.0 + ship-readiness review 2026-05-23 02:31:26 -05:00
auth-secret.js fix(auth): centralize JWT secret + 24h TTL (Brief 1 of fix-auth-bypass) 2026-05-23 10:40:50 -05:00
card-catalog-match.js Migrate Deck Hearth off Vercel/Neon to homelab Dokploy stack. 2026-08-15 09:32:13 -05:00
card-embed.js Migrate Deck Hearth off Vercel/Neon to homelab Dokploy stack. 2026-08-15 09:32:13 -05:00
card-number-utils.js Normalize collector numbers in catalog match and harden scanner adds. (#53) 2026-05-28 14:45:55 -05:00
card-text-match.js Migrate Deck Hearth off Vercel/Neon to homelab Dokploy stack. 2026-08-15 09:32:13 -05:00
card-visual-match.js Migrate Deck Hearth off Vercel/Neon to homelab Dokploy stack. 2026-08-15 09:32:13 -05:00
collection-cards-csv.js Extract collection CSV export helper (Brief 1). (#80) 2026-06-03 16:53:01 -05:00
collection-tag-input.js Extract CollectionsCreateModal and tag helpers (Brief 1). (#82) 2026-06-03 16:53:08 -05:00
collection-vocabulary.js Vocabulary cleanup follow-up (#55) 2026-05-29 10:01:03 -05:00
custom-cards-fields.js feat(designer): custom frame editor and cost symbols 2026-08-24 21:13:12 -05:00
deck-builder-stats.js refactor(deck-builder): extract stats lib and stats bar (Brief 1) (#89) 2026-06-03 17:24:40 -05:00
deck-detail-grouping.js refactor(deck): extract grouping lib and stats sidebar (Brief 1) (#137) 2026-06-13 00:44:16 -05:00
deck-format-utils.js refactor(decks): extract format utils and create modal (Brief 1) (#136) 2026-06-13 00:44:13 -05:00
designer-games.js feat(designer): game targeting and custom game spaces 2026-08-24 21:01:04 -05:00
format-relative-time.js Realign dashboard home nav and wire honest ownership stats (#164) 2026-08-15 16:47:59 -05:00
frame-palette.js fix(tests): wire DEFAULT_LAYOUT export, fix custom-frames mocks, and add validateLayout tests 2026-09-01 09:40:04 -05:00
mana-symbols.js Major Scanner Improvements 2025-07-29 14:19:48 -05:00
object-storage.js Migrate Deck Hearth off Vercel/Neon to homelab Dokploy stack. 2026-08-15 09:32:13 -05:00
ocr-worker.js perf(scanner): three high-impact speed optimizations 2026-09-01 17:17:20 -05:00
permission-middleware.js Migrate Deck Hearth off Vercel/Neon to homelab Dokploy stack. 2026-08-15 09:32:13 -05:00
rate-limit.js Fix scanner multi-card flow, frame overlay, and rate limits. (#166) 2026-08-15 18:48:05 -05:00
scan-capture-upload.js refactor(scanner): extract disambiguation dialog and upload helpers. (#67) 2026-06-02 11:01:32 -05:00
scan-vision.js Scanner identify upgrade — Phase 1 hot path (#156) 2026-08-14 20:21:20 -05:00
scanner-batch-identify.js feat(scanner): add desktop workstation layout (#165) 2026-08-15 17:21:23 -05:00
scanner-card-detection.js perf(scanner): three high-impact speed optimizations 2026-09-01 17:17:20 -05:00
scanner-card-identify.js feat(scanner): add debug instrumentation for vision pipeline timing 2026-09-01 17:02:01 -05:00
scanner-card-warp.js feat(scanner): perspective warp card detection (Phase 2) (#158) 2026-08-14 20:31:45 -05:00
scanner-route-api.js feat(scanner): rebuild as mobile-first three-phase flow 2026-06-13 08:42:58 -05:00
scanner-session.js Mobile scanner checkout: scan first, commit later (#157) 2026-08-14 20:20:43 -05:00
scanner-video-layout.js Add manual tap-to-scan with shutter button on mobile. (#167) 2026-08-15 20:11:54 -05:00
slug-utils.js 🔗 Implement Collection Slug URLs 2025-07-26 22:06:52 -05:00
sql.js Migrate Deck Hearth off Vercel/Neon to homelab Dokploy stack. 2026-08-15 09:32:13 -05:00
theme-context.js feat(design-system): sub-convoy #1 — corner-ember gradient + dark default (#102) 2026-06-04 10:48:49 -05:00
use-auth.js fix(lint): clear lib/config baseline and make CI lint blocking. (#63) 2026-06-02 01:03:42 -05:00
use-camera-scanner.js fix(scanner): satisfy react-hooks/immutability and jsdom ResizeObserver in tests 2026-08-23 22:27:49 -05:00
use-card-detail.js refactor(card): useCardDetail + CardDetailView (Brief 3) (#86) 2026-06-03 17:10:13 -05:00
use-card-editor.js refactor(card-editor): useCardEditor + CardEditorView (Brief 3) (#94) 2026-06-03 18:18:31 -05:00
use-cards-page.js Extract AuthenticatedCards into hook + view (cards Brief 3). (#79) 2026-06-03 12:49:25 -05:00
use-collection-view.js convoy: enable no-undef ESLint rule + fix 3 latent bugs it surfaced 2026-06-13 01:17:18 -05:00
use-collections-page.js refactor(collections): useCollectionsPage + view (Brief 3) (#87) 2026-06-03 17:10:17 -05:00
use-daily-ember.js feat(design-system): redesign v2 #2 + #5 — sidebar pill, wordmark, Daily Ember (#103) 2026-06-04 10:59:44 -05:00
use-deck-builder.js refactor(deck-builder): useDeckBuilder + DeckBuilderView (Brief 3) (#93) 2026-06-03 18:18:28 -05:00
use-deck-detail.js refactor(deck): useDeckDetail + DeckDetailView (Brief 3) (#146) 2026-06-13 01:14:46 -05:00
use-decks-page.js refactor(decks): useDecksPage + DecksPageView (Brief 3) (#145) 2026-06-13 01:14:43 -05:00
use-focus-trap.js Polish scanner checkout glass surfaces and remove dead code. (#161) 2026-08-14 21:42:59 -05:00
use-scanner-flash.js feat(scanner): rebuild as mobile-first three-phase flow 2026-06-13 08:42:58 -05:00
use-scanner-identification.js perf(scanner): three high-impact speed optimizations 2026-09-01 17:17:20 -05:00
use-scanner-offline.js feat(scanner): rebuild as mobile-first three-phase flow 2026-06-13 08:42:58 -05:00
use-scanner-queue.js feat(scanner): add desktop workstation layout (#165) 2026-08-15 17:21:23 -05:00
use-scanner-session.js Polish scanner checkout glass surfaces and remove dead code. (#161) 2026-08-14 21:42:59 -05:00
use-scanner-sound.js feat(scanner): rebuild as mobile-first three-phase flow 2026-06-13 08:42:58 -05:00