Commit graph

15 commits

Author SHA1 Message Date
Barely Removable
3c98373ad6 Refine slab mark proportions; stack header+banner instead of magic top offset 2026-08-22 12:26:11 -07:00
Barely Removable
527558bef2 UI: slab brand mark replacing checkmark, header aligned to page column, flatter controls 2026-08-22 12:20:56 -07:00
Barely Removable
fa5467e55d Refuse centering measurement on die-cut/clear-window cards
Same failure family as the edge-whitening fix: centering_profile assumed a
uniform printed border, so on an E-X/SPx-style die-cut the side midpoint
samples landed on clear acetate and the border-width walk measured two
different materials, producing a confident 70/30 the model then treated as
authoritative. Now the four side samples must read as the same material or
the measurement refuses with the reason; the prompt tells the model to judge
die-cut centering as design-to-cut registration instead.
2026-08-22 11:34:36 -07:00
Barely Removable
bb5d50502c Docker hardening (non-root, healthcheck, .dockerignore, log caps) + UI table/typography polish 2026-08-22 11:25:52 -07:00
Barely Removable
e586bc92e7 Add Regrade: instant re-run when photos are stored, fallback re-pick otherwise
Stores the original photo(s) for every card graded from now on, so an
existing history row can be re-graded in place without re-uploading -- most
useful right after a grading-logic fix like the last few commits. Cards
graded before this feature (or saved without images) fall back to the same
photo picker as a fresh grade, then start getting instant regrades from then
on. list_grades/get_grade now select an explicit column list rather than
SELECT * so the stored images are never pulled into memory just to be
discarded for the browser-facing response.
2026-08-22 11:17:06 -07:00
Barely Removable
552f862f4c Fix false edge-whitening on die-cut/mixed-material cards (e.g. SPx clear acetate window)
The pooled baseline that scores edge whitening was global across all four
edges, so a card that's normal printed border on three sides and clear
acetate on the fourth had the three normal edges anchor a baseline that made
the clear side read as extreme whitening -- correctly detecting a real pixel
difference, just the wrong one. Now excludes an edge from both the pool and
its own scoring when its median brightness/saturation reads as a
fundamentally different material, and surfaces why in the prompt instead of
silently dropping it.
2026-08-22 11:09:44 -07:00
Barely Removable
f464faca43 Add aspect-ratio measurement as a soft trimming signal, reported against every standard card size 2026-08-22 11:03:54 -07:00
Barely Removable
b28305dd25 Grading: distinguish miscut/trimming from ordinary corner wear; fix surface over-hedging and over-calling 2026-08-22 09:59:47 -07:00
Barely Removable
5ef97ad4ad Drop duplicated card name from the slab inside the history modal 2026-08-22 09:51:30 -07:00
Barely Removable
cc104e7e35 Pin modal close button top-right when the card name wraps 2026-08-22 09:49:53 -07:00
Barely Removable
7f62e4ad7c Redesign: collector-grade dark theme, slab promoted to hero element 2026-08-22 09:48:26 -07:00
Barely Removable
27a6b49b37 Surface install-prompt failures instead of failing silently 2026-08-22 09:40:43 -07:00
Barely Removable
6b247794db Add a dedicated Take Photo button alongside the library picker 2026-08-22 09:32:10 -07:00
Barely Removable
e74bcee35f Document actual Unraid/NPM deployment topology in docker-compose.yml 2026-08-22 09:23:15 -07:00
Barely Removable
c7bd71a3e1 Initial commit: Card Grader deployed to hippofam.com/cards
PWA card-grading app, deployed behind Nginx Proxy Manager on Unraid with
basic auth. Includes CARD_GRADER_BASE_PATH support for running under a
sub-path, and Docker/compose config for the Unraid deployment.
2026-08-22 09:22:41 -07:00