{"slug":"studio-zero","total":14,"limit":100,"offset":0,"since":null,"commits":[{"hash":"d3a352d","date":"2026-07-26 19:56:47 -0700","author":"Steve Abrams","subject":"chore: version 0.4.0 → 0.5.0 (session close — first Kamatera deploy + honesty banner + basic-auth gate)","body":""},{"hash":"bdd814b","date":"2026-07-26 19:44:57 -0700","author":"Steve Abrams","subject":"DTD-B: optional HTTP Basic-Auth gate behind default-OFF SZ_BASIC_AUTH","body":"Stages the internal-only app for a future public launch. While SZ_BASIC_AUTH is\nunset the app is byte-for-byte open (no auth) so the live :9761 service and the\n/deploy /api/config smoke test are unaffected; set it to 1/on and every request\n(incl. /api/* + health) requires Basic-Auth. Creds default admin/DW2024!\n(SZ_BASIC_USER/SZ_BASIC_PASS override), constant-time compare, zero new deps.\nAdds zero-dependency test/auth.spec.js (7 checks, green). v0.4.0.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"87f86c8","date":"2026-07-26 19:39:16 -0700","author":"Steve Abrams","subject":"DTD-A: persistent honesty banner when a live call falls back to demo","body":"server.js flags a failed-live→demo response fallback:true (distinct from\nintentional demo mode). Front-end raises a persistent 'generation unavailable —\nplaceholder demo content' banner (real reason surfaced, fallback-demo badge,\nsurvives step navigation) so canned demo is never mistaken for a real result.\nAdds self-contained test/fallback.spec.js regression guard (7 checks, green).\nExisting ui.spec.js still 18/18 green; demo mode correctly stays banner-free.\nv0.3.0.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"6e679f7","date":"2026-07-26 16:32:14 -0700","author":"Steve Abrams","subject":"studio-zero: first Kamatera deploy config (pm2 studio-zero :9761, SZ_PROVIDER=cli Max-plan)","body":""},{"hash":"ce4a40d","date":"2026-07-25 11:36:00 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-25T11:35:57 (1 files) — test/","body":""},{"hash":"dfe27aa","date":"2026-07-25 11:14:37 -0700","author":"Steve","subject":"5x: REPORT — 2 clean sweeps (favicon + conditional export buttons fixed; M1 was a WHATWG bad-port artifact, not an app bug)","body":""},{"hash":"81d5154","date":"2026-07-25 11:10:11 -0700","author":"Steve","subject":"5x sweep 1: add favicon (kills 404); render export buttons only when a plan exists","body":""},{"hash":"987c6f9","date":"2026-07-25 11:01:52 -0700","author":"Steve","subject":"chore: guard clipboard copy (toast honesty), v0.2.0 (session close)","body":""},{"hash":"cceb51d","date":"2026-07-25 08:51:48 -0700","author":"Steve","subject":"studio-zero: one-click auto-build all 7 steps (chains niche→title→script; hero + toolbar buttons; SZ_PROVIDER=demo force-flag)","body":""},{"hash":"edefa92","date":"2026-07-25 00:16:18 -0700","author":"Steve","subject":"studio-zero: export — download full channel plan as standalone HTML + copy-as-markdown, inline rename; builder toolbar","body":""},{"hash":"1518094","date":"2026-07-25 00:04:52 -0700","author":"Steve","subject":"studio-zero: robust calendar title parser (whole-line bold titles + numbered/quoted fallbacks) — extracts all ~12 from live output","body":""},{"hash":"98efd98","date":"2026-07-24 23:16:49 -0700","author":"Steve","subject":"studio-zero: route live generation through Claude Max plan (local claude CLI, $0 marginal) with API + demo fallback","body":""},{"hash":"f7ce02e","date":"2026-07-24 10:05:31 -0700","author":"Steve","subject":"studio-zero: guided 7-step AI YouTube channel builder (David's verbatim prompts, Claude proxy + cost + demo fallback)","body":""},{"hash":"74d1fd4","date":"2026-07-24 09:57:01 -0700","author":"Steve","subject":"initial scaffold (studio-zero) via web-dev accelerator","body":""}]}