Bring screen-tour to main - #562
Merged
Merged
Conversation
The tool was written on the redesign branch, where it produced the main-vs- redesign comparison, but nothing in it is about that branch: it walks a build through the screens that carry its design and photographs each one, and collage.py lays two builds' screenshots out side by side as a PDF. One tour walks both designs - each step looks for a toolbar item or a floating button and takes whichever is on screen - so it keeps working across a branch that moves things. Useful against any change that alters what the app looks like, so it should not have to wait for the redesign to land. The files are unchanged from f676eba and 56795ab; only the CLAUDE.md entry is rewritten, because that file has a different shape here than on redesign. Also ignore python bytecode. Running the tool leaves a __pycache__ next to it and it kept showing up as untracked. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E1ANEeai87KtnX5pBzgDEJ
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f22f71f028
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
Two things it had baked in from the machine it was written on. The system picker row is called "Documents" on some devices and "Files" on others, and the tour only knew "Files" - on those devices it never leaves the chooser, then hunts for filenames in a chooser that is still open. The instrumented tests already match both names, so match the same pair. collage.py only listed macOS font paths and fell back to ImageFont.load_default(), which ignores the requested size: at 300 dpi every title and caption would come out as specks, quietly, in a PDF whose whole job is to be looked at. Add the usual linux paths and fail with something actionable if none of them are there. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E1ANEeai87KtnX5pBzgDEJ
andiwand
added a commit
that referenced
this pull request
Aug 2, 2026
Brings in #559 through #562: the in-app review fixes, the save path, and screen-tour. Three conflicts worth naming. tools/screen-tour is the same tool on both sides - main took it from here, then fixed two things review found. Resolved to main's copy, so this branch picks the fixes up: the system picker row is called "Documents" as well as "Files", and collage.py had macOS-only font paths behind a fallback that silently ignores the requested size. MainActivity's picker conflict is main still having the "Open document via:" chooser this branch deleted. Kept this branch's version, which goes straight to the system picker, and moved main's leftForOwnActivity marker onto the one launch site that survived - it is what stops a return from the picker counting as the user opening the app. CLAUDE.md already documents the tools here, so main's copy of that section is dropped rather than added twice. spotlessCheck, both debug variants, lintProDebug and testProDebugUnitTest pass. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E1ANEeai87KtnX5pBzgDEJ
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.
tools/screen-tourwas written on theredesignbranch, where it produced the main-vs-redesign comparison PDF. Nothing in it is about that branch, and it is useful against any change that alters what the app looks like — so it should not have to wait for the redesign to land.screen-tour.pywalks a build through the screens that carry its design and photographs each one.collage.pylays two builds' screenshots out side by side as a PDF at 300 dpi.story.jsonholds what each page says, so that is the file to edit when the design changes rather than the code.One tour walks both designs — each step looks for a toolbar item or a floating button and takes whichever is on screen — so it keeps working across a branch that moves things.
What is in the diff
The four files under
tools/screen-tour/are unchanged fromf676ebaaand56795abfonredesign. Only theCLAUDE.mdentry is rewritten, because that file has a different shape here than it does there; the new## Toolssection covers bothrender-sweep(already on main, previously undocumented) andscreen-tour.Also ignores python bytecode — running the tool leaves a
__pycache__next to it, which kept showing up as untracked — and.claude/.Verification
screen-tour.pyandcollage.pybyte-compile,story.jsonparses. The tool itself needs a device onadband Pillow; it asserts nothing and fails no build, so it is not wired into CI.Note this will conflict trivially with
redesignwhen that merges, since the same files land there — resolve in favour of whichever is newer.🤖 Generated with Claude Code