{"slug":"projects-agentabrams","total":11,"limit":100,"offset":0,"since":null,"commits":[{"hash":"a069b12","date":"2026-09-01 12:55:58 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-01T12:55:30 (1 data files) — package-lock.json","body":""},{"hash":"9408e7e","date":"2026-08-25 10:48:59 -0700","author":"Steve","subject":"creds-safe fetch guard: resolve relative fetch vs credential-free location (creds-in-URL trap)","body":"Fleet inoculation — opening this basic-auth app with credentials in the URL\npoisoned document.baseURI and made relative fetch('/api/…') throw. Guard resolves\nnon-absolute request URLs against location instead. Ref: creds-in-url-fetch-guard-fleet-pattern.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"fc399d6","date":"2026-07-30 07:21:36 -0700","author":"Steve Abrams","subject":"chore: v0.2.2 (session close — new-engine added to rail + categorized)","body":""},{"hash":"92b9487","date":"2026-07-28 16:24:11 -0700","author":"Steve Abrams","subject":"chore: v0.2.0 → v0.2.1 (session close — wallco.ai retirement)","body":""},{"hash":"e451721","date":"2026-07-28 15:27:34 -0700","author":"Steve Abrams","subject":"Retire wallco.ai from projects gateway (410-dead, superseded by wallpapersback)","body":""},{"hash":"88133e6","date":"2026-07-28 15:01:32 -0700","author":"Steve Abrams","subject":"categorize new-engine under DW Catalog & Marketing","body":""},{"hash":"89769e4","date":"2026-07-28 14:58:24 -0700","author":"Steve Abrams","subject":"Add new-engine (new.engine.designerwallcoverings.com) to the projects rail","body":""},{"hash":"8b5ce22","date":"2026-07-28 09:10:48 -0700","author":"steve@designerwallcoverings.com","subject":"chore: refactor (inline dead realUrl ternary) + v0.2.0 (session close)","body":""},{"hash":"e86c0c6","date":"2026-07-28 07:45:39 -0700","author":"steve@designerwallcoverings.com","subject":"left rail: collapsible category sections (7 groups, collapsed by default, auto-expand on search + current selection); build-projects.js assigns category via keyword rules","body":""},{"hash":"d08aba3","date":"2026-07-28 07:32:39 -0700","author":"steve@designerwallcoverings.com","subject":"deploy.conf: tailnet-proxy model; live at projects.agentabrams.com","body":""},{"hash":"3a2f655","date":"2026-07-28 07:23:20 -0700","author":"steve@designerwallcoverings.com","subject":"projects.agentabrams.com viewer: list-left + live-iframe-right (all.agentabrams schema)","body":""}]}