{"slug":"vendor-agents-viewer","total":12,"limit":100,"offset":0,"since":null,"commits":[{"hash":"b2d905e","date":"2026-07-03 08:08:18 -0700","author":"Steve","subject":"chore: macstudio3 migration — reconcile from mac2 + repoint paths (stevestudio2→macstudio3, node/npm/npx→/opt/homebrew)","body":""},{"hash":"affc2b0","date":"2026-06-26 11:45:27 -0700","author":"Steve Abrams","subject":"auto-save: 2026-06-26T11:45:25 (1 files) — package-lock.json","body":""},{"hash":"ae7d49a","date":"2026-06-26 11:21:12 -0700","author":"Steve","subject":"chore: v1.0.1 (session close — lint ✓ / refactor no-op)","body":""},{"hash":"52c61e1","date":"2026-06-26 10:47:46 -0700","author":"Steve","subject":"harden va-* launcher: EADDRINUSE backoff binder + --kill-timeout 4000 (memo-approved)","body":""},{"hash":"0b82d9d","date":"2026-06-22 09:24:12 -0700","author":"Steve","subject":"security: strip hardcoded secret -> env-first/passwordless. No rotation/deploy.","body":""},{"hash":"9768cb4","date":"2026-06-10 20:39:29 -0700","author":"SteveStudio2","subject":"label intentional no-scrape vendors honestly: API exposes skip_catalog_scrape/is_private_label/is_active; cards show 'n/a — private label' or 'n/a — no source' instead of 'none built' for the 14 vendors with no scrapeable source; gimmersta flagged in registry","body":""},{"hash":"47c3aaa","date":"2026-06-10 16:30:02 -0700","author":"SteveStudio2","subject":"agent-host: normalize scraper output — accept bare array or {vendor,products} wrapper (new feed-first scrapers use the wrapper; scan was failing with .slice is not a function)","body":""},{"hash":"6eba3c5","date":"2026-06-10 16:28:21 -0700","author":"SteveStudio2","subject":"alias map: elitis->elitis-wallcovering, DWDP->dwdp exact-case","body":""},{"hash":"848ffce","date":"2026-06-10 09:02:59 -0700","author":"SteveStudio2","subject":"resolveScraper alias map: 23 vendor codes mapped to existing scraper files (cole_son->cole-and-son, maya->maya-romanoff, hollywood->momentum-textiles, elitis->elitis-wallcovering, etc); port conflicts resolved via registry reassign (dolce_gabbana 9736, andrew_martin 9737, DWDP 9738)","body":""},{"hash":"1e2344e","date":"2026-06-10 07:54:08 -0700","author":"Steve","subject":"Launch infra: generic agent-host.js (per-vendor, env-parameterized) + viewer Launch/Restart/Scan wired to local pm2. Launch starts the agent, Scan runs the vendor's real scraper (innovations: 8 products live). Resolves vendor_code->scraper_id; OOM-safe (one agent per click).","body":""},{"hash":"913eff2","date":"2026-06-10 07:45:18 -0700","author":"Steve","subject":"Honest agent status: resolve real pm2 name per port, flag conflict (port reused by other app) vs true online. 0 vendor agents actually running.","body":""},{"hash":"338a1ba","date":"2026-06-10 07:40:14 -0700","author":"Steve","subject":"initial scaffold — vendor agents viewer (review/launch/restart, descriptions+usage, sort+density, admin date/time)","body":""}]}