-
Notifications
You must be signed in to change notification settings - Fork 10
v3.4 #127
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
Open
daneden
wants to merge
86
commits into
main
Choose a base branch
from
release/v3.4
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
v3.4 #127
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
- Add LiveActivityManager to handle activity lifecycle - Add per-project Live Activity preferences - Update ProjectNotificationsView with Live Activity toggle - Implement Live Activity UI for Lock Screen and Dynamic Island - Handle Live Activity start/update/end via push notifications - Enable NSSupportsLiveActivities in Info.plist Users can now enable Live Activities per project to track build status on their Lock Screen and Dynamic Island in real-time.
Remove incorrect if let binding for non-optional commitMessage property. The commitMessage is a String, not an Optional, so it can be used directly.
- Fix state enum references to use fully qualified names - Add LiveActivityManager.swift to Xcode project build phases - Add file references and build file entries
- Add DeploymentLiveActivity.swift to main app target so DeploymentAttributes is visible - Use fully qualified type names (ActivityContent, PushType, ActivityUIDismissalPolicy) - Fix nil type inference with explicit cast This ensures both the main app and widgets can access DeploymentAttributes.
- Update ContentState to decode server's simplified payload format - Add CodingKeys to map server's 'status' to deploymentState - Store device token in AppDelegate for Live Activity registration - Add registerActivityToken() to POST tokens to server endpoint 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add global "Enable Live Activities" toggle in SettingsView - Wrap Live Activities UI with #if canImport(ActivityKit) - Include Live Activities in notification reset function - Fix platform variable to return "macos" on macOS This fixes the issue where Live Activities were never created because the liveActivitiesEnabled preference defaulted to false with no UI to enable it. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Document the API contracts between the iOS app and backend server, including push notification registration, Live Activity token registration, and APNS payload formats. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Follow the same pattern as push notifications: Live Activities are now enabled per-project in the project's notification settings. When the user enables Live Activities for a project, the app checks system authorization and shows a warning with a link to Settings if not permitted. Changes: - Remove global liveActivitiesEnabled toggle from Settings - Update LiveActivityManager to only check per-project settings - Add Live Activities permission check in ProjectNotificationsView - Show warning and Settings link when LA not authorized - Deprecate liveActivitiesEnabled preference 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Background push handlers have limited execution time (~30s) and network requests may not complete. This change uses projectName and commitMessage directly from the push notification payload instead of fetching from API. Changes: - Add pushNotification case to DeploymentCause for payload-based messages - Update LiveActivityManager.startActivity to accept simple parameters - Update AppDelegate.handleLiveActivity to use payload data directly - Update Live Activity UI to display pushNotification messages 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update DeploymentAttributes to use simple strings for APNS encoding - Add push-to-start token observation and registration with server - Remove local Live Activity start code (server starts via APNS now) - Server sends "start" event with attributes, iOS handles automatically 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Live Activities added complexity for a feature only visible during short build times. Push notifications provide sufficient coverage for deployment status updates. Removed: - LiveActivityManager.swift and DeploymentLiveActivity.swift - Live Activity code from AppDelegate (ActivityKit imports, token handling) - Live Activity preferences (liveActivitiesEnabled, liveActivityProjectIds) - Live Activity UI from ProjectNotificationsView and SettingsView - Live Activity from widget bundle Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Users can now toggle "Production Only" in widget configuration to filter deployments and only show production builds. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Handle deployment-canceled event type from server with appropriate emoji prefix and state mapping. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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>
Refactor auth
…cross-platform views
Add Yapback for user feedback synced to GitHub issues
…ment-h8VX1 v3.4: Deployment actions, navigation refactor, widget improvements, and auth enhancements
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.
No description provided.