fix(mobile): clear the copy toast, restore semantic icons, and raise code contrast - #6818
Merged
Merged
Conversation
Contributor
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Files Reviewed (15 files)
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
chrarnoldus
approved these changes
Sep 29, 2026
This was referenced Sep 30, 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.
Changelog for users
Changelog for maintainers
E2E proof
Long-press message-details Copy keeps the open sheet readable and actionable with no app-root toast covering it: handleMessageDetailsCopy (apps/mobile/src/components/agents/message-details-copy.ts:13-29) writes the clipboard via Clipboard.setStringAsync and returns a boolean with no toast, and MessageDetailsSheet renders the Copied / Could not copy outcome inline via testID message-details-copy-feedback (apps/mobile/src/components/agents/message-details-sheet.tsx:212, driven by useMessageDetailsCopyFeedback at line 67), asserted by message-details-sheet.mounted.test.tsx 'shows inline Copy success and failure feedback and clears it on close' (lines 392-446).
Asserted value:
details-copy: inline 'Copied to clipboard' under message-details-copy-feedback. Sense check (model): Head ui-assert log line 'details-copy: inline 'Copied to clipboard' under message-details-copy-feedback' and the head screenshot showing that inline line under Copy message, versus the base run's 'testID node absent; 'Copied to clipboard' text absent'.Base
332f0c033e07Base log: ui-assert 9d6c74f84631 exited 1
Head
e60a7aa55e98Head log: ui-assert 9d6c74f84631 exited 0
Home ProductChoices restore the semantic icon treatment matching the Profile rows: ConfigureRow hue=honey for Code Reviewer and Security Agent and hue=gold for PR Review (apps/mobile/src/components/home/product-choices.tsx:37,47,61) resolve through the shared hue->rowTint->IconTile tokens (apps/mobile/src/components/ui/configure-row.tsx:102-112, apps/mobile/src/lib/agent-color.ts:159-212, apps/mobile/src/components/ui/icon-tile.tsx:34) with no one-off hard-coded colors, asserted as ['honey','honey','gold'] in product-choices.mounted.test.tsx:88, and profile-screen.tsx:181,194,225 already carries the same honey/honey/gold treatment.
Asserted value:
home hue: Code Reviewer, Security Agent and PR Review tiles saturated (honey/honey/gold). Sense check (model): Head log line 'home hue: Code Reviewer, Security Agent and PR Review tiles saturated (honey/honey/gold)' with head ui-assert exiting 0, against base saturation 0.30 neutral, and the head screenshot shows the honey/gold-tinted tiles on the Home Explore rows.Base
332f0c033e07Base log: ui-assert 953f34f3b7a3 exited 1
Head
e60a7aa55e98Head log: ui-assert 953f34f3b7a3 exited 0
Formatted code blocks derive syntax token colors from the real code-card surface and stay legible and distinct in both themes: tokenSchemeForSurface/compositeOver (apps/mobile/src/lib/pr-review/diff/syntax-colors.ts:108-164) classify the composited card, markdown-palette passes codeTokenScheme for the kilo-chat/user/assistant cards (apps/mobile/src/components/agents/markdown-palette.ts:64,77,86), markdown-renderer forwards it (markdown-renderer.ts:219), and CodeBlock/highlightRunChildren apply tokenColorForScheme (code-block.tsx:182,389; code-block-chunk-content.tsx:32,51; highlight-runs.tsx:49), with syntax-colors.test.ts asserting every onLight/onDark token clears the 4.5:1 MIN_TEXT_RATIO on the bright lime card and the tinted olive #616B28 kilo-chat card (lines 21,26-28,167-178).
Asserted value:
code contrast: JSON tokens clear 4.5:1 on the bright user card. Sense check (model): Head ui-assert exited 0 with 'code contrast: JSON tokens clear 4.5:1 on the bright user card' (dark #1e6639 token at 4.72:1), while base exited 1 with 'code contrast: JSON tokens below 4.5:1 on the bright card' (#5fcb8e at 1.37:1), on the lime-card JSON code-block screenshots.Base
332f0c033e07Base log: ui-assert 27c3ae0c6e60 exited 1
Head
e60a7aa55e98Head log: ui-assert 27c3ae0c6e60 exited 0
Owner request