Repository navigation
Show transcript images as tiles, and clear removed sibling worktrees - #107
Merged
Merged
Conversation
Images form justified rows that keep each image's shape. Rows aim for 170 points and stop at 200, so a lone portrait screenshot stays a small tile instead of filling the screen. A small linear partition balances the rows, so seven screenshots read as three and four. The full-screen viewer now pages between the group's images and shows a position counter. iOS keeps a zooming scroll view per page. Android locks paging while zoomed, and its pan activates only when zoomed so an unzoomed swipe reaches the pager.
Rows now come from a midpoint rule instead of a linear partition, so the layout has no uncovered nullable branches. Pan no longer rechecks zoom in its update, since it activates only while zoomed.
The removed-directory check lists a worktree's parent through the live project root. When that parent is an ancestor of the root, the server lists the entry leading back to the root as "." or "..", and the check rejected the whole listing as malformed, so the location never retired. It now ignores only that single entry; any other unexpected entry still rejects the listing. The selected location was also exempt from the check, and it outlives the session screen that set it, so one visit kept the warning until the app restarted. Selection no longer protects a location, and a failed lookup of a selected location the check proved removed no longer marks attention coverage incomplete.
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.
Summary
Two changes: transcript images become small tiles with a swipeable viewer, and the unavailable-location warning now clears for removed worktrees that sit beside their project root.
Transcript image tiles
Transcript images showed as full-width images, or as square crops when there were several. They now show as small tiles you tap to open.
Removed sibling worktrees
An iPhone kept a permanent unavailable-location warning for an external worktree that only archived sessions referenced, after the directory was removed.
./(or../one level higher) among the../name/siblings. The check rejected the whole listing as malformed, and a rejected listing never proves absence. It now ignores only that single entry; any other unexpected entry still rejects the listing. The 2026-10-25 fix only covered worktrees whose parent does not contain the root.Both changes are already published as an EAS Update to
preview(runtime 0.1.6) after both native fingerprints matched the installed baseline.Verification
pnpm check(1532 mobile tests, adapter tests, both Hermes exports)pnpm native:doctor(18/18)pnpm crap --threshold 30docs/COMPATIBILITY.md. For images, check that an Android pinch starting with sideways motion zooms rather than pages, and that zoom inside the pager behaves on iOS. For worktrees, check that the warning clears on the iPhone that showed it.TODO.mdreflect the resulting behavior.