New Items Dashboard

repo: ~/Projects/new-items-dashboard · 7 commits · 0 in last 24h, 0 in last 7d ·

Search the build

7 commits indexed

  1. 03f8a8c 2026-05-20 add: pre-stage Meta Pixel snippet (placeholder; flip via _dw-batch set-fb-pixel.sh)
  2. ed3ed84 2026-05-19 test: auth gate smoke test (boots server, asserts 401/200 matrix)
  3. b447df1 2026-05-19 secure: basic-auth gate on all routes (server was public on 0.0.0.0:7201)
  4. 7d0b816 2026-05-19 feat: sort + density controls on wines & handbags grids
  5. 793d2e2 2026-05-19 harden: broaden .gitignore + 404-guard for snapshot files
  6. 56106db 2026-05-13 snapshot: 1 file(s) changed, ~1 modified
  7. d4a4408 2026-05-06 initial scaffold (gitify-all 2026-05-06)

Authors

Agents used

  • none detected

Skills used

  • /new-wines3
  • /new-handbags3
  • /stats2
  • /item1
  • /index1
  • /editor-scratch1

Creative ideas + design notes

Commits with substantial prose (≥120 chars) — the rationale behind each move.

ed3ed84 · 2026-05-19 · test: auth gate smoke test (boots server, asserts 401/200 matrix)
7 assertions covering unauth-401 on /, /api/new-wines, /api/new-handbags,
/api/stats, WWW-Authenticate present, valid-creds non-401, wrong-creds 401.
Standalone (no framework dep); wired to npm test.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
b447df1 · 2026-05-19 · secure: basic-auth gate on all routes (server was public on 0.0.0.0:7201)
Mounts an Express middleware before any route declaration so /api/new-wines,
/api/new-handbags, /api/stats and the HTML dashboard all require credentials.
Credentials come from env BASIC_AUTH (user:pass form); placeholder is left in
code with a SECURITY: rotate-before-deploy comment. In dev (NODE_ENV !=
production) with no BASIC_AUTH set, the gate fails open for local convenience.
Uses crypto.timingSafeEqual to dodge length-leak side channels.

.env.example documents BASIC_AUTH + NODE_ENV. .gitignore exempts .env.example
so the template can be tracked.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
7d0b816 · 2026-05-19 · feat: sort + density controls on wines & handbags grids
Per Steve's standing rule, every product/item grid must have a working
sort <select> + density slider, both persisted to localStorage and
hydrated BEFORE the first fetch.

Frontend (public/index.html):
- New .grid-controls toolbar above each tab grid with sort select
  (Newest / Vendor / Series / SKU / Title) + density range input
  (180-480px card-min via CSS var --card-min).
- hydrateControls() reads localStorage and sets control values BEFORE
  loadWines/loadHandbags fire, so the first paint already reflects the
  saved user choice instead of flashing default→saved.
- Change handlers persist to namespaced keys (newItemsDash.<tab>.<ctl>)
  then either re-fetch (sort) or just re-apply CSS var (density).
- Grids now render into dedicated <div id=wines-grid> / handbags-grid
  containers so re-renders don't blow away the toolbars.
- applyDensity re-runs after every grid re-render to survive the
  innerHTML wipe.

Server (server.js):
- New applySort(items, sort, type) helper. Honors ?sort=newest|vendor|
  series|sku|title on both /api/new-wines and /api/new-handbags.
- 'vendor' falls back to brand / source when an item lacks vendor;
  'series' falls back to vintage / model. Keeps shape consistent
  across the two heterogeneous data sources.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
793d2e2 · 2026-05-19 · harden: broaden .gitignore + 404-guard for snapshot files
- .gitignore now covers *.bak.*, *.pre-*, *.orig, *.rej, *.swp, *~
  (was only *.bak). Prevents editor scratch + Claude pre-edit snapshots
  from sneaking into the repo.
- New Express middleware before express.static returns 404 for any
  request to a snapshot/editor-scratch path so even if one accidentally
  lands under public/ it never serves to a browser.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

File tree

8 files tracked. Click any to browse the source at HEAD.

Other build journals

← New Import Viewer  ·  all 4 projects  ·  Nineoh Guide →

Export

commits.csv · feed.atom · project.json · commits.json

rendered in 0ms