Skip to content

fix(mobile): native text selection in the tool details sheet - #5065

Merged
iscekic merged 2 commits into
mainfrom
tool-sheet-select-f6cb
Aug 5, 2026
Merged

fix(mobile): native text selection in the tool details sheet#5065
iscekic merged 2 commits into
mainfrom
tool-sheet-select-f6cb

Conversation

@iscekic

@iscekic iscekic commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Users can long-press command, output, reasoning, and tool error text in the tool details sheet to use native iOS text selection. The transcript preparation output keeps its existing behavior.

The product gains native selection handles and Copy support on the affected sheet surfaces without a custom action menu. The iOS callout appears on the first long press.

The implementation adds a shared read-only multiline TextInput. It replaces React Native 0.86 selectable Text, whose RCTParagraphComponentView.mm:311 edit-menu path does not call becomeFirstResponder and whose :336 path validates only copy:. The mono block uses an inTranscript prop to keep the transcript Text branch unchanged. The Metro prerequisite was already present on origin/main after rebase and is not duplicated.

Human steps: none before or after merge.

Visual Changes:

a1-after-press.png

diag-thought-sheet.png

E2E: bot-e2e — iOS verifier passed A1-A7. A1-A3 callouts were [Copy, Look Up, Translate]. A4 showed handles, widened the selection, and copied MD-alpha-bravo. A5 horizontal scroll passed. A6 vertical scroll passed. A7 preserved the message details long press without a native selection callout.

A8: not tested, expectation from code. Android uses a different native text-selection path, and this iOS round did not start an Android device. This is not device evidence.

A9: not exercised, no preparation attempt is reachable in the seeded session. The inTranscript prop and mounted test guard the unchanged transcript path. A9 is not reported as passed.

Share was absent from the observed iOS callouts. No custom Share action was added.

The mobile checks passed: format, typecheck, lint, check:unused, and the mobile Vitest suite (370 files, 3621 tests).

The Metro prerequisite was already fixed on origin/main after the required rebase, so this PR does not duplicate it.

Reviewers selected from repository history: @jeanduplessis and @pandemicsyn.

@iscekic iscekic self-assigned this Aug 5, 2026
@kilo-code-bot

kilo-code-bot Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (22 files)
  • apps/mobile/src/components/ui/selectable-text.tsx
  • apps/mobile/src/components/ui/selectable-text.mounted.test.tsx
  • apps/mobile/src/components/agents/mono-scroll-block.tsx
  • apps/mobile/src/components/agents/mono-scroll-block.mounted.test.tsx
  • apps/mobile/src/components/agents/part-detail-sheet.tsx
  • apps/mobile/src/components/agents/part-detail-sheet-host.mounted.test.tsx
  • apps/mobile/src/components/agents/preparation-group.tsx
  • apps/mobile/src/components/agents/tool-part-detail-body.test.ts
  • apps/mobile/src/components/agents/tool-cards/bash-tool-card.tsx
  • apps/mobile/src/components/agents/tool-cards/edit-tool-card.tsx
  • apps/mobile/src/components/agents/tool-cards/edit-tool-card.test.ts
  • apps/mobile/src/components/agents/tool-cards/write-tool-card.tsx
  • apps/mobile/src/components/agents/tool-cards/write-tool-card.test.ts
  • apps/mobile/src/components/agents/tool-cards/generic-tool-card.tsx
  • apps/mobile/src/components/agents/tool-cards/glob-tool-card.tsx
  • apps/mobile/src/components/agents/tool-cards/grep-tool-card.tsx
  • apps/mobile/src/components/agents/tool-cards/list-tool-card.tsx
  • apps/mobile/src/components/agents/tool-cards/read-tool-card.tsx
  • apps/mobile/src/components/agents/tool-cards/task-tool-card.tsx
  • apps/mobile/src/components/agents/tool-cards/todo-tool-card.tsx
  • apps/mobile/src/components/agents/tool-cards/web-search-tool-card.tsx
  • apps/mobile/src/components/agents/tool-cards/tool-card-output-cap.test.ts

Reviewed by kimi-k3 · Input: 118.1K · Output: 27.5K · Cached: 1.7M

Review guidance: REVIEW.md from base branch main

@iscekic iscekic added the human-ready The PR is ready for human review. label Aug 5, 2026
@iscekic
iscekic enabled auto-merge (squash) August 5, 2026 20:43
@iscekic
iscekic merged commit f6adda3 into main Aug 5, 2026
21 checks passed
@iscekic
iscekic deleted the tool-sheet-select-f6cb branch August 5, 2026 20:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

human-ready The PR is ready for human review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants