feat: move launch button to swipe-up action sheet (#137)#146
Merged
Conversation
The action sheet's LaunchModal was passing comments={[]} because
comments are fetched inside the Suspense boundary. Add a getComments
server action and fetch them when the modal opens, so users can
select which comments to include as Claude Code context.
Also: remove stale "use client" from LaunchCard (now a pure render
function) and fix children prop comment in IssueDetail.
- Add .catch() to getComments promise for transport-level errors - Show toast warning when comments fail to load - Auto-select all comments in LaunchModal when they arrive via lazy-fetch (fixes regression where none were selected by default) - Fix IssueDetailContent JSDoc to reference actual function names
Merge both launch button and reassign-to-repo features into the action sheet. Keep LabelChip import from main alongside Deployment.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
IssueActionSheetas a "Launch with Claude" buttonLaunchCard(banner-only, now a Server Component)getCommentsserver action for lazy-fetching comments when the launch modal opens (preserves Suspense streaming architecture)Details
The launch button was awkwardly placed inline in the issue body. Moving it to the action sheet (accessible via edge-swipe) puts it alongside other issue actions like "Close issue." The button is hidden when a deployment is already active.
Architecture: Launch data (
deployments,referencedFiles,repoLocalPath) is threaded from the page throughIssueDetailtoIssueActionSheet. Comments are lazy-fetched via a newgetCommentsserver action when the modal opens, since they live behind a Suspense boundary inIssueDetailContent.Files changed (7):
IssueActionSheet.tsx— launch button +LaunchModalwith lazy-fetched commentsLaunchCard.tsx— simplified to banner-only (87 → 25 lines)IssueDetail.tsx— threads launch props to action sheetIssueDetailContent.tsx— simplifiedLaunchCardprops, updated JSDocpage.tsx— passes launch data toIssueDetailcomments.ts— newgetCommentsserver actionLaunchModal.tsx— auto-select comments on lazy loadTest plan
pnpm turbo typecheck)Closes #137