Add temporal extension#27980
Conversation
- Search, view, and manage Temporal workflows from Raycast - Multi-cluster support with connection management - Dashboard with workflow metrics - Schedule management - Fix TypeScript errors for stricter CI type checking
|
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 10-15 business days. Once the PR is approved and merged, the extension will be available on our Store. |
Greptile SummaryThis PR adds a new Temporal extension for Raycast that lets users search, view, and manage Temporal workflows directly from the launcher. It is a brand-new extension with no prior code in the repository.
Confidence Score: 5/5New extension with no impact on existing code; the only findings are minor quality nits in the event-history rendering path. All previously flagged issues have been addressed. The remaining findings are limited to the event-history display path and do not affect core workflow management functionality. extensions/temporal/src/lib/temporal-client.ts — the tsToDate fallback and eventId conversion in the history-fetch path. Important Files Changed
Prompt To Fix All With AIFix the following 2 code review issues. Work through them one at a time, proposing concise fixes.
---
### Issue 1 of 2
extensions/temporal/src/lib/temporal-client.ts:665-676
**`tsToDate` returns current time for missing timestamps**
When `ts` is `null` or `undefined`, the function silently returns `new Date()` (the current moment). This value is then stored in `HistoryEvent.eventTime` and displayed in the workflow history UI. Any history event whose protobuf timestamp is absent (e.g., events still pending completion) will show "just now" as their time regardless of when they actually occurred, making the history timeline misleading.
### Issue 2 of 2
extensions/temporal/src/lib/temporal-client.ts:693-695
**`eventId` unsafe `Number()` conversion**
`event.eventId` is a protobuf `int64` value, which the SDK represents as a `Long` object. `Number(longValue)` silently loses precision for values above 2^53 – 1 (~9 quadrillion). While workflow histories with that many events are practically impossible, explicitly calling `.toNumber()` (the same pattern already used for `scheduledEventId` and `workflowTaskFinishEventId` elsewhere in this file) would be more consistent and self-documenting.
Reviews (2): Last reviewed commit: "fix: address Greptile review feedback" | Re-trigger Greptile |
- Always search both WorkflowId and WorkflowType for all search terms - Add isInitializedRef guard to schedules.tsx and start-workflow.tsx - Fix testConnectionForCluster to properly restore null cluster override - Add shell argument escaping in cli-commands.ts - Update printWidth to 120 in .prettierrc
|
Any updates on the review? |
Summary
Add Temporal extension for Raycast that allows users to search, view, and manage Temporal workflows directly from Raycast.
Features
Screenshots
Screenshots are included in the
metadata/folder showing key features.Technical Notes
@temporalio/clientSDK for direct gRPC communicationChecklist
npm run buildand tested this distribution build in Raycastassetsfolder are used by the extension itselfREADMEare placed outside of themetadatafolder