-
Notifications
You must be signed in to change notification settings - Fork 10
v3.4: Deployment actions, navigation refactor, widget improvements, and auth enhancements #122
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
daneden
merged 60 commits into
release/v3.4
from
claude/promote-production-deployment-h8VX1
Feb 2, 2026
Merged
v3.4: Deployment actions, navigation refactor, widget improvements, and auth enhancements #122
daneden
merged 60 commits into
release/v3.4
from
claude/promote-production-deployment-h8VX1
Feb 2, 2026
+3,861
−1,682
Conversation
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
This commit implements the feature requested in issue #113 to allow promoting staged deployments directly to production without rebuilding. Changes: - Updated UI to display "Staging" label with icon for staging deployments - Added new "Promote to production" button that appears for staging deployments - Implemented promoteStagingToProduction() function that uses PATCH request to /v13/deployments/{id}/promote endpoint - Maintained existing promote behavior for preview deployments (rebuild & promote) The new feature distinguishes between: - Staging deployments: Promoted directly using PATCH /promote endpoint - Preview deployments: Rebuilt and promoted using POST /deployments with promote action Fixes #113
This commit adds the ability to instantly rollback to previous production
deployments, complementing the staging promotion feature.
Changes:
- Added "Instant rollback" button for production deployments in ready state
- Implemented instantRollback() function using PATCH /promote endpoint
- Added confirmation dialog with appropriate messaging
- Uses same API endpoint as staging promotion (PATCH /v13/deployments/{id}/promote)
The instant rollback feature allows users to quickly restore a previous
production deployment without rebuilding, useful for emergency rollbacks
and deployment management.
Updated the promotion and rollback features to use the correct Vercel API endpoint as documented at: https://docs.vercel.com/docs/rest-api/reference/endpoints/projects/points-all-production-domains-for-a-project-to-the-given-deploy Changes: - Extended VercelAPI.Path.projects to support version parameter (defaults to v9 for backward compatibility) - Updated promoteStagingToProduction() to use: PATCH /v10/projects/{projectName}/promote/{deploymentId} - Updated instantRollback() to use: PATCH /v10/projects/{projectName}/promote/{deploymentId} - Previous incorrect endpoint was: PATCH /v13/deployments/{id}/promote The correct endpoint is under projects, not deployments, and uses the project name along with the deployment ID in the path.
…ote-production-deployment-h8VX1
Extract deployment action methods into DeploymentActionsService and create ConfirmableActionButton for reusable confirmation dialogs. This reduces DeploymentDetails from ~280 lines to ~140 lines. - Add DeploymentActionsService with all async API methods - Add ConfirmableActionButton for button + confirmation pattern - Simplify DeploymentDetails view to use new components Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add DeploymentActionsMenu component for toolbar actions - Add macOS Deployment menu bar with keyboard shortcuts - Use focusedSceneValue to share deployment context with menu commands - Simplify DeploymentDetailView by moving actions to toolbar - Add Equatable conformance to VercelRepositoryLink for onChange support Keyboard shortcuts (macOS): - ⇧⌘P: Promote to Production - ⇧⌘R: Redeploy - ⌥⇧⌘R: Instant Rollback - ⌘⌫: Delete Deployment - ⌘.: Cancel Deployment Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create unified AppFocusedState observable class for deployment context - Add DeploymentAction enum with metadata (label, icon, shortcut, availability) - Extract shared DeploymentActionMenuContent used by both toolbar and menu bar - Simplify DeploymentActionsMenu and DeploymentCommands to use shared components Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change isCurrentProduction to computed property in AppFocusedState - Remove stored isCurrentProduction parameter from DeploymentDetailView - Compute isCurrentProduction in DeploymentActionConfirmationsModifier - Simplify call sites by deriving value from deployment.id == project.targets?.production?.id Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove unnecessary @State and .task sync for presentOnboardingView. Since the sheet has interactiveDismissDisabled(), it can only be dismissed by adding an account, which naturally makes accounts.isEmpty false. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
#Conflicts: # Shared/Views/Deployments/DeploymentListRowView.swift # Zeitgeist.xcodeproj/project.pbxproj
- Replace @observable AppFocusedState with separate FocusedValues - Use Environment for downward data flow (project to DeploymentDetailView) - Use FocusedValues for upward flow to Commands (account, project, deployment) - Each view only sets the focused value it knows about - Commands always visible, disabled when no deployment selected Data flow: - Environment: ProjectDetailView → DeploymentDetailView (project) - FocusedValues: All views → DeploymentCommands (for menu bar) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Refactor auth
…cross-platform views
Add Yapback for user feedback synced to GitHub issues
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
This release includes significant enhancements across deployment actions, navigation architecture, authentication, widgets, and overall code quality.
Deployment Actions
Navigation & Architecture
Authentication
VercelSessionto useTokenStorefor improved token managementData Models
VercelDeploymentCodable conformance with intermediateRawDeploymentstructEquatableconformance toVercelRepositoryLinkWidgets
WidgetNetworkManagerclass for cleaner networking code.neverto allow app-controlled timeline refreshingUI/UX Improvements
EllipticalGradientCode Quality
DeploymentActionsServicefor API action methodsConfirmableActionButtonfor reusable confirmation dialogsDeploymentActionMenuContentshared by toolbar and menu barTest plan
🤖 Generated with Claude Code