{"slug":"zuber-internal","total":17,"limit":100,"offset":0,"since":null,"commits":[{"hash":"980a40e","date":"2026-09-15 04:07:22 -0700","author":"steve@designerwallcoverings.com","subject":"TK-11438: migrate postgres pool to unix socket (darwin fallback)","body":"Use process.env.PGHOST || darwin?/tmp:127.0.0.1 so Mac2 services use the\nunix socket at /tmp and Kamatera keeps TCP until its own migration.\nUndo: git revert HEAD"},{"hash":"3aa6743","date":"2026-08-20 09:06:08 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-08-20T09:06:02 (1 data files) — .deploy.conf","body":""},{"hash":"0cde275","date":"2026-08-20 08:14:36 -0700","author":"Steve Abrams","subject":"nav-agent: sync v1.3 (host left-sidebar collapse on load)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"f6c9c70","date":"2026-08-19 14:31:04 -0700","author":"Steve","subject":"nav-agent: List data full-width tight columns (grid) — layout fix","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"8eb559a","date":"2026-08-19 14:05:25 -0700","author":"Steve","subject":"Refresh nav-agent to v1.2 (adds kv-list compact List view, default-off)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"5fae5d3","date":"2026-08-13 08:29:14 -0700","author":"Steve Abrams","subject":"nav-agent: universal grid-controls drop-in on internal viewer pages (STRONG-only)","body":""},{"hash":"661af65","date":"2026-08-12 08:53:17 -0700","author":"Steve","subject":"viewer standard: add Grid/List toggle + per-field on/off menu to internal record-grid viewer","body":""},{"hash":"c76a882","date":"2026-07-31 12:19:01 -0700","author":"Steve Abrams","subject":"zuber-internal: adopt shared /drill.js href-to-deeper-data primitives (TK-10093)","body":""},{"hash":"3f028dd","date":"2026-07-15 15:02:19 -0700","author":"Steve Abrams","subject":"zuber-internal: add Memo/Stock/Price chip actions (shared vendor-requests module)","body":"Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"8f9e02b","date":"2026-07-15 13:06:52 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-15T13:06:41 (1 files) — lib/","body":""},{"hash":"746d635","date":"2026-07-14 07:56:27 -0700","author":"Steve","subject":"Revert \"Add Activation Calendar tab (go-live date+time per staged SKU)\"","body":"This reverts commit 8879146472a5ea957b2746e35f4a33761ed4c724."},{"hash":"8879146","date":"2026-07-14 07:53:58 -0700","author":"Steve","subject":"Add Activation Calendar tab (go-live date+time per staged SKU)","body":""},{"hash":"6db0b61","date":"2026-07-09 16:08:13 -0700","author":"Steve","subject":"Rail parity with all.dw: cross-filtered facets, color families+swatches, active-chip row, needs-curation preserved","body":""},{"hash":"ada4b82","date":"2026-07-09 15:51:27 -0700","author":"Steve","subject":"jsonl-backed data layer: self-contained bundle for Kamatera (no prod DB)","body":"Auto-detect source (DATA_SOURCE=jsonl or the data/<vendor>.jsonl bundle present)\nloads all rows in-memory from the bundle; the pg/psql path is preserved for local.\nDB driver require made lazy so no DB connection is needed in jsonl mode. Includes\nthe full-fidelity export (all columns the viewer consumes) + export script.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"2d17e2a","date":"2026-07-09 13:44:34 -0700","author":"Steve Abrams","subject":"Add color context+Color sort, tag facet (needs-curation), strip healthz count","body":"FIX1: color_name falls back to ai_colors[0].name (column null for all rows);\ncolor_hex falls back to ai_colors[0].hex; server-side Color sort by hue(color_hex)\n+ Color option in sort select (parity with sibling viewers).\nFIX2: unauthenticated /healthz returns {ok:true} only, no product count leak.\nFIX3: ai_tags now built into a Tag facet (needs-curation/broken-source-image\nvisible+filterable, count 2) + tag filter in /api/products.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"afe7565","date":"2026-07-09 09:50:56 -0700","author":"Steve","subject":"Fix zuber viewer 401 crash: plain-ASCII WWW-Authenticate realm","body":"Realm string ('Zuber - Designer Wallcoverings (internal)') was triggering\nNode ERR_INVALID_CHAR on every 401, crash-looping the viewer. Replaced with\nres.setHeader('WWW-Authenticate', 'Basic realm=\"Zuber Internal\"'). Verified\n401 clean + 200 with auth + restart count stops climbing.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"eb397ec","date":"2026-07-09 09:14:27 -0700","author":"Steve Abrams","subject":"Zuber internal line viewer (basic-auth, reads zuber_catalog, sort+density+image-only+created-date chips)","body":""}]}