docs(website): re-shoot the docs stills on the 0.69 UI, and make the rig reproducible - #828
Closed
edspencer wants to merge 7 commits into
Closed
docs(website): re-shoot the docs stills on the 0.69 UI, and make the rig reproducible#828edspencer wants to merge 7 commits into
edspencer wants to merge 7 commits into
Conversation
added 5 commits
August 10, 2026 13:49
root-home, adopt-row, adopt-modal, project-settings and the trigger tool picker were all shot before the design work landed (#763/#768/#769/#780/#801). Every one showed chrome, surfaces, type and accent the redesign replaced, on pages whose prose is in the present tense. Shot from the docs-media rig at v0.69.0, Foundation/dark, hue null, tint 0 — the out-of-the-box appearance. capture.mjs now pins the theme via addInitScript (the keys are read by a pre-paint script, so a post-goto evaluate catches a mid-swap frame) and asserts it applied.
… panel + theme quartet Foundation dark at the out-of-box default (theme quartet excepted). Shot against a rebuilt rig at main, verified post-redesign via the Appearance section. Discover is NOT included: the rig has no discoverable Claude Code history, so the route renders its empty state. Needs seeding.
The previous frame caught the list when tidepool held a single chat, so it showed the adopted row alone — no contrast, which is the entire point of the image on using/working-in-chats.md:80. Re-shot with four ordinary chats above it, so the terminal provenance marker reads AS a distinction.
Deploying paddock with
|
| Latest commit: |
f60fe9d
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://e58fed9d.paddock-7u2.pages.dev |
| Branch Preview URL: | https://docs-media-v069.paddock-7u2.pages.dev |
added 2 commits
August 10, 2026 14:06
…shot Four runtime themes plus a free accent picker make "which theme is this?" unanswerable from a PNG — which is most of what made this re-shoot expensive to reason about. capture.mjs now writes <shot>.png.json observed FROM THE LIVE PAGE (theme, light/dark, hue, tint, solved accent, app version, route, viewport), so a silently-failed theme is detectable after the fact rather than only at capture time. shots.manifest.json is the committed aggregate. Immediately useful: the quartet records four distinct accent triples, which is what proves the theme applied rather than just the label being written.
The re-shot frame names a different chat and shows four ordinary rows above the adopted one; the alt text still described the previous capture.
edspencer
pushed a commit
that referenced
this pull request
Aug 10, 2026
git rm --cached was not enough: it left the files in the working tree, where the next blanket `git add -A` re-staged them and silently undid the split. Removing them from the tree on this branch is what actually holds. They are committed on docs/media-v069 (#828), which is where #815 should take them from — an asset and the reference to it belong in one PR, and whats-new.mdx is on #815.
Owner
Author
edspencer
pushed a commit
that referenced
this pull request
Aug 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Every UI-bearing asset on the site was shot before the design work landed. The
seven stills merged in the previous pass predate the first design commit (
67e493f)by 41 minutes, so they are pre-redesign exactly like the older ones. Age was never the
criterion — three of these were a day old and still wrong, because of what landed
after they were committed.
These sit under prose in the present tense, on pages a reader consults to operate
the product. A pre-redesign frame there is worse than no image: a reader who cannot
find the pictured control concludes the docs are stale everywhere.
Re-shot — 7 stills
getting-started/root-home.png·config/project-settings.png·using/adopt-row.png·using/adopt-modal.png·using/adopted-badge.png·using/promote-to-project.png·guides/trigger-tool-picker-bash.pngAll at v0.69.0 in Foundation / dark /
hue: null/tint: 0— the out-of-the-boxappearance (
DEFAULT_APPEARANCE;paddock:themedefaults to dark). That is what areader sees on first boot, which is a docs screenshot's whole job.
Two alt-text corrections ride along, and they are not cosmetic — alt text is the
only description a screen-reader user gets.
getting-started.mdclaimed four unreadchats and named OVERVIEW.MD/CHANGELOG.MD sections; the frame shows nine unread, three
projects grouped by area, and RUNNING/UNREAD/FILES.
Not here: the theme quartet and the Appearance panel
Those five stills live in #815, which also carries the 0.67 prose that references
them. Keeping a copy here would have made them orphans on this branch and put the same
bytes in two PRs. This branch has zero orphans and zero dangling references —
checked mechanically, both directions.
Making the rig reproducible
seed.mjsandserve.shexisted only on one machine and were full of its paths andports — so
capture.mjs, which is committed, was unusable by anyone else. Both arenow committed, driven by four env vars (
PADDOCK_RIG_HOME/_CLONE/_PROJECTS/_BASE), with no box paths.Worth reviewing rather than skimming:
serve.shwas retyped from a spec, not copied. The original held a live OAuthtoken in plaintext; those lines are gone rather than edited. A rig running a fake
claudemust never need a credential./home. The previous rig kept it there on a boxwhere only
/datawas a volume — a container restart destroyed everyproject.yamland every
.chats/*.jsonlwhile the data dir survived, leaving orphaned job recordsreporting chats whose transcripts were gone. Default is now
$PADDOCK_RIG_HOME/projects.0.0.0.0. WithPADDOCK_AUTH_MODE=none, binding allinterfaces publishes an unauthenticated instance. Capture runs on the same host, so
PADDOCK_DANGEROUSLY_ALLOW_OPENis no longer needed at all.capture.mjspins the theme viaaddInitScriptand asserts it applied. It hasto be
addInitScript: the threepaddock:*keys are read by a pre-paint inlinescript, so a
page.evaluateaftergotocatches a mid-swap frame — and a stalepaddock:appearance-cachepaints the previous theme's accent for one frame.shots.manifest.jsonrecords the observed theme, accent, mode and app versionbeside every shot, so "which build is this frame from?" is a file read rather than
the forensics that made this pass expensive.
Verification
cd website && npm install && npm run build→ exits 0, 52 pages.127.0.0.1hits across
website/src/content/docs/**+README.md, matching the recountedbaseline. No private hostname, LAN IP, container id or box path in the diff.
/api/instance-config(dataDir+driveMode: batch),never from
pm statusor/api/health— both are satisfied by a stale squatter.mainand/configconfirmed torender the Appearance section, which cannot exist before
75c3935. Without thisevery "re-shot" frame would be the old UI again, and nothing else would show it.
md5sumon every shot — no byte-identical pairs. Two unframed shots of one URLat one viewport land as the same file.
strings shot.pngis not a leakcheck — rendered text is pixels.
Docs-only: no changeset, no version bump.
Not in this PR
and the dual-use forks.
docs/demo/paddock-demo.gifand itswebsite/public/demo/copy — owned by docs(demo): re-shoot the demo reel on main at v0.67.0 (supersedes #790) #797.