Commit Graph

  • dfd3221617 docs: point the PLATFORM.md link at ../dealgod/PLATFORM.md (now version-controlled) main type-two 2026-07-08 14:03:37 +1000
  • 79b0f7e439 docs: README — RecordGod is a StoreGod module; live code = STOREGOD/plugins/recordgod type-two 2026-07-08 13:14:58 +1000
  • 720afcaee4 feat(storegod_v1): ping returns name+role (parity with STOREGOD) type-two 2026-07-07 22:23:29 +1000
  • 840e1c4359 refactor: wowplatter_v1 → storegod_v1; mount /storegod/v1 canonical + /wowplatter/v1 legacy alias type-two 2026-07-07 21:50:46 +1000
  • e8013a4633 feat(shop): DECKS — two-channel preview mixer on release pages (Serato internal-mode vibe) type-two 2026-07-06 22:57:47 +1000
  • 00e08a86dd feat(sku): canonical 14-digit timestamp SKUs so RFID/EPC tagging works (new items) claude/review-fixes type-two 2026-07-05 03:34:27 +1000
  • 61601f1067 money: atomic stock claims, amount validation, discount gate (converge with StoreGod twin) type-two 2026-07-05 03:02:30 +1000
  • 8535389cf1 security(layout): SSRF guard on /layout/import-brand (reject internal hosts, no redirects) type-two 2026-07-05 02:49:09 +1000
  • 5ebb997978 security(pii): keep customer SQL dumps out of git and the Docker image type-two 2026-07-05 02:04:45 +1000
  • cfd6b54731 chore(security): gitignore live-site MariaDB dumps (customer/order PII) type-two 2026-07-03 14:16:09 +1000
  • db1788bfe5 feat(app): payments/packs/discogs-mp/dealgod modules + admin, shop, sales route work type-two 2026-07-02 23:07:28 +1000
  • d46025e887 fix(virtual): cyclorama extent for east/west coves + never frustum-cull the cove type-two 2026-07-02 23:07:28 +1000
  • d0c91faf79 feat(dig): port THRIFTGOD's evolved crate-flip back into /store type-two 2026-07-02 23:07:28 +1000
  • 916b26102c docs: DIG_FLIP_HANDOVER — port THRIFTGOD's evolved crate-riffle into /store type-two 2026-07-02 22:52:26 +1000
  • b6994a96e3 feat(admin): legacy-panel banner — new admin lives at robotmonster.party/admin + copy-my-token type-two 2026-07-02 17:40:40 +1000
  • c44e6643db feat(intake): condition dropdown auto-fills suggested price type-two 2026-06-30 18:40:06 +1000
  • ca84b7f82f chore(docs): move 14 planning/handover docs to docs/ — declutter repo root type-two 2026-06-30 15:22:45 +1000
  • 9e3c132a11 chore(security): purge distro raw dumps (supplier PII + account JWT) from git + image type-two 2026-06-30 15:15:43 +1000
  • 5551963ef4 feat(3d): procedural cyclorama / infinity cove (new — not in WowPlatter) type-two 2026-06-27 12:47:11 +1000
  • 205967d506 feat(3d): crate-type + rack logo decals on object faces; verified bin slope type-two 2026-06-27 12:33:30 +1000
  • 44517d4930 fix(3d): decals snap to their preferred_wall (ported WowPlatter snapToWallAndOrient) type-two 2026-06-27 12:23:18 +1000
  • d489e8807d feat(buylist): wishlist scarcity ranking via DealGod /api/supply type-two 2026-06-27 12:07:48 +1000
  • 379a53bc01 docs(wishlist): scarcity needs a DealGod per-release supply endpoint (request brief) type-two 2026-06-27 11:42:31 +1000
  • ef37063b2e feat(distro): Inertia xlsx ingest + cost/new-used/margin in inventory editor type-two 2026-06-27 11:39:39 +1000
  • 926468a8b5 feat(distro): RareWaves order ingest → cost-tracked NEW stock + approval landing type-two 2026-06-27 11:13:48 +1000
  • 4c462861f5 feat(inventory): cost_price + cost_source + new/used split (distro-ingest foundations) type-two 2026-06-27 10:49:51 +1000
  • 1c8f15514c fix(auth): login loop — signin() wiped the stored token with the empty token-box type-two 2026-06-26 17:25:21 +1000
  • bc59cc1c4c fix(deploy): stop excluding webstore/ from the image — it broke the /store 3D mount type-two 2026-06-26 17:10:05 +1000
  • 9a66f59bfe feat(auth): staff email+password login + password reset (login stays token-based under the hood) type-two 2026-06-26 16:24:34 +1000
  • f9ab9527f3 perf(search): pg_trgm fuzzy staff search — typo-tolerant, multi-word, ~100ms (was ILIKE seq scan) type-two 2026-06-25 16:10:36 +1000
  • 56eab72c9c feat(intake): wowplatter/v1 intake carries est_market_value (DealGod target from PRICEGOD) type-two 2026-06-25 02:00:40 +1000
  • 03be6bb67f fix(admin): escapeH crashed on numbers (intake search cards) type-two 2026-06-25 01:11:38 +1000
  • 1695b2dfbb docs(scangod): connection details for the DealGod bridge (network + auth, no secret) type-two 2026-06-24 17:48:44 +1000
  • 2a41731fd3 feat(intake): ScanGod bridge — POST /admin/intake/scan (photo→staged product) + reply type-two 2026-06-24 17:16:18 +1000
  • e7335d77ab docs(ai): detailed build plan for the RecordGod AI assistant (for review) type-two 2026-06-24 16:22:04 +1000
  • 9e028db735 feat(connect): OpenRouter key + test in vault; AI agent integration plan type-two 2026-06-24 16:12:19 +1000
  • 9a0bf41fbe feat(intake): Heal sweep — backfill missing catalog metadata (salvaged self-healing pass) type-two 2026-06-24 11:57:36 +1000
  • beabfe1297 docs(audit): WowPlatter mega deep-dive + reorganise type-two 2026-06-24 11:07:38 +1000
  • 25127b1b72 feat(intake): connected Google sheet via service account + skip-existing bulk stage type-two 2026-06-24 10:32:31 +1000
  • 88172924eb feat(intake): three-source intake — internal lookup + Discogs collection + Google Sheet type-two 2026-06-24 10:05:46 +1000
  • 5ad4de1d2c feat(bridge): RecordGod WP bridge plugin (WowPlatter successor) + thumb on browse/release type-two 2026-06-24 01:43:30 +1000
  • 8a3d833986 feat(shop): WP/Woo bridge endpoints — /shop/item, /shop/shipping/quote (public), /shop/woo-order (key-gated) type-two 2026-06-24 01:28:34 +1000
  • bfe6a08dfb feat(shipping): use current AusPost own-packaging rates (RecordGod not live pre-1-Jul, no dating needed) type-two 2026-06-24 01:05:12 +1000
  • ef4769784f feat: Woo customer sync (non-destructive, in refresh.sh) + AusPost rates mirror & quote calc type-two 2026-06-24 00:55:56 +1000
  • 4c152954b5 fix(shop): key YouTube dead-cache by (release_id, uri) — mirrored video table has no id col type-two 2026-06-23 23:47:42 +1000
  • 988e6437cb feat(shop): per-track Apple previews (lazy iTunes) + jog mini-player + dead-YouTube check type-two 2026-06-23 23:44:17 +1000
  • d6e1e15982 feat(shop): storefront release page gets ▶ Listen too (Apple preview / YouTube / Beatport) type-two 2026-06-23 23:22:46 +1000
  • aa56e874ad feat(shop): country-scoped Apple ids in audio — AU-preferred music.apple.com link + clean preview type-two 2026-06-23 23:17:06 +1000
  • 7e9d5028b0 fix(shop): apple_preview_url is a JSON array — return the first clean preview URL type-two 2026-06-23 23:12:39 +1000
  • 16c85184cd feat(shop): wire audio/video previews — kiosk Listen (Apple 30s / YouTube / Beatport) type-two 2026-06-23 23:10:02 +1000
  • bab0826fea feat(shop): in-store kiosk page — touch browse, locate-in-store, scan-to-buy QR type-two 2026-06-23 23:01:54 +1000
  • d6c08f05ce feat(nav): rotate diagram button — 90° view rotation (rack + store), text stays upright type-two 2026-06-23 21:55:51 +1000
  • e20be06bf0 feat(nav): Quick Insert + click-to-pick insert slot (insert-with-shift) type-two 2026-06-23 19:45:42 +1000
  • a57b74700c feat(admin): System tab — read-only Postgres health (db size/version/uptime/conns/cache-hit, largest tables, data freshness) type-two 2026-06-23 18:44:44 +1000
  • 6a95efb9bb fix(report): count paid+completed sales (migrated=paid), fix hour :00 bind-param, add format breakdown type-two 2026-06-23 18:26:57 +1000
  • 336d525585 feat(admin): comprehensive lazy dashboard + reports workbench (Chart.js) type-two 2026-06-23 18:22:17 +1000
  • 4ab9c09899 feat(pos): Square Terminal payments — push checkout to a paired terminal type-two 2026-06-23 17:57:26 +1000
  • 5673ee125d fix(sales): register GET /{sale_id} last so /settings /customers /past /discounts resolve type-two 2026-06-23 17:38:16 +1000
  • bf08cd9b35 feat(pos): receipt logo + Monster Robot template (store name/address/footer) type-two 2026-06-23 17:33:08 +1000
  • 5351cfb9c2 feat(pos): rebuild Sales — 3 tabs, smooth checkout + tender/change, print+email receipts type-two 2026-06-23 16:29:42 +1000
  • b46930d468 feat(staff): time clock — clock on/off = shift = timecard type-two 2026-06-23 15:40:02 +1000
  • 5e2a9e7ab1 feat(auth): staff accounts + roles — operators run the store, admins keep the keys type-two 2026-06-23 15:33:19 +1000
  • 13e5200b8d feat(nav): colour crates by type in the rack diagram (material_color) type-two 2026-06-23 11:26:34 +1000
  • cba339151f feat(nav): Crate Info panel — edit label_text + rotate crate.direction in /search type-two 2026-06-23 10:51:41 +1000
  • 6b679152bc feat(nav): reorganize targets = picked crates sorted (editable) + per-crate landing summary type-two 2026-06-23 10:15:50 +1000
  • c4b544373d feat(nav): unified tabbed Search & Inventory workstation (WowPlatter parity) type-two 2026-06-23 09:58:18 +1000
  • 48f8579bff feat(shop): P4 wantlist — public 'request a record' page + admin queue type-two 2026-06-23 01:26:16 +1000
  • 28a46615a5 feat(shop): entity browse pages — artist/label/genre/style storefront views type-two 2026-06-23 01:13:52 +1000
  • 386343cdd3 feat(builder): P1 page editor — live preview now renders a REAL release from the catalog (real covers/tracklist) so block-arranging is WYSIWYG; + View-live link type-two 2026-06-23 01:00:28 +1000
  • fcc3d7b2ff feat(storefront): P0 — public Browse (faceted release catalog) + Release detail pages + /shop/{browse,facets,release} API; Woo-transacted type-two 2026-06-23 00:37:04 +1000
  • 0269decb87 feat(search): editable Rack Info (name) + Reorganize planner UI (scan source crates → filter → A-Z distribute into target crates → review → apply) type-two 2026-06-22 23:58:10 +1000
  • 83466389af feat(scanner): scan-to-slot assigner (replace/append/prepend/insert + Test preview + recover-last) + editable crate info (name/label); hdr Content-Type fix type-two 2026-06-22 23:46:14 +1000
  • 19c6e03c70 feat(search): clickable crate contents → Release Info panel (cover/label/format/country/year/genre/style + all copies + locate); crate genre/style + last-scanned + compress type-two 2026-06-22 23:40:06 +1000
  • d6e75667bf feat(customers): CRM — list with spend/orders/last + record page (overview stats, editable info, mailing opt-in, sales history) type-two 2026-06-22 23:17:11 +1000
  • 38c6714184 feat(print): label print (artist/title/price/SKU/QR, Dymo 54x25mm) + optional RFID chip program (Chafon H102 via local :7790 daemon) type-two 2026-06-22 22:55:31 +1000
  • a817b9d163 feat(import): bulk stock-in — resolve Release ID/barcode/catno against disc_release → create inventory (UI + endpoint) type-two 2026-06-22 22:48:43 +1000
  • c5ce84de1c feat(inventory): management UI — row edit modal, add-item, delete, bulk-select actions, webp thumbs type-two 2026-06-22 22:45:37 +1000
  • 4ece321b76 feat(inventory): CRUD backend (add/edit/delete/bulk) — first cream from the WowPlatter audit; + migration audit doc type-two 2026-06-22 22:39:17 +1000
  • 0b679ba079 fix(images): /img/r serves local copy else 302 to discogs webp (server-side fetch is CF-blocked); drop unused pillow type-two 2026-06-22 21:48:08 +1000
  • ddaa6ecedf feat(images): RecordGod WebP cover cache (/img/r/{release_id}) — same-VPS, configurable DISC_IMAGE_DIR, no DealGod dep type-two 2026-06-22 21:45:31 +1000
  • af3a611667 feat(collections): interactive editor — click-map crate select, genre/style/price/year rules, live match stats, priority type-two 2026-06-22 21:33:15 +1000
  • 10af3464ac feat(disc): mirror WowPlatter Discogs metadata into recordgod (disc_sync.py) + locator matches on collection genre/style ids type-two 2026-06-22 21:19:47 +1000
  • a1b4538954 fix(collections): is_active is int not bool — cast in queries type-two 2026-06-22 20:58:50 +1000
  • 879a58992f feat(collections): Collections CRUD + fallback locator + Reorganize scan/apply/compress API + Collections UI type-two 2026-06-22 20:56:34 +1000
  • 0767778931 fix(store): WowPlatter coordinate convention in webstore renderer type-two 2026-06-22 19:57:17 +1000
  • fb533a7701 fix(nav): store view shows functional racks only (rack_purpose<>prop), truncate labels type-two 2026-06-22 19:38:29 +1000
  • 53b1a64a48 feat(nav): light/dark switch every page + store→rack→crate navigator type-two 2026-06-22 19:33:24 +1000
  • 180615c7e0 ui: light theme for Search + POS (shop-admin readability) type-two 2026-06-22 19:01:07 +1000
  • eb502efaf4 feat(pos): full Sales console + migrate customers/discounts/settings type-two 2026-06-22 02:40:35 +1000
  • 584fd140ad feat: Search/locate workstation + Search & Sales in nav (cache-bust nav.js) type-two 2026-06-22 01:57:54 +1000
  • 6dd893fd01 feat: owner login landing + Sales POS + Sales in nav type-two 2026-06-22 01:49:00 +1000
  • 80ff669cac feat(pos): Sales tab — ring-up, discounts, payment plans, holds, locate type-two 2026-06-22 01:43:14 +1000
  • e8e526f48e feat: unified owner nav bar across admin/builder/dash type-two 2026-06-22 01:22:25 +1000
  • 19e3cb131f feat: clean stub URLs (/builder /shop /admin /dash) + store geometry + storefront type-two 2026-06-21 23:16:57 +1000
  • a9076af19d feat(builder): storefront customizer type-two 2026-06-21 21:29:55 +1000
  • 8c25b65d7e feat(virtual): finish the 3D store port — per-room scoping, decals, portals feat/virtual-store-port type-two 2026-06-21 21:00:02 +1000
  • a304476645 docs: Wax Museum report — three-layer model + feature matrix type-two 2026-06-21 20:39:40 +1000
  • b256b1399c docs: Wax Museum deep-dive + onboarding report (first enterprise target) type-two 2026-06-21 20:33:24 +1000
  • b4cdc8aee4 feat(admin): Store Map + Intake/Crates/Reports type-two 2026-06-21 20:03:08 +1000
  • 3732dfa325 feat(admin): Intake, Crates, Reports views + endpoints type-two 2026-06-21 19:50:47 +1000