{"slug":"goodquestion-ai","total":13,"limit":100,"offset":0,"since":null,"commits":[{"hash":"be3a3f9","date":"2026-07-28 09:43:36 -0700","author":"Steve Abrams","subject":"Backfill Apr11-Jul28 journal gap: 16 generalized milestone posts + v2 content plan","body":"All posts mapped to real shipped work, generalized (no vendor/client names,\nno pricing/infra secrets) per the new content plan's no-trade-secrets rule.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"715b360","date":"2026-07-27 10:25:25 -0700","author":"Steve","subject":"security: full-genericize business secrets from public site, v1.2.2","body":"Per owner directive (no supplier names, no business secrets), abstracted all\nreferences to the specific business across 9 files:\n- Industry (wallcovering/wallpaper) -> generic 'product/catalog'\n- Commerce platform (Shopify) -> 'the commerce platform'; renamed shopify-* CSS\n  classes + #shopify/#furnishings anchors\n- Infra (Kamatera) -> 'Cloud VPS'\n- Real client names (projects.ts) -> anonymized descriptors; client-named image\n  paths -> neutral project-0N.png\n- Business-scale metrics -> vague ('a large catalog')\nKept: owner's own public products + agent-methodology brand metrics + @agentabrams\nhandles. Full-battery scan clean (src + dist), build 71 pages."},{"hash":"36f0311","date":"2026-07-27 10:19:46 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T10:19:40 (9 files) — src/content/posts/2026-04-01-how-one-person-runs-150-autonomous-agents-on-a-single-80-dollar-server.md src/content/posts/2026-04-01-what-i-shipped-today-and-why-it-matters-automating-lead-time.md src/content/posts/2026-05-18-git-surgery-shrinking-a-repo-from-18gb-to-571mb.md src/content/posts/2026-06-10-cracking-a-fleet-of-broken-scrapers-in-one-day.md src/content/posts/2026-07-02-the-four-layer-bug-that-hid-behind-a-comment.md","body":""},{"hash":"a277da0","date":"2026-07-27 10:04:26 -0700","author":"Steve","subject":"security: scrub personal + sensitive info from public site, v1.2.1","body":"- Replaced personal Gmail (theagentabrams@gmail.com) with role address\n  hello@goodquestion.ai in hire.astro contact form.\n- Genericized 3 posts that named real vendors (incl. Schumacher, internal-only)\n  or openly described crawling manufacturer sites w/ login auth — now 'ingest\n  supplier catalogs' with no named vendors, no auth-circumvention admission.\n- Full scan clean: no tokens/keys/creds, no private IPs/hosts/db names, no\n  personal emails, no private-label vendor real-names in src or built dist/.\nBuild-verified: 71 pages."},{"hash":"336a3be","date":"2026-07-27 09:56:33 -0700","author":"Steve","subject":"feat: refresh goodquestion.ai — catch up blog, modernize design, refresh projects/pages, v1.2.0","body":"- Blog: +9 posts (2026-05-06 → 07-26) authored from real CNCP wins, closing\n  the ~15-week gap since the last post (2026-04-12). Public-safe, honest metrics.\n- Design: modernized global.css (fluid type scale, motion/radius/shadow tokens,\n  added light mode + focus-visible), refreshed hero + post-list + reading layout\n  in index.astro & layouts. All original CSS var names preserved.\n- Projects/pages: +7 real shipped projects in projects.ts (GovArbitrage, National\n  Real Estate Explorer, Client Growth Portals, AI Wallpaper, Directories, 90210\n  Guide, Command Center); sharpened about.astro + hire.astro positioning.\n\nBuild-verified: 71 pages (was 54), 0 errors. Dev-verified: all routes 200."},{"hash":"a7e17c3","date":"2026-07-27 09:40:25 -0700","author":"Steve","subject":"chore(security): 6 vulns -> 0, remove unused 'serve' dep, v1.1.1","body":"Removed dead 'serve' dependency (unreferenced; astro preview covers it) —\ncleared 2 moderate + serve-chain highs. Non-force npm audit fix on the\ngoogleapis->gaxios->glob chain removed 42 pkgs -> 0 vulnerabilities.\nBuild-verified (54 pages) + dev-verified (127.0.0.1:4321 -> 200). No --force,\nno breaking changes."},{"hash":"3dc9a80","date":"2026-07-27 09:29:46 -0700","author":"Steve","subject":"chore: upgrade Astro 5.17.3 -> 7.1.4 (+mdx 7, sitemap 3.7.3), v1.1.0","body":"Major framework upgrade, build-verified (54 pages + sitemap) and dev-verified\n(127.0.0.1:4321 -> 200). Node 26 satisfies Astro 7's >=22.12 requirement.\nIPv4 dev-bind fix (host:true) carries forward unchanged."},{"hash":"8555b26","date":"2026-07-27 09:05:36 -0700","author":"Steve","subject":"chore: v1.0.1 (session close — IPv4 dev-bind fix)","body":""},{"hash":"93eadf7","date":"2026-07-27 08:48:52 -0700","author":"Steve","subject":"Bind dev/preview to all IPv4 (host:true) so 127.0.0.1:4321 works","body":"Astro's localhost default bound IPv6-only (::1), refusing http://127.0.0.1.\nAdded server.host + --host to dev/start/preview."},{"hash":"935c3cb","date":"2026-06-23 17:43:25 -0700","author":"Steve","subject":"Env-ify capture scripts: remove leaked DWSecure2024! password literal","body":"capture-3d-screenshots.cjs now reads process.env.BASIC_AUTH_PASS||AUTH_PASS.\n(capture-dashboard.cjs also fixed on disk but is gitignored.) Not running."},{"hash":"b7a185a","date":"2026-06-23 17:03:20 -0700","author":"Steve","subject":"Env-ify generate-hero-images.cjs: remove leaked Gemini literal, read from env","body":"Removed hardcoded leaked Gemini key (…S2ic); now reads process.env.GEMINI_API_KEY\nwith a throw-guard. Script not running (zero breakage risk). Does NOT complete\nrotation — key still live until revoked at Google; remains in git history."},{"hash":"1d32a58","date":"2026-05-30 23:56:30 -0700","author":"Steve Abrams","subject":"fix: add rel=noopener noreferrer to 6 target=_blank links in index.astro","body":"Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>"},{"hash":"bc88987","date":"2026-05-06 10:25:30 -0700","author":"Steve Abrams","subject":"initial scaffold (gitify-all 2026-05-06)","body":""}]}