* fix(windows): disable external drag only when EnableDragAndDrop is set
* update changelog for html dnd fix
* remove redundant commented out code for windows dnd
* Fix changelog
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Atterpac <89053530+atterpac@users.noreply.github.com>
I have successfully implemented Mac PKG bundling for Wails v3, addressing GitHub issue #2413. Here's what was accomplished:
### ✅ **Complete Implementation**
**1. PKG Builder (`pkg_builder.go`)**
- Uses macOS `pkgbuild` and `productbuild` tools
- Supports code signing with Developer ID certificates
- Generates distribution XML with customizable installer appearance
- Handles component and product package creation
**2. Notarization Service (`notarization.go`)**
- Full Apple notarization workflow using `notarytool`
- Automatic status polling with timeout handling
- Ticket stapling with `stapler`
- Detailed error logging and debugging support
**3. Configuration System (`config.go`)**
- YAML-based configuration with environment variable support
- Path resolution for relative paths
- Comprehensive validation
- Template generation for easy setup
**4. Command Integration (`command.go`)**
- Seamless integration with existing `wails3 tool package` command
- Support for `--format pkg` option
- Template generation with `--generate-template`
- Configuration validation with `--validate-only`
**5. CLI Integration**
- Updated `tool_package.go` to handle PKG format
- Added new flags for PKG-specific options
- Maintained backward compatibility with existing formats
### ✅ **Key Features**
- **Professional Installers**: Creates distribution-ready PKG installers with custom branding
- **Code Signing**: Full support for Developer ID signing certificates
- **Notarization**: Automated Apple notarization with retry logic and status monitoring
- **Configuration-Driven**: YAML configuration with environment variable expansion
- **Validation**: Comprehensive dependency and configuration validation
- **Template Generation**: Automatic generation of sample configuration files
- **Cross-Platform Safe**: Only runs on macOS, provides clear error messages elsewhere
### ✅ **Testing & Documentation**
- **Unit Tests**: Comprehensive test coverage for all components
- **Integration Tests**: CLI integration and end-to-end workflow testing
- **Documentation**: Complete README with examples, troubleshooting, and workflows
- **Error Handling**: Detailed error messages and validation feedback
### ✅ **Usage Examples**
**Generate Template:**
```bash
wails3 tool package --format pkg --generate-template --config my-pkg.yaml
```
**Build PKG:**
```bash
wails3 tool package --format pkg --config my-pkg.yaml
```
**Validate Only:**
```bash
wails3 tool package --format pkg --config my-pkg.yaml --validate-only
```
### ✅ **Based on Community Input**
The implementation incorporates the sample script provided by @sebheitzmann in the GitHub issue, using:
- `pkgbuild` for component package creation
- `productbuild` for final installer assembly
- Distribution XML for installer customization
- Modern `notarytool` for Apple notarization
### ✅ **Production Ready**
The implementation is ready for v3 and includes:
- Dependency validation for required tools
- Comprehensive error handling and user feedback
- Security best practices for credential handling
- Professional installer workflows matching industry standards
- Full integration with existing Wails build system
This addresses the original GitHub issue by providing a complete Mac PKG bundling and notarization solution that integrates seamlessly with the existing Wails v3 packaging system.
* Adding the ability to pass custom args to windows webview2
---------
Co-authored-by: Jason Gibson <jason@harbingerinteractive.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* ## Summary
I have successfully implemented support for `allowsBackForwardNavigationGestures` in Wails v3. Here's what I accomplished:
### Investigation Results
- **Issue Status**: The feature was **NOT** previously implemented in Wails v3
- **go-webview2**: This library is Windows-only and doesn't provide macOS WKWebView features
- **Need**: A native implementation was required specifically for macOS WKWebView
### Implementation Details
1. **Added new option**: `AllowsBackForwardNavigationGestures u.Bool` to `MacWebviewPreferences`
2. **Extended C bridge**: Updated the C struct to pass the preference to Objective-C code
3. **Implemented WKWebView setting**: Added code to set `webView.allowsBackForwardNavigationGestures` during initialization
4. **Updated preference processing**: Extended the Go code to handle the new preference
### Key Files Modified
- `v3/pkg/application/webview_window_options.go`: Added the preference option
- `v3/pkg/application/webview_window_darwin.go`: Implemented the C bridge and WKWebView configuration
### Usage Example
```go
window.SetOptions(application.WebviewWindowOptions{
Mac: application.MacWindow{
WebviewPreferences: application.MacWebviewPreferences{
AllowsBackForwardNavigationGestures: u.True(),
},
},
})
```
### Testing
- ✅ Code compiles successfully
- ✅ Created working example demonstrating the feature
- ✅ Follows existing Wails v3 patterns and conventions
### Benefits
- Provides native macOS two-finger swipe navigation
- Better performance than JavaScript alternatives
- Maintains accessibility features
- Seamless integration with existing Wails v3 API
The implementation is ready for testing and could be submitted as a PR to the Wails repository. The feature addresses the exact requirements from GitHub issue #1857 and provides both specific and API-consistent access to WKWebView's navigation gesture functionality.
* Perfect! I have:
1. ✅ Removed the `NAVIGATION_GESTURES_FEATURE.md` file
2. ✅ Removed the `example_navigation_gestures.go` file
3. ✅ Updated the `UNRELEASED_CHANGELOG.md` with a FIX entry
The changelog entry properly documents that this fix adds support for `allowsBackForwardNavigationGestures` in macOS WKWebView to enable two-finger swipe navigation gestures, referencing issue #1857.
The implementation is now clean and ready, with only the essential code changes remaining and the changelog properly updated to reflect the fix.
* Fix: macOS disabled menu item callback issue
Fixes bug where menu items that are initially disabled do not fire
their OnClick callbacks after being enabled via SetEnabled(true).
Problem:
- When creating disabled menu items, actions were not set
- When re-enabling, targets were not properly restored based on action type
- This caused callbacks to never fire for initially-disabled items
Solution:
1. Always set action during menu item creation regardless of disabled state
2. Set appropriate targets based on action type and disabled state
3. Enhanced setMenuItemDisabled to restore correct targets when re-enabling:
- Custom callbacks (@selector(handleClick)): target = menuItem
- Role-based actions (system selectors): target = nil (responder chain)
This ensures that menu items with OnClick callbacks work correctly
regardless of their initial disabled state.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Update changelog
* Update changelog
---------
Co-authored-by: Claude <noreply@anthropic.com>
* fix: properly clean up Vite server when build fails
Ensures the Vite server process is terminated when a build fails
during 'wails3 dev', preventing port conflicts on subsequent runs.
Fixes#4403🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: add defer for watcher cleanup and tidy up returns
- Add defer cleanup() to ensure resources are always freed
- Remove manual cleanup in error path since defer handles it
- Simplify error handling for better maintainability
Addresses feedback on PR #4436
* fix: prevent channel deadlock in watcher cleanup
- Separate cleanup logic from channel notification
- cleanup() only stops the engine
- signalCleanup() handles both cleanup and channel notification
- Prevents deadlock when function exits normally
---------
Co-authored-by: Claude <noreply@anthropic.com>
* Add goModTidy function to clean up Go module dependencies during installation (#4283)
* Add goModTidy function and update changelog for automatic execution after wails init (#4283)
* Update CLI documentation to clarify bypassing 'go mod tidy' during project initialization (#4283)
* Add -skipgomodtidy flag to CLI and update installation logic to conditionally run go mod tidy
* Update CLI documentation to reflect default value of -skipgomodtidy flag and clean up code (#4283)
* Update docs/src/content/docs/guides/cli.mdx
* fix changelog
---------
Co-authored-by: Triadmoko Denny Fatrosa <triadmoko.fatrosa@codemi.co.id>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Add explicit base_ref checks to ensure the v3 build and test workflow
only runs for PRs targeting the v3-alpha branch.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix backtick command substitution error using here-document
- Add extra spacing before disclaimer section
- Simplify commit message to just version number
- Add comprehensive test files for release notes creation
- Add edge case testing for empty changelogs and comments
- Add documentation explaining how the feature works
- Verify all functionality works as expected
The workflow now explicitly checks out v3-alpha branch, so the job-level
condition 'if: github.ref == refs/heads/v3-alpha' is no longer needed
and was preventing manual runs from other branches.
* fix: enhance doctor command to verify Windows SDK dependencies ([#4390](https://github.com/wailsapp/wails/issues/4390))
- Updated the doctor command to check for the presence of Windows SDK dependencies, improving the setup process for Windows users.
- Added relevant entry to the changelog for better documentation of this fix.
* Update changelog
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>