Skip to content

fix(swift-ios): add copy and timestamp footers to chat messages - #11252

Open
mackinleysmith wants to merge 5 commits into
pingdotgg:t3code/rebuild-mobile-app-swiftfrom
mackinleysmith:t3code/ios-swift-add-response-copy-button
Open

mackinleysmith wants to merge 5 commits into
pingdotgg:t3code/rebuild-mobile-app-swiftfrom
mackinleysmith:t3code/ios-swift-add-response-copy-button

Conversation

@mackinleysmith

@mackinleysmith mackinleysmith commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Copying a full sent message or assistant response in SwiftUI requires the selection menu, while text selection is limited to individual blocks.

What Changed

Add compact copy and timestamp footers to completed, nonempty chat messages. Assistant footers show the copy icon followed by time. Sent-message footers sit outside the bubble, aligned right, with time followed by the copy icon, matching the web layout.

The shared control copies the full message text, retains a 44-point tap target, and briefly shows a checkmark with haptic and VoiceOver feedback. Timestamps use the last-updated time in the phone’s local clock format, falling back to creation time for older cached messages. Queued and failed user messages keep their existing status display.

Copy is available from the long-press menu for user and assistant messages. Eligible sent-message footers include an “Edit from here” arrow between time and copy, using the existing rewind checks and confirmation.

Why

Makes whole-response copying discoverable without changing text selection. This is confined to the SwiftUI chat view; it needs no server, contract, provider, web, desktop, or React Native changes. Related selection work: #6089 and #6110.

Verification

  • Copy-menu update: Simulator build passed and long-press Copy matched the complete fixture text. The cached offline thread correctly hides Edit from here; enabled rewind was not exercised through the new shortcut.

  • Sent-message footer: Simulator build passed; verified right-aligned placement, the “Copy message” accessibility label, and exact copied message text.

  • Updated footer: Debug iOS Simulator build passed, visually checked icon/time layout, and verified the copy icon puts the full Markdown fixture on the clipboard.

  • In a fresh iPhone 17 Pro simulator on iOS 26.5, tapped Copy and compared the clipboard with the seeded response. All 197 characters matched exactly, including multiple paragraphs, bold Markdown, list items, and a fenced code block.

  • git diff --check passed; commit formatting hook passed.

UI Changes

Before After
Before After

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes

Implemented with GPT-6 in the Codex harness through T3 Code.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Sep 11, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 38bed2e

Macroscope's review found this PR approvable — The changes are confined to the Swift iOS chat view and an optional timestamp mapping, adding localized copy/edit affordances, timestamps, and accessibility feedback without altering server contracts or processing workflows. The implementation is small and self-contained with no product-default or static-analysis configuration changes.

You can add or adjust custom eligibility rules. Learn more.

@mackinleysmith mackinleysmith changed the title fix(swift-ios): add a copy button to assistant responses fix(swift-ios): add copy and timestamp footers to chat messages Sep 19, 2026
@github-actions github-actions Bot added size:L 100-499 changed lines (additions + deletions). and removed size:M 30-99 changed lines (additions + deletions). labels Sep 19, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant