Skip to content

Fix: copy prompt/answer for selected message#25438

Merged
raycastbot merged 13 commits intoraycast:mainfrom
JMLogs:fix-copy-actions-gemini
Mar 7, 2026
Merged

Fix: copy prompt/answer for selected message#25438
raycastbot merged 13 commits intoraycast:mainfrom
JMLogs:fix-copy-actions-gemini

Conversation

@JMLogs
Copy link
Contributor

@JMLogs JMLogs commented Feb 14, 2026

Description

Fixes missing “Copy prompt/answer” actions by ensuring GeminiActionPanel consumes the selected message index (idx) so actions target the correct chat entry.

Summary

In the Gemini “AI Chat” UI, the Action Panel couldn’t reliably copy the prompt/answer for the selected message because the action component didn’t receive and/or use the selected message index.

What was broken

  • “Copy prompt/answer” actions were missing / not functional for individual chat entries.
  • The UI passes an idx, but the Action Panel component didn’t consume it, so it didn’t know which message to target.

What I changed

  • Updated GeminiActionPanel to accept idx and resolve the selected message from the current chat history.
  • Added Action Panel items:
    • Copy Answer
    • Copy Prompt
    • Windows-friendly shortcuts (Ctrl variants)
    • Optional: Copy Entire Chat (Transcript)

Testing

  • ✅ Tested on Raycast for Windows using npm run dev
  • ✅ Confirmed actions appear for a selected message and copy expected content to clipboard

@raycastbot raycastbot added extension fix / improvement Label for PRs with extension's fix improvements extension: raycast-gemini Issues related to the raycast-gemini extension platform: macOS platform: Windows labels Feb 14, 2026
@raycastbot
Copy link
Collaborator

raycastbot commented Feb 14, 2026

Thank you for your contribution! 🎉

🔔 @EvanZhouDev @ridemountainpig @d0zingcat @ViGeng @anwarulislam @DanielFitzsimmons @aleksishere you might want to have a look.

You can use this guide to learn how to check out the Pull Request locally in order to test it.

📋 Quick checkout commands
BRANCH="fix-copy-actions-gemini"
FORK_URL="https://github.com/JMLogs/extensions.git"
EXTENSION_NAME="raycast-gemini"
REPO_NAME="extensions"

git clone -n --depth=1 --filter=tree:0 -b $BRANCH $FORK_URL
cd $REPO_NAME
git sparse-checkout set --no-cone "extensions/$EXTENSION_NAME"
git checkout
cd "extensions/$EXTENSION_NAME"
npm install && npm run dev

We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 10-15 business days.

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Feb 14, 2026

Greptile Summary

Fixes missing copy actions for individual chat messages by passing the selected message index (idx) to GeminiActionPanel. The implementation correctly resolves the selected message from chat history and adds three new copy actions: Copy Answer, Copy Prompt, and Copy Entire Chat (Transcript). The code uses proper null safety checks and handles edge cases appropriately.

  • ✅ Copy actions now target the correct selected message
  • ✅ Proper null safety with optional chaining and fallback values
  • ✅ Full chat transcript export feature added
  • ⚠️ CHANGELOG date needs placeholder correction

Confidence Score: 4/5

  • Safe to merge after fixing the CHANGELOG date placeholder
  • The code implementation is solid with proper null checks and correct logic for targeting selected messages. The only issue is a minor CHANGELOG formatting requirement that should be corrected before merge.
  • Pay attention to extensions/raycast-gemini/CHANGELOG.md for the date placeholder fix

Important Files Changed

Filename Overview
extensions/raycast-gemini/CHANGELOG.md Added changelog entry for copy actions fix; needs date placeholder correction
extensions/raycast-gemini/src/aiChat.jsx Correctly implements copy actions for selected messages with proper null safety

Last reviewed commit: b364310

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 files reviewed, 3 comments

Edit Code Review Agent Settings | Greptile

Comment on lines +148 to +156
title="Copy Answer (Ctrl+C)"
content={message.answer ?? ""}
shortcut={{ modifiers: ["ctrl"], key: "c" }}
/>
<Action.CopyToClipboard
title="Copy Prompt (Ctrl+Shift+C)"
content={message.prompt ?? ""}
shortcut={{ modifiers: ["ctrl", "shift"], key: "c" }}
/>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

duplicates existing cmd shortcuts with identical functionality

Suggested change
title="Copy Answer (Ctrl+C)"
content={message.answer ?? ""}
shortcut={{ modifiers: ["ctrl"], key: "c" }}
/>
<Action.CopyToClipboard
title="Copy Prompt (Ctrl+Shift+C)"
content={message.prompt ?? ""}
shortcut={{ modifiers: ["ctrl", "shift"], key: "c" }}
/>
{/* Windows-friendly duplicates removed - Raycast handles Cmd->Ctrl mapping automatically */}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the review!

  • ✅ Added CHANGELOG entry in 4a51c56
  • Regarding the Ctrl/Ctrl+Shift shortcuts: I kept explicit Windows variants intentionally to make the shortcuts visible/discoverable to Windows users in the action list, even though Raycast maps Cmd→Ctrl.

Tested on Raycast for Windows (npm run dev) — copy actions work as expected.

@JMLogs
Copy link
Contributor Author

JMLogs commented Feb 14, 2026

Thanks for the review!

  • ✅ Added CHANGELOG entry in 4a51c56
  • Regarding the Ctrl/Ctrl+Shift shortcuts: I kept explicit Windows variants intentionally to make the shortcuts visible/discoverable to Windows users in the action list, even though Raycast maps Cmd→Ctrl.

Tested on Raycast for Windows (npm run dev) — copy actions work as expected.

@JMLogs
Copy link
Contributor Author

JMLogs commented Feb 14, 2026

Thanks! I kept explicit Ctrl variants intentionally for discoverability in the action list on Windows, even though Raycast maps Cmd → Ctrl.
Happy to adjust if maintainers prefer keeping only a single shortcut definition.

@0xdhrv 0xdhrv self-assigned this Feb 19, 2026
@0xdhrv
Copy link
Contributor

0xdhrv commented Feb 19, 2026

Thanks! I kept explicit Ctrl variants intentionally for discoverability in the action list on Windows, even though Raycast maps Cmd → Ctrl. Happy to adjust if maintainers prefer keeping only a single shortcut definition.

@EvanZhouDev / @ridemountainpig any preference?

@EvanZhouDev
Copy link
Contributor

Hm... you shouldn't need to specify the command sequence in the title of the Action anyway. The shortcut is displayed next to the title by default. That way, you can just have one "cmd" shortcut and on Windows the users will see the shortcut changed to Ctrl automatically.

JMLogs and others added 5 commits February 26, 2026 02:16
""The shortcut is displayed next to the title by default. That way, you can just have one "cmd" shortcut and on Windows the users will see the shortcut changed to Ctrl automatically.""

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Removed Windows-friendly copy actions for answer and prompt.
@0xdhrv
Copy link
Contributor

0xdhrv commented Feb 26, 2026

Hey @JMLogs 👋

Can you please look into the failing action?

@0xdhrv 0xdhrv marked this pull request as draft February 26, 2026 11:52
@JMLogs JMLogs marked this pull request as ready for review February 27, 2026 07:40
JMLogs and others added 2 commits March 6, 2026 14:07
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Copy link
Contributor

@0xdhrv 0xdhrv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, approved ✅

@raycastbot raycastbot merged commit fc70c87 into raycast:main Mar 7, 2026
2 checks passed
@github-actions
Copy link
Contributor

github-actions bot commented Mar 7, 2026

Published to the Raycast Store:
https://raycast.com/EvanZhouDev/raycast-gemini

@raycastbot
Copy link
Collaborator

🎉 🎉 🎉

Such a great contribution deserves a reward, but unfortunately we couldn't find your Raycast account based on your GitHub username (@JMLogs).

Please link your GitHub account to your Raycast account to receive your credits and soon be able to exchange them for some swag.

LlaziG added a commit to LlaziG/raycast-extensions that referenced this pull request Mar 7, 2026
- chore(hugeicons-ui):Update hugeicons-ui: bump @hugeicons/core-free-icons and @hugeicons/react
- [Skills] Display Metadata from SKILL.md frontmatter (raycast#26101)
- Update CODEOWNERs (c2c1e0d)
- Add timely extension (raycast#25085)
- Fix: copy prompt/answer for selected message (raycast#25438)
- Update CODEOWNERs (46ecffc)
- Update todoist extension (raycast#26087)
- Dia: update @raycast/utils to 2.2.3 (raycast#26091)
- Update CODEOWNERs (3503a64)
- Add typewhisper extension (raycast#25733)
- Update CODEOWNERs (5ea5ef7)
- Add number-research extension (raycast#26060)
- Update trustmrr extension (raycast#26085)
- Update CODEOWNERs (40aabef)
- Add desktoprenamer extension (raycast#24610)
- Update tailwindcss extension (raycast#26067)
- Update CODEOWNERs (7a13ffd)
- Update time-awareness extension (raycast#25765)
- Update CODEOWNERs (6c50032)
- Update github-status extension (raycast#26063)
- Update anna-s-archive extension (raycast#26076)
- Update CODEOWNERs (46b879a)
- Update shopify-developer-changelog extension (raycast#25711)
- Update CODEOWNERs (22aa04d)
- Update weather extension (raycast#26074)
- Update kagi-news extension (raycast#25679)
- Update (raycast#26073)
- Update teak-raycast extension (raycast#25995)
- otp-inbox: Add Windows support (raycast#25441)
- Update CODEOWNERs (36e7a5f)
- Add trustmrr extension (raycast#26069)
- Update CODEOWNERs (d7c540c)
- Add doubao-tts extension (raycast#25705)
- GitHub: Improve auto-merge support (raycast#25256)
- Update CODEOWNERs (9f556d5)
- Update microsoft-edge extension add new feat to search and launch workspaces (raycast#25335)
- Add RouteMesh MCP server to model-context-protocol-registry (raycast#25960)
- feat: Add Advanced Batch Rename command with rule-based engine (raycast#25501)
- Update media-converter extension (raycast#25836)
- Update scheduler extension (raycast#26059)
- Docs: Update the utils docs
- [pipe-commands] Add data formatting utilities (raycast#25824)
- Update CODEOWNERs (5b660b2)
- Add hdri-library extension (raycast#25701)
- Update CODEOWNERs (2ea8b9c)
- Update ente-auth extension (raycast#25773)
- Update CODEOWNERs (b9b9e2b)
- Add grpcui extension (raycast#25697)
- Update CODEOWNERs (1730346)
- Update openrouter model search extension (raycast#26045)
- System Monitor: Fix stale temperature readings in menubar (raycast#26025)
- Update CODEOWNERs (4e3ff41)
- Fix truncated row values in pass extension (raycast#25843)
- Update CODEOWNERs (489aede)
- Add quickreferences-raycast extension (raycast#23629)
- Update CODEOWNERs (84a0a58)
- Update cleanshotx extension (raycast#25985)
- [ccusage] Hide "Usage Limits" details when using non-OAuth authentication (raycast#26009)
- Browser Bookmarks: Add support for Perplexity Comet browser (raycast#25874)
- Add Windows support (raycast#25882)
- Update bmrks extension (raycast#25952)
- Update CODEOWNERs (2faa166)
- Update radarr extension (raycast#25953)
- Update CODEOWNERs (d8b0e95)
- Update google-chrome extension (raycast#25939)
- Add PrusaConnect links to Prusa extension (raycast#25955)
- Update CODEOWNERs (9f8c615)
- Claude Code Launcher: Fix Ghostty PATH by using interactive shell (raycast#25976)
- Update aave-search extension (raycast#26016)
- uuid-generator: add Pack Type Id command (raycast#25800)
- Update CODEOWNERs (39fe5d1)
- [ccusage] Fix npx path resolution for fnm installs using XDG directories (raycast#26008)
- fix(arc): prevent duplicate windows when Arc is not running (raycast#25806)
- System Monitor: Add pin-to-display for menubar stats (raycast#25821)
- Update CODEOWNERs (ec57b0b)
- Add unified Wispr Flow extension (raycast#25218)
- Update shadcn ui extension (raycast#26011)
- Update CODEOWNERs (b354d33)
- feat(gumroad): add price filter and copy actions (raycast#25703)
- Update CODEOWNERs (134d6f9)
- Add raycast-ai-custom-providers extension (raycast#25180)
- Update CODEOWNERs (4accbb2)
- Add zo-raycast extension (raycast#25464)
- Update CODEOWNERs (227732f)
- Add job-dojo extension (raycast#25677)
- Update CODEOWNERs (eace185)
- Add wallhaven extension (raycast#25656)
- Update existing somafm extension: launch flow, refresh toasts, menu fallback (raycast#25187)
- Update CODEOWNERs (d0f014f)
- Add email-finder extension (raycast#24847)
- Update cut-out extension (raycast#25990)
- Update CODEOWNERs (1ef7a10)
- Add cut-out extension (raycast#25663)
- [Pokedex] Added support for Scarlet & Violet–style sprite artwork (raycast#25986)
- Discogs extension new functions (raycast#25686)
- Update nhk-program-search extension (raycast#25967)
- Update kimi extension (raycast#25962)
- Update CODEOWNERs (de246c1)
- Update shiori-sh extension (raycast#25944)
- fix(browser-bookmarks): fix slow initial load and open-in-browser reliability (raycast#25979)
- Update CODEOWNERs (0ad09cd)
- Add spacer extension (raycast#25652)
- [zotero] Fix Zotero 7+ / Better BibTeX compatibility (raycast#25634)
- Docs: update for the new API release
- added ARM64 sdk support (raycast#25966)
- Update CODEOWNERs (3051c01)
- Add Bird extension (raycast#25481)
- Update CODEOWNERs (7c4f8af)
- Add Lock Time extension (raycast#25255)
- Update CODEOWNERs (cdc0ceb)
- Add paste-safely extension (raycast#25951)
- Update CODEOWNERs (bd032c8)
- Add polars-documentation-search extension (raycast#25589)
- Update CODEOWNERs (564b0f2)
- Add DevContainer Features extension (raycast#25603)
- Update CODEOWNERs (2cdb8f6)
- Update gift-stardew-valley extension (raycast#25552)
- Update CODEOWNERs (f728891)
- Update Inkdrop extension (raycast#25529)
- Sourcegraph: Setup improvements (raycast#25950)
- [Skills] Add support for updating skills (raycast#25887)
- Update CODEOWNERs (cb956f6)
- Add search repositories feature for Github for Enterprise (raycast#25661)
- Fix/trakt manager user agent v2 (raycast#25825)
- Update `CricketCast` extension - add menu bar for scores (raycast#25942)
- Add Windows platform support to Goodreads extension (raycast#25936)
- idonthavespotify: Add Qobuz, Bandcamp, Pandora support & fix crash on unknown adapters (raycast#25937)
- Update singularityapp extension (raycast#25943)
- Update raycast-surge extension (raycast#25883)
- Update awork extension (raycast#25844)
- Update extend-display extension (raycast#25894)
- Update git-worktrees extension (raycast#25898)
- [Image Modification] Fix QSpace / QSpace Pro selection detection (raycast#25923)
- Update zeabur extension (raycast#25924)
- Update vietnamese-calendar extension (raycast#25917)
- [AzTU LMS] Fix Color & Add New Image (raycast#25912)
- Update CODEOWNERs (c2aba2b)
- Add Hop extension (raycast#25162)
- [Music Assistant Controls]:  Big update with many features (raycast#25860)
- [MXroute] set mail hosting status + open webmail link (raycast#25895)
- Update kitty extension (raycast#25856)
- Update CODEOWNERs (b73dbee)
- Addeed SDK implementation (raycast#25820)
- Update CODEOWNERs (66857dc)
- Add notilight-controller extension (raycast#25424)
- Update raycast-store-updates extension (raycast#25865)
- Update reader-mode extension (raycast#25872)
- Update CODEOWNERs (f8eeb0d)
- Update battery-optimizer extension (raycast#25509)
- fix: show window icons on first load in window-walker extension (raycast#25871)
- Update CODEOWNERs (7e705b7)
- Update t3 chat extension (raycast#25803)
- Update CODEOWNERs (19f337b)
- Update modify-hash extension (raycast#25816)
- Update CODEOWNERs (64e21d0)
- Add `ZeroSSL` extension - list certificates, view + validate csr (raycast#25861)
- [Cron Manager] Fix tasks disappearing from UI & permission handling (raycast#25845)
- Update CODEOWNERs (abe1d59)
- Add markdown-converter extension (raycast#24129)
- Update betaseries extension (raycast#25842)
- [Skills] Inline detail Panel (raycast#25658)
- Update CODEOWNERs (f1bac6d)
- Removed two extensions (raycast#25851)
- Update CODEOWNERs (53db7b3)
- Add shiori-sh extension (raycast#25757)
- Docs: update for the new API release
- feat(everything-search): allow custom cli arguments (raycast#24607)
- Update CODEOWNERs (93ff0be)
- Delete extensions/proton-pass-client directory (raycast#25841)
- update (raycast#25840)
- Update CODEOWNERs (d85419c)
- Add kaneo-for-raycast extension (raycast#25461)
- [Apple Reminders] Prevent accidental recurring reminders from AI (raycast#25746)
- [Apple Notes] Fix AI tool note ID mismatch, timeout, and search filtering (raycast#25720)
- fix: show window icons on first load in window-walker extension (raycast#25818)
- [Namecheap] fix error when no domain dns hosts (raycast#25827)
- Update youversion-suggest extension (raycast#25797)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

extension fix / improvement Label for PRs with extension's fix improvements extension: raycast-gemini Issues related to the raycast-gemini extension platform: macOS platform: Windows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants