Repository navigation
Conversation
|
Congratulations on your new Raycast extension! 🚀 We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 15 business days. Once the PR is approved and merged, the extension will be available on our Store. |
[Medium impact] The PR’s effects stay within the new AI CLI in Raycast extension. Preserve access to saved Codex chats and satisfy the outstanding localization requirement before merging. FindingsFix with agent prompt### Issue 1
extensions/ai-cli-in-raycast/src/session-storage.ts:94
Changing the library key to `ai-cli-in-raycast.conversations.v2` hides chats and drafts saved under `ask-codex.conversations.v2`. The previous build already used the same extension ID, so this affects updates within the current extension, not just the earlier rename. `initialize()` reads only the new key, and `parseLibrary()` treats a missing value as empty history.
Keep the existing key or migrate both older formats before creating an empty library.
### Issue 2
extensions/ai-cli-in-raycast/src/i18n.ts:18-25
`systemLanguage()`, `setLanguage()`, and the translation table add custom localization, including reads of macOS language settings. Repository instructions prohibit custom localization in Raycast extensions and require the preferences API for locale-dependent behavior. Remove the custom translation layer and language probing before merging to satisfy that requirement.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.SummaryAdds native Raycast chats for six locally installed AI CLIs.
Reviews (6) · Last reviewed commit: "Replace ask-codex storage keys and drop ..." · Reviewed by Greptile |
| function systemLanguage(): UILanguage { | ||
| if (platform() === "darwin") { | ||
| if (macSystemLanguage) return macSystemLanguage; | ||
| for (const domain of ["com.raycast.macos", "-g"]) { | ||
| try { | ||
| const languages = execFileSync( | ||
| "/usr/bin/defaults", | ||
| ["read", domain, "AppleLanguages"], |
There was a problem hiding this comment.
Custom localization violates repository rules
systemLanguage(), setLanguage(), and the translation table add custom localization, including reads of macOS language settings. Repository instructions prohibit custom localization in Raycast extensions and require the preferences API for locale-dependent behavior. Remove the custom translation layer and language probing before merging to satisfy that requirement.
Rule Used: What: Do not implement custom localization logic in Raycast extensions; use the preferences API for locale-dependent functionality. Why: Raycast only supports US English, and custom localization creates unnecessary complexity and inconsistency acros... (source)
Prompt To Fix With AI
This is a comment left during a code review.
Path: extensions/ask-codex-raycast/src/i18n.ts
Line: 18-25
Comment:
**Custom localization violates repository rules**
`systemLanguage()`, `setLanguage()`, and the translation table add custom localization, including reads of macOS language settings. Repository instructions prohibit custom localization in Raycast extensions and require the preferences API for locale-dependent behavior. Remove the custom translation layer and language probing before merging to satisfy that requirement.
**Rule Used:** What: Do not implement custom localization logic in Raycast extensions; use the preferences API for locale-dependent functionality. Why: Raycast only supports US English, and custom localization creates unnecessary complexity and inconsistency acros... ([source](https://app.greptile.com/-/switch-tenant?tenant=raycast&next=%2Fcustom-context%3Fmemory%3D78677f74-64f7-483b-b90d-9c33e2e049da))
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.| export function storageKeys(provider: ProviderId) { | ||
| if (provider === "codex") | ||
| return { | ||
| library: "ai-cli-in-raycast.conversations.v2", |
There was a problem hiding this comment.
Changing the library key to ai-cli-in-raycast.conversations.v2 hides chats and drafts saved under ask-codex.conversations.v2. The previous build already used the same extension ID, so this affects updates within the current extension, not just the earlier rename. initialize() reads only the new key, and parseLibrary() treats a missing value as empty history.
Keep the existing key or migrate both older formats before creating an empty library.
Prompt To Fix With AI
This is a comment left during a code review.
Path: extensions/ai-cli-in-raycast/src/session-storage.ts
Line: 94
Comment:
**Saved Codex chats disappear**
Changing the library key to `ai-cli-in-raycast.conversations.v2` hides chats and drafts saved under `ask-codex.conversations.v2`. The previous build already used the same extension ID, so this affects updates within the current extension, not just the earlier rename. `initialize()` reads only the new key, and `parseLibrary()` treats a missing value as empty history.
Keep the existing key or migrate both older formats before creating an empty library.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
Description
AI CLI in Raycast adds native Raycast chats for locally installed AI CLIs — Codex, Antigravity (agy), Qoder, Qoder CN, WorkBuddy and Gemini — each as an independent command with its own conversations, drafts, model choice, and setup record.
updateCommandMetadata.launchCommandcalls are wrapped in try-catch, launchers useisLoading, and the extension passesnpm run build,tsc --noEmit,ray lint, and 302 automated tests (300 pass / 2 Windows-specific skips).Screencast
Checklist
npm run buildand tested this distribution build in Raycastassetsfolder are used by the extension itselfREADMEare located outside the metadata folder if they were not generated with our metadata tool