Repository navigation
Mobile app phase 5: v3 design, diff review with keep and undo (#326) - #879
Merged
Merged
Conversation
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.
Part of #326.
Phase 5 of the mobile app: the v3 design across the app, then diff review with keep and undo. Built spec-first: cases MUS-SPEC-23-24A to 24P in
docs/spec/clauses/23-mobile.md, each with a red test committed before it went green.The v3 restyle (24A to 24I)
packages/mobile/src/theme.tsandmotion.ts: the v3 dark and light palettes (tonal surfaces, separators inside cells only, 16 % and 26 % tints), the iOS type scale (nothing under 12; prose 17/26; code 13/21, 14 in code blocks), 20 pt text margins and 16 pt card margins, radii 26/24/38, capsule buttons (50 and 36), snappy/gentle/bouncy springs, and a 150 ms crossfade under Reduce Motion.chat.stop, act only); with text typed it becomes Steer, with a hint. The composer shows its chips only while focused. A run that finishes while the chat is open resolves into a summary card with Review.Diff review with keep and undo (24J to 24P)
packages/agent-app/src/runtime/mobile/:changes.list: the chat's latest turn, the same one the desktop's changed-files card uses, throughreview.baselines,review.changesandreview.marks. Paths are folder-relative.changes.diff: the desktop's own hunks with their ids, named after the enclosing function, with three lines of context and changed-word ranges. Pages hold 400 lines. Highlighting runs on the desktop with Shiki (JavaScript regex engine, the desktop's dark-plus/light-plus themes, sent as [dark, light] colour pairs), so the phone does no parsing. A new file past the line diff's budget is one whole-file hunk.changes.keepandchanges.undogo throughreview.keep,review.undoHunkandreview.undoFile. They are act only, with access checked again right before the write (after a test gate). A stale hash writes nothing, and the path must be one of the turn's changes.Security tests
README.md,../../etc/passwd) is refused.chat.stopis refused.Receipts
Device evidence
No phone was attached (
adb deviceslists nothing), so there are no device screenshots. The restyle is checked in jest only; glass, blur, the shimmer and caret timing, the spring feel and the split diff on rotation are not verified on a device.Deferred