Skip to content

Update teak-raycast extension#27671

Draft
praveenjuge wants to merge 3 commits intoraycast:mainfrom
praveenjuge:ext/teak-raycast
Draft

Update teak-raycast extension#27671
praveenjuge wants to merge 3 commits intoraycast:mainfrom
praveenjuge:ext/teak-raycast

Conversation

@praveenjuge
Copy link
Copy Markdown
Contributor

@praveenjuge praveenjuge commented May 5, 2026

Description

  • Save to Teak — new fallback command that captures text or URLs from Raycast root search (no-view, accepts an optional text argument).
  • Save Selected Text — new command that sends the text currently highlighted in any app to Teak.
  • Browse Tags — new view command that lists every tag with per-tag card counts and drills into cards by tag.
  • AI tools — three new tools for Raycast AI:
    • Get Recent Teak Cards — fetch the newest cards without a query.
    • List Teak Tags — list the user's tags with counts.
    • Toggle Favorite — favorite or unfavorite a card by id.

Updated the ai.instructions block so the model picks the right tool for each action, and confirms before mutating.

Screencast

Raycast 2026-05-05 at 22 09 51 teak-raycast 2026-05-05 at 22 09 29

Checklist

- feat(raycast): add capture commands, tag browser, and AI tools
- feat(raycast): add capture commands, tag browser, and AI tools
- chore(docs): remove unused redirects and rewrites configuration
- chore(docs): remove unused redirects and rewrites configuration
- chore: bump version to 1.0.30
- feat(desktop): add native update dialogs and Check for Updates menu item
- chore: update lockfile after removing react-router-dom
- desktop: simplify app, remove router/webview/dead code, bump v1.0.29
- feat(desktop): show login inline and auto-redirect after auth
- chore(docs): remove AGENTS.md and reorganize package.json
- chore: update mobile and raycast deps to latest
- chore: update dependencies to latest versions
- chore: upgrade typescript to 6.0.3
- upgrade @convex-dev/better-auth to 0.12, better-auth to 1.6.9
- chore: remove desktop release notes template
- Add Convex agent skills and update AI guidelines
- docs(AGENTS.md): update architecture docs with MCP, Wxt, and current stack details
- v1.0.28: bump deps and version for desktop release
- fix: sign desktop release artifacts
- docs(AGENTS.md): add desktop release process documentation
- chore: remove macOS agent skills and Tauri v2 references
- feat: migrate desktop app from Tauri v2 to Electron
- refactor(docs): move fonts to assets, inline data, update styles
- style(docs): optimize logo-light.svg asset
- style(docs): update logo SVG assets and refactor base layout
- chore: update docs and remove mac app
- docs: migrate to Starlight, drop React, add Pagefind search
- simplify docs: CSP, queued rendering, Astro components, data extraction
- chore: remove PostHog events configuration from docs
- chore: remove all PostHog analytics
- fix: stabilize docs astro deploy
- refactor: migrate docs to astro
- refactor: remove Convex guidelines from CLAUDE.md and streamline test instructions in AGENTS.md
- fix: add ESLint 9 flat config for Raycast extension
- refactor: move PostHog utilities to convex shared and add captureBackendEvent tests
- refactor: consolidate @teak/config into @teak/convex
- chore: update dependencies and add Convex AI guidelines
- chore: update dependencies and fix lint errors
- perf: optimize queries and search with lazy loading and useDeferredValue
- chore: remove PostHog Next.js App Router integration skill
- feat(extension): add PostHog analytics to browser extension
- feat: add PostHog super properties to identify event sources across monorepo
- feat: add PostHog analytics to Convex backend
- fix(mobile): correct PostHog options - captureNativeAppLifecycleEvents
- feat: integrate PostHog for event tracking and analytics across the application
- chore: add Xcode user data to gitignore
- feat(mac): add browser-based auth flow for native macOS app
- Add macOS Tahoe UI Review Skills and Guidelines
- fix: update app name to "Teak" in project configuration and adjust related settings
- feat: update extension name and description to "Teak" in messages.json and project files
- native macos app try out
- feat(docs): add structured data markup for SEO
- Merge branch \'main\' of github-praveenjuge:praveenjuge/teak
- chore: remove obsolete actions-lock.json and logs/.gitignore files
- Merge pull request raycast#149 from praveenjuge/alert-autofix-56
- Potential fix for code scanning alert no. 56: Incomplete URL substring sanitization
- chore: add sf-symbols-typescript to mobile dependencies
- fix: disable noUnresolvedImports and useImportExtensions biome rules
- chore: update dependencies
- fix: use hostname check for cdninstagram.com in fetchMetadata test
- chore: remove portless dependency
- Refactor fetchMetadata test and improve getCardForUserHandler linkPreviewMedia mapping
- chore: remove all GitHub workflows
- chore: remove all GitHub workflows
- Merge pull request raycast#148 from praveenjuge/refactor/simplify-get-card-2026-03-11-00b64f91567fec96
- Merge pull request raycast#147 from praveenjuge/docs/unbloat-development-fc72be2e6ade3673
- refactor: simplify getCard.ts - remove dead code and redundant wrapper
- docs: unbloat development guide
- Merge pull request raycast#143 from praveenjuge/docs/daily-update-2026-03-10-c11bbba639682927
- Merge pull request raycast#144 from praveenjuge/docs/config-package-readme-89f70291c90cc18c
- docs: add README for @teak/config package
- Fix config package exports
- Merge branch \'main\' of github-praveenjuge:praveenjuge/teak
- docs: enhance documentation guidelines for clarity and conciseness
- docs: add 2026-03-10 changelog for invalid card deep-link error handling
- Merge pull request raycast#139 from praveenjuge/docs/add-raycast-ai-tools-changelog-20260309-73aa2ce37a7e597a
- Merge pull request raycast#141 from praveenjuge/docs/unbloat-mobile-90d5c460c1c82849
- feat: gracefully handle invalid card deep-link IDs
- docs: unbloat mobile.mdx
- docs: add Raycast AI tools to changelog entries
- Merge pull request raycast#138 from praveenjuge/docs/add-raycast-ai-tools-section-d9aab09c9521e8c0
- Merge pull request raycast#137 from praveenjuge/docs/fix-create-card-api-gaps-5c168a770f1a309d
- docs: add Raycast AI tools section to raycast.mdx
- Add noop safe output option
- docs: document all Create Card request fields and fix MCP output type
- Merge pull request raycast#135 from praveenjuge/docs/unbloat-self-hosting-70d8b4b9fa02465a
- docs: consolidate redundant env var blocks in self-hosting guide
- fix: update action versions and improve workflow triggers for documentation unbloat
- fix: validate version patterns before replacing in version-bump workflow
- Merge pull request raycast#133 from praveenjuge/docs/api-include-fields-2026-03-09-d4a1693dcf916f72
- Merge pull request raycast#134 from praveenjuge/docs/add-config-package-to-project-layout-d5598bdd74610a0f
- docs: add @teak/config package to project layout
- feat: extract dev URLs into shared @teak/config package
- docs: document include parameter field groups in API reference
- Merge pull request raycast#131 from praveenjuge/docs/raycast-changelog-2026-03-09-b85b3ef908b1cd6f
- docs: add 2026-03-09 changelog and fix Raycast CHANGELOG date placeholder
- Merge pull request raycast#130 from praveenjuge/docs/raycast-new-commands-20260309-458d9b4e732519fd
- docs: add Save Clipboard and Save Current Browser Tab Raycast commands
- refactor: extract test helpers in x link metadata tests
- Merge pull request raycast#129 from praveenjuge/docs/idempotency-key-errors-9d82d0471b438b3e
- Delete apps/docs/content/changelog/2026-03-09.mdx
- docs: document idempotency key 409 conflict errors and add changelog entry
- Merge pull request raycast#127 from praveenjuge/docs/update-features-inline-save-platforms-20260309-4646c55bbe2925ed
- Merge pull request raycast#128 from praveenjuge/docs/x-twitter-oembed-metadata-6cef3392a69a3950
- feat: implement idempotency key handling for card operations
- docs: clarify X post metadata saved by browser extension
- feat: resolve X/Twitter metadata via oEmbed and improve tweet screenshots
- docs(features): update Browser Extension inline save platforms list
- Merge pull request raycast#125 from praveenjuge/docs/extension-inline-save-platforms-da709dd32f8c0eb9
- docs(extension): add Hacker News, Sidebar, Web Designer News, and HeyDesigner to inline save platforms
- Merge pull request raycast#124 from praveenjuge/docs/unbloat-features-65ab78ab93608835
- docs: condense features.mdx by removing repetitive use-case and key-feature lists
- feat: resolve X/Twitter metadata via oEmbed and improve tweet screenshots
- feat: resolve X/Twitter metadata via oEmbed and improve tweet screenshots
- chore(desktop): publish updater metadata for v1.0.25
- Merge branch \'main\' of github-praveenjuge:praveenjuge/teak
- fix: add missing commas in various test and component files for consistency
- chore(version): sync repository manifests for v1.0.25
- chore: update desktop, extension, mobile, raycast and root configs
- feat: enhance inline save functionality for new platforms and improve button positioning
- Merge branch \'main\' of github-praveenjuge:praveenjuge/teak
- Add shadcn/ui customization and rules documentation
- chore(desktop): publish updater metadata for v1.0.24
- Merge pull request raycast#113 from praveenjuge/docs/fix-features-search-and-trash-20260308-518ae7db626d337a
- chore(version): sync repository manifests for v1.0.24
- chore: bump version to 1.0.24 in package.json
- feat: add support for Hacker News inline saving and update related tests
- Merge branch \'main\' of github-praveenjuge:praveenjuge/teak
- test: add unit tests for CardMetadataPanel, ImagePreview, and PalettePreview components
- docs: complete search token table and add Trash section to features
- Merge pull request raycast#112 from praveenjuge/docs/add-api-mcp-and-card-types-to-index-23cb589a94b2d47b
- docs: add API/MCP links and Palette/Quote card types to index
- Refactor workflows to remove \'noop\' tool and update safe outputs configuration
- Merge branch \'main\' of github-praveenjuge:praveenjuge/teak
- refactor: improve input sanitization and token trimming in search functions
- Merge pull request raycast#101 from praveenjuge/code-simplifier/2026-03-08-dfeb9c6a7b2a462c
- Merge pull request raycast#110 from praveenjuge/docs/update-mobile-auth-sign-in-sign-up-screens-2026-03-08-abf03c1923270444
- docs(mobile): document dedicated native iOS sign-in and sign-up form sheets
- chore: update unbloat-docs workflow to use Bun and correct doc paths
- Merge pull request raycast#109 from praveenjuge/docs/remove-unimplemented-keyboard-shortcuts-20260308-1f919ce15a7b165b
- docs: remove unimplemented keyboard shortcuts (j/k/f) from features page
- Merge pull request raycast#91 from praveenjuge/docs/expand-search-filter-documentation-2026-03-06-e2c88b0-3b5faa68c53706d0
- Merge pull request raycast#98 from praveenjuge/docs/add-desktop-env-vars-c5604baf23ca8d51
- Merge pull request raycast#105 from praveenjuge/docs/add-about-teak-menu-item-93d642fd70bb66e6
- Merge pull request raycast#106 from praveenjuge/docs/fix-extension-icon-consistency-c05f91672facccb1
- Merge pull request raycast#107 from praveenjuge/docs/ui-card-exports-20260308-708d54b2c588ad1e
- Merge pull request raycast#108 from praveenjuge/docs/update-changelog-2026-03-08-76ce19159fc62c9b
- Update 2026-03-08.mdx
- docs: expand 2026-03-08 changelog to cover inline save buttons and mobile auth screens
- feat: implement inline save button positioning for various platforms
- docs(ui): document card-modal full exports and add card-previews section
- chore: update version to 1.0.23 across all packages and workflows
- refactor: remove CTASection component and integrate its content into Footer
- docs: use Puzzle icon for Browser Extension in features.mdx
- feat: update icons in documentation and components for consistency
- docs: add About Teak menu item to desktop menu reference
- chore: update dependencies and remove unused error handling in auth pages
- feat: add upgrade functionality to card forms and screens
- Make tall card images scrollable
- Show spinner during download
- Simplify desktop shell
- refactor: simplify proxy response handling and remove trivial wrappers
- docs: add desktop env vars to self-hosting guide
- refactor(docs): rename changelog files to date-based format
- refactor: replace changelog collection with sorted entries and update changelog files to use date instead of batch number
- docs(features): expand Search & Organization with color, visual style, and hex filter docs
- Merge branch \'main\' of github-praveenjuge:praveenjuge/teak
- chore: Disable reporting no-op as issues in all GitHub Actions workflows.
- Merge pull request raycast#89 from praveenjuge/docs/fix-agents-mobile-comment-2026-03-06-c1be01514be18852
- docs: fix dev:mobile comment in AGENTS.md — does not include Convex filter
- Merge pull request raycast#87 from praveenjuge/docs/fix-dev-mobile-comment-2026-03-06-874e5cb0661a2fb9
- docs: fix dev:mobile comment — does not include Convex filter
- Merge pull request raycast#86 from praveenjuge/docs/add-appearance-setting-to-desktop-docs-20260306-c6c88ed0562ef100
- docs: add Appearance setting to desktop Settings section
- Merge pull request raycast#80 from praveenjuge/docs/desktop-settings-and-menu-docs-fc1c4bc55f37a120
- Merge pull request raycast#82 from praveenjuge/docs/fix-mobile-docs-inaccuracies-2026-03-06-9db773b579d0dc02
- Merge pull request raycast#83 from praveenjuge/docs/fix-android-accuracy-5dbd0ea739350db2
- docs: correct mobile platform support to iOS-only in features.mdx
- Merge branch \'main\' of github-praveenjuge:praveenjuge/teak
- docs: update release workflow to clear GitHub Release description
- docs: fix mobile docs inaccuracies
- chore(desktop): publish updater metadata for v1.0.23
- docs: add Settings and Teak menu sections to desktop docs
- Merge pull request raycast#78 from praveenjuge/docs/add-mobile-app-guide-2026-03-06-fae3ba4a0e7a3de0
- chore(desktop): sync manifests for v1.0.23
- docs: migrate desktop updater metadata to teakvault.com and remove legacy updates host
- docs: add mobile app guide and link from index
- Merge pull request raycast#76 from praveenjuge/docs/add-missing-dev-commands-2026-03-06-af95093451df9f94
- docs: add missing quality-check, build, and utility commands to development guide
- Merge pull request raycast#68 from praveenjuge/docs/fix-selfhosting-api-env-and-desktop-update-wording-5b36b22d7f858954
- Delete apps/docs/content/changelog/20.mdx
- Merge pull request raycast#71 from praveenjuge/docs/update-packages-ui-readme-bcd513121572c88a
- docs: expand @teak/ui README with full exports reference
- refactor: consolidate shared UI hooks, components and utilities into packages/ui
- refactor: consolidate shared components into packages/ui
- docs: fix desktop update restart wording and add API gateway env to self-hosting
- Merge pull request raycast#67 from praveenjuge/docs/add-desktop-to-features-cross-platform-sync-972c53d6b1a346ff
- docs: add Desktop App to features cross-platform sync section
- Merge pull request raycast#62 from praveenjuge/docs/extension-page-and-social-save-feature-723ab65334a785a8
- Merge pull request raycast#64 from praveenjuge/copilot/sub-pr-62-again
- docs: fix Chrome Web Store link for Teak extension
- Initial plan
- Merge pull request raycast#61 from praveenjuge/docs/fix-development-layout-ca7173197eba0b1b
- Merge pull request raycast#60 from praveenjuge/docs/automated-workflows-2026-03-05-c9802796a611efaa
- Merge pull request raycast#59 from praveenjuge/fix/desktop-docs-check-for-updates-linux-13fef2819d17718d
- disable PR preview deployments, only deploy to prod
- docs: add browser extension page and document social media inline save
- chore: update dependencies
- docs: fix project layout and testing info in development guide
- chore: update dependencies
- docs: document automated agentic workflows in development guide
- docs(desktop): remove incorrect Linux Check for Updates menu path
- Merge pull request raycast#58 from praveenjuge/add-workflow-update-docs-6277
- Add agentic workflow update-docs
- Merge pull request raycast#57 from praveenjuge/add-workflow-security-compliance-8014
- Add agentic workflow security-compliance
- Merge pull request raycast#56 from praveenjuge/add-workflow-workflow-health-manager-7776
- Add agentic workflow workflow-health-manager
- Merge pull request raycast#55 from praveenjuge/add-workflow-repository-quality-improver-4857
- Add agentic workflow repository-quality-improver
- Merge pull request raycast#54 from praveenjuge/add-workflow-docs-noob-tester-2157
- Add agentic workflow docs-noob-tester
- Merge pull request raycast#53 from praveenjuge/add-workflow-unbloat-docs-1341
- Add agentic workflow unbloat-docs
- Merge pull request raycast#52 from praveenjuge/add-workflow-duplicate-code-detector-2336
- Add agentic workflow duplicate-code-detector
- Merge pull request raycast#51 from praveenjuge/add-workflow-code-simplifier-5086
- Add agentic workflow code-simplifier
- Merge pull request raycast#50 from praveenjuge/docs/update-desktop-native-menus-2026-03-05-df9f1d656c16759a
- docs: document native menus and interactive update checks for desktop app
- Merge pull request raycast#49 from praveenjuge/add-workflow-daily-doc-updater-6940
- Add agentic workflow daily-doc-updater
- feat: add Desktop action to environment configuration
- refactor(desktop): rebuild native menus and updater for macOS/Linux
- chore(desktop): publish updater metadata for v1.0.22
- chore(desktop): sync manifests for v1.0.22
- chore: bump desktop package version to 1.0.22
- chore(desktop): publish updater metadata for v1.0.21
- chore(desktop): publish updater metadata for v1.0.10
- chore(desktop): sync manifests for v1.0.21
- chore(desktop): bump version to 1.0.21
- chore(desktop): sync manifests for v1.0.10
- Update docs apps emoji assets
- chore(desktop): bump version to 1.0.10
- chore(desktop): publish updater metadata for v1.0.2
- chore(desktop): sync manifests for v1.0.2
- chore(desktop): bump package version to 1.0.2
- fix(ci): replace tauri-action with explicit desktop release build
- fix(ci): correctly read cargo package version in desktop release
- chore(desktop): sync manifests for v1.0.02
- chore(desktop): bump package version to 1.0.02
- fix(ci): dispatch desktop release after auto-tag
- chore(desktop): sync manifests for v1.0.01
- chore(desktop): bump package version to 1.0.01
- fix(desktop): avoid signing requirement in pre-commit build
- chore(desktop): sync manifests for v1.0.0
- feat(desktop): ship v1 launch pipeline and updates host
- refactor: move shared components and hooks to packages/ui
- feat: add MCP server with tools and REST route refactoring
- refactor: extract search into shared packages for web and desktop reuse
- feat: add Hono API gateway and enhance documentation for API and development
@raycastbot raycastbot added extension fix / improvement Label for PRs with extension's fix improvements extension: teak-raycast Issues related to the teak-raycast extension AI Extension platform: macOS OP is author The OP of the PR is the author of the extension labels May 5, 2026
@raycastbot
Copy link
Copy Markdown
Collaborator

Thank you for the update! 🎉

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

@praveenjuge praveenjuge marked this pull request as ready for review May 6, 2026 04:10
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 6, 2026

Greptile Summary

This PR adds five new commands (Save to Teak, Save Clipboard, Save Selected Text, Save Current Browser Tab, Browse Tags), three new AI tools (Get Recent, List Tags, Toggle Favorite), and refactors the core API layer to accept structured input objects rather than positional arguments.

  • capture.ts shared helper sets toast.primaryAction and toast.secondaryAction ("Open Card" / "Open Source URL") and then immediately calls showHUD, which closes Raycast before the user can interact with those actions \u2014 the same dead-action pattern also appears in quick-save.tsx via addSuccessActions.
  • CHANGELOG.md uses {PR_MERGED_AT} instead of the standard {PR_MERGE_DATE} placeholder that is substituted automatically on merge.
  • save-text.ts manually defines Arguments and LaunchProps types that are auto-generated in raycast-env.d.ts, which can drift out of sync with package.json.

Confidence Score: 3/5

The new save commands will work, but users of every no-view capture path and the quick-save form will never see the "Open Card" / "Open Source URL" toast actions because showHUD dismisses Raycast before they can interact with them.

All five new save commands funnel through saveCardWithFeedback, which wires up toast actions and then immediately calls showHUD. Because showHUD closes Raycast, those actions are permanently inaccessible on every happy path — a meaningful UX regression for the newly advertised feature of opening a saved card directly from the capture flow.

extensions/teak-raycast/src/lib/capture.ts and extensions/teak-raycast/src/quick-save.tsx need the showHUD vs. toast-action conflict resolved.

Important Files Changed

Filename Overview
extensions/teak-raycast/src/lib/capture.ts New shared helper for no-view save commands; toast primaryAction/secondaryAction are set but then immediately discarded by showHUD, making "Open Card" and "Open Source URL" permanently unreachable for users.
extensions/teak-raycast/src/quick-save.tsx Adds clipboard prefill, renames the API call to createCard with a source field, and introduces addSuccessActions — but those actions are also unreachable because showHUD closes Raycast immediately after.
extensions/teak-raycast/src/save-text.ts New no-view fallback command for root-search; manually defines Arguments/LaunchProps types that should come from the auto-generated raycast-env.d.ts instead.
extensions/teak-raycast/src/tags.tsx New Browse Tags view command; clean implementation with proper loading/error/empty states and tag-drill-through via CardsListCommand.
extensions/teak-raycast/src/lib/api.ts Adds createCard, updateCard, getCardById, listTags; refactors searchCards/getFavoriteCards to accept a CardSearchInput object; fixes withLoopbackFallback to use URL parsing instead of string replacement.
extensions/teak-raycast/CHANGELOG.md New changelog entry uses {PR_MERGED_AT} placeholder instead of the standard {PR_MERGE_DATE}, which will not be substituted automatically at merge.
Prompt To Fix All With AI
Fix the following 3 code review issues. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 3
extensions/teak-raycast/src/lib/capture.ts:58-76
**Toast actions unreachable after `showHUD`**

`saveCardWithFeedback` sets `toast.primaryAction` ("Open Card") and `toast.secondaryAction` ("Open Source URL") and then immediately calls `showHUD`, which closes the Raycast window. Once Raycast closes, the Toast is dismissed too, so users can never click those actions — they are dead code for every caller of this helper (`save-clipboard-url`, `save-selected-text`, `save-current-browser-tab`, `save-text`). The same issue exists in `quick-save.tsx` where `addSuccessActions` populates toast actions before `showHUD("Teak capture complete")` is called. Either skip `showHUD` and keep Raycast open long enough for the user to interact with the toast actions, or remove the actions and only use `showHUD` for a fire-and-forget confirmation.

### Issue 2 of 3
extensions/teak-raycast/CHANGELOG.md:3
The date placeholder `{PR_MERGED_AT}` does not match the standard Raycast convention `{PR_MERGE_DATE}` used for automatic date substitution at merge time. The `0.2.0` entry just below uses the correct form.

```suggestion
## 1.0.30 - {PR_MERGE_DATE}
```

### Issue 3 of 3
extensions/teak-raycast/src/save-text.ts:10-20
Manually defining `Arguments` and `LaunchProps` types for a Raycast command's argument interface is discouraged. The `Arguments` type is auto-generated in `raycast-env.d.ts` (as `Arguments.SaveText`) whenever the extension builds; a hand-rolled definition can drift out of sync with `package.json` and introduce silent type mismatches.

```suggestion
export default async function SaveTextCommand(props: LaunchProps<Arguments.SaveText>) {
```

Reviews (1): Last reviewed commit: "chore(raycast): update dependencies and ..." | Re-trigger Greptile

Comment on lines +58 to +76
void open(result.appUrl!);
},
title: "Open Card",
};
}

if (result.card?.url) {
toast.secondaryAction = {
onAction: () => {
void open(result.card!.url!);
},
title: "Open Source URL",
};
}

toast.style = Toast.Style.Success;
toast.title = "Saved to Teak";
await showHUD("Teak capture complete");

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P1 Toast actions unreachable after showHUD

saveCardWithFeedback sets toast.primaryAction ("Open Card") and toast.secondaryAction ("Open Source URL") and then immediately calls showHUD, which closes the Raycast window. Once Raycast closes, the Toast is dismissed too, so users can never click those actions — they are dead code for every caller of this helper (save-clipboard-url, save-selected-text, save-current-browser-tab, save-text). The same issue exists in quick-save.tsx where addSuccessActions populates toast actions before showHUD("Teak capture complete") is called. Either skip showHUD and keep Raycast open long enough for the user to interact with the toast actions, or remove the actions and only use showHUD for a fire-and-forget confirmation.

Prompt To Fix With AI
This is a comment left during a code review.
Path: extensions/teak-raycast/src/lib/capture.ts
Line: 58-76

Comment:
**Toast actions unreachable after `showHUD`**

`saveCardWithFeedback` sets `toast.primaryAction` ("Open Card") and `toast.secondaryAction` ("Open Source URL") and then immediately calls `showHUD`, which closes the Raycast window. Once Raycast closes, the Toast is dismissed too, so users can never click those actions — they are dead code for every caller of this helper (`save-clipboard-url`, `save-selected-text`, `save-current-browser-tab`, `save-text`). The same issue exists in `quick-save.tsx` where `addSuccessActions` populates toast actions before `showHUD("Teak capture complete")` is called. Either skip `showHUD` and keep Raycast open long enough for the user to interact with the toast actions, or remove the actions and only use `showHUD` for a fire-and-forget confirmation.

How can I resolve this? If you propose a fix, please make it concise.

# Changelog

## 0.2.0 - 2026-03-06
## 1.0.30 - {PR_MERGED_AT}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 The date placeholder {PR_MERGED_AT} does not match the standard Raycast convention {PR_MERGE_DATE} used for automatic date substitution at merge time. The 0.2.0 entry just below uses the correct form.

Suggested change
## 1.0.30 - {PR_MERGED_AT}
## 1.0.30 - {PR_MERGE_DATE}

Rule Used: What: In Raycast extension changelogs, `{PR_MERGE_... (source)

Prompt To Fix With AI
This is a comment left during a code review.
Path: extensions/teak-raycast/CHANGELOG.md
Line: 3

Comment:
The date placeholder `{PR_MERGED_AT}` does not match the standard Raycast convention `{PR_MERGE_DATE}` used for automatic date substitution at merge time. The `0.2.0` entry just below uses the correct form.

```suggestion
## 1.0.30 - {PR_MERGE_DATE}
```

**Rule Used:** What: In Raycast extension changelogs, `{PR_MERGE_... ([source](https://app.greptile.com/review/custom-context?memory=799af734-ebd9-4b40-9ffd-97a70fc71c8a))

How can I resolve this? If you propose a fix, please make it concise.

Comment on lines +10 to +20
type Arguments = {
content?: string;
};

type LaunchProps = {
arguments: Arguments;
fallbackText?: string;
launchType: LaunchType;
};

export default async function SaveTextCommand(props: LaunchProps) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Manually defining Arguments and LaunchProps types for a Raycast command's argument interface is discouraged. The Arguments type is auto-generated in raycast-env.d.ts (as Arguments.SaveText) whenever the extension builds; a hand-rolled definition can drift out of sync with package.json and introduce silent type mismatches.

Suggested change
type Arguments = {
content?: string;
};
type LaunchProps = {
arguments: Arguments;
fallbackText?: string;
launchType: LaunchType;
};
export default async function SaveTextCommand(props: LaunchProps) {
export default async function SaveTextCommand(props: LaunchProps<Arguments.SaveText>) {

Rule Used: What: Don't manually define Preferences for `get... (source)

Prompt To Fix With AI
This is a comment left during a code review.
Path: extensions/teak-raycast/src/save-text.ts
Line: 10-20

Comment:
Manually defining `Arguments` and `LaunchProps` types for a Raycast command's argument interface is discouraged. The `Arguments` type is auto-generated in `raycast-env.d.ts` (as `Arguments.SaveText`) whenever the extension builds; a hand-rolled definition can drift out of sync with `package.json` and introduce silent type mismatches.

```suggestion
export default async function SaveTextCommand(props: LaunchProps<Arguments.SaveText>) {
```

**Rule Used:** What: Don't manually define `Preferences` for `get... ([source](https://app.greptile.com/review/custom-context?memory=d93fc9fb-a45d-4479-a6a4-b1b4af98ebc8))

How can I resolve this? If you propose a fix, please make it concise.

@0xdhrv 0xdhrv self-assigned this May 6, 2026
Copy link
Copy Markdown
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.

Hi @praveenjuge 👋

Thanks for the contribution 🔥

Could you look into the suggestions from Greptile


I converted this PR into a draft until it's ready for the review, please press the button Ready for review when it's ready and we'll have a look 😊

@0xdhrv 0xdhrv marked this pull request as draft May 6, 2026 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI Extension extension fix / improvement Label for PRs with extension's fix improvements extension: teak-raycast Issues related to the teak-raycast extension OP is author The OP of the PR is the author of the extension platform: macOS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants