Launch: scripted screenshots (just screenshots) #24

Closed
opened 2026-10-02 01:38:36 +00:00 by jhgaylor · 1 comment
Owner

Blocks: #28 (and through it the control track)

Repeatable screenshots for the page and README, made by a script so they can be redone when the UI changes, and never showing real data.

Decided 2026-10-01: a scripted Playwright spec.

  • just screenshots: starts a throwaway daemon (own --state-dir, own port, like just dev), seeds a demo session, and runs a Playwright spec that writes PNGs to site/img/ (or docs/img/).
  • The seed is deterministic: fixed session/tab names, a fake $HOME/prompt, scripted output (no real hostnames, paths or history).
  • Shots (desktop at 1440×900 and 2× DPR; phone at an iPhone viewport):
    • Desktop: a session with tabs and splits (vim, a build, a shell), command marks in the gutter.
    • Right-click menu on a pane (mouse-first is the pitch).
    • Restored pane: the ── restored <time> ── marker after a daemon restart.
    • Agent block: a tool-call card and an approval card, and a question card. Use a scripted fake ACP agent so no real model call or cost is needed.
    • Phone: the pane view and the "Needs you" list.
    • Optional: a short GIF/WebM of drag-to-split.
  • Light and dark if the app has both.
  • Optimized (oxipng/webp) so the page stays small.

Done when

  • just screenshots on a clean checkout regenerates every image, and none of them show anything from geek.
**Blocks:** #28 (and through it the control track) Repeatable screenshots for the page and README, made by a script so they can be redone when the UI changes, and never showing real data. Decided 2026-10-01: a scripted Playwright spec. - [ ] `just screenshots`: starts a throwaway daemon (own `--state-dir`, own port, like `just dev`), seeds a demo session, and runs a Playwright spec that writes PNGs to `site/img/` (or `docs/img/`). - [ ] The seed is deterministic: fixed session/tab names, a fake `$HOME`/prompt, scripted output (no real hostnames, paths or history). - [ ] Shots (desktop at 1440×900 and 2× DPR; phone at an iPhone viewport): - [ ] Desktop: a session with tabs and splits (vim, a build, a shell), command marks in the gutter. - [ ] Right-click menu on a pane (mouse-first is the pitch). - [ ] Restored pane: the `── restored <time> ──` marker after a daemon restart. - [ ] Agent block: a tool-call card and an approval card, and a question card. Use a scripted fake ACP agent so no real model call or cost is needed. - [ ] Phone: the pane view and the "Needs you" list. - [ ] Optional: a short GIF/WebM of drag-to-split. - [ ] Light and dark if the app has both. - [ ] Optimized (oxipng/webp) so the page stays small. ### Done when - `just screenshots` on a clean checkout regenerates every image, and none of them show anything from geek.
Author
Owner

Done: just screenshots (web/screenshots/). A throwaway daemon with a demo HOME (prompt, a small git repo, a stand-in cargo) and a scripted ACP agent (demo_acp.py, run as demo-agent); writes site/img/ (desktop, pane menu, restored after SIGKILL, agent approval, question card, phone agent, phone sheet, phone terminal) and WebP copies. Nothing from geek appears.

Found on the way: at an emulated 2x pixel ratio xterm's WebGL renderer draws canvases at the wrong size (2x or 0.5x), so the spec uses the DOM renderer. Worth checking on a real Retina screen (jake-mini) whether WebGL panes are sized right there.

Done: `just screenshots` (web/screenshots/). A throwaway daemon with a demo HOME (prompt, a small git repo, a stand-in `cargo`) and a scripted ACP agent (`demo_acp.py`, run as `demo-agent`); writes site/img/ (desktop, pane menu, restored after SIGKILL, agent approval, question card, phone agent, phone sheet, phone terminal) and WebP copies. Nothing from geek appears. Found on the way: at an *emulated* 2x pixel ratio xterm's WebGL renderer draws canvases at the wrong size (2x or 0.5x), so the spec uses the DOM renderer. Worth checking on a real Retina screen (jake-mini) whether WebGL panes are sized right there.
Sign in to join this conversation.
No description provided.