type-two
c5ce84de1c
feat(inventory): management UI — row edit modal, add-item, delete, bulk-select actions, webp thumbs
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 22:45:37 +10:00
type-two
ddaa6ecedf
feat(images): RecordGod WebP cover cache (/img/r/{release_id}) — same-VPS, configurable DISC_IMAGE_DIR, no DealGod dep
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 21:45:31 +10:00
type-two
af3a611667
feat(collections): interactive editor — click-map crate select, genre/style/price/year rules, live match stats, priority
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 21:33:15 +10:00
type-two
879a58992f
feat(collections): Collections CRUD + fallback locator + Reorganize scan/apply/compress API + Collections UI
...
- collections_routes.py: /nav/collections CRUD over virtual_collection + /nav/locate (exact-then-rules)
- navigator_routes.py: /nav/reorg/{scan,apply,compress} (atomic re-file)
- disc_cache gets year/genre_ids/style_ids cols for rule matching (backfill TODO)
- /search: collections list + locator fallback shows the should-be-here zone for unfiled hits
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 20:56:34 +10:00
type-two
fb533a7701
fix(nav): store view shows functional racks only (rack_purpose<>prop), truncate labels
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 19:38:29 +10:00
type-two
53b1a64a48
feat(nav): light/dark switch every page + store→rack→crate navigator
...
- nav.js owns a light/dark toggle (persisted, default light) across all owner pages
- /nav API: spaces, store-layout, rack/{id}, crate/{id} over migrated virtual_* geometry
- /search rebuilt as Store→Rack→Crate drill-down (true rack rotation, per-level slot grid,
crate facing arrows + BACK/FRONT/L/R, search→locate)
- facing convention (directionYaw, slot-grid, rotatedArrows, world composition) in RECORDGOD_NAVIGATOR_PLAN.md
- no-cache HTML routes so deploys show instantly
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 19:33:24 +10:00
type-two
180615c7e0
ui: light theme for Search + POS (shop-admin readability)
2026-06-22 19:01:07 +10:00
type-two
eb502efaf4
feat(pos): full Sales console + migrate customers/discounts/settings
2026-06-22 02:40:35 +10:00
type-two
584fd140ad
feat: Search/locate workstation + Search & Sales in nav (cache-bust nav.js)
2026-06-22 01:57:54 +10:00
type-two
6dd893fd01
feat: owner login landing + Sales POS + Sales in nav
2026-06-22 01:49:00 +10:00
type-two
80ff669cac
feat(pos): Sales tab — ring-up, discounts, payment plans, holds, locate
2026-06-22 01:43:14 +10:00
type-two
e8e526f48e
feat: unified owner nav bar across admin/builder/dash
2026-06-22 01:22:25 +10:00
type-two
19e3cb131f
feat: clean stub URLs (/builder /shop /admin /dash) + store geometry + storefront
2026-06-21 23:16:57 +10:00
type-two
a9076af19d
feat(builder): storefront customizer
2026-06-21 21:29:55 +10:00
type-two
b4cdc8aee4
feat(admin): Store Map + Intake/Crates/Reports
2026-06-21 20:03:08 +10:00
3732dfa325
feat(admin): Intake, Crates, Reports views + endpoints
2026-06-21 19:50:47 +10:00
1f388f241c
feat(admin): MEGA admin dash + /admin endpoints (stats/inventory/orders)
2026-06-21 19:19:56 +10:00
0e8c84b0e7
feat(dash): connection testing — Discogs / Woo / DealGod
...
POST /settings/test/{service} validates stored creds against the live service
(Discogs identity, Woo orders, DealGod /api/me) so "connected" means connected.
Dash gets per-service Test buttons with green/amber status.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 15:03:18 +10:00
e1fcf94f93
feat: standalone RecordGod web UI — landing, control-room dash, encrypted secrets vault
...
- app/vault.py: Fernet-encrypted credential store (app_secret table); key lives only in
RECORDGOD_SECRET_KEY (.env, gitignored) — refuses to store anything if the key is unset.
- app/settings_routes.py: admin-gated GET/POST /settings/secrets; values encrypted at rest,
NEVER returned. Known fields: Woo / Discogs / Cloudflare / DealGod credentials.
- site/index.html: recordgod.com landing. site/dash.html: control room (token gate +
paste-your-credentials form). main.py loads .env, mounts site at /, store at /store.
- Proven: 401 on bad token; DB holds ciphertext (gAAAA…), not plaintext.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 12:40:07 +10:00