Repository navigation
Conversation
fix: correct Windows filename in generate:icons task
…ill-auto_password_save [v3] fix: general auto save and general password auto save always enabled
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
…pport Gin support
…d-assets-version fix: remove prefix from default version in config.yml to avoid nsis error
…ents [v3] fix: fullscreen, unfullscreen, unminise and unmaximise window events …
…nput-issue-mac v3-alpha-bugfix/4061-input-issue-mac
[v3] Windows notifications improvements
…4612) * fix: prevent white window flash when Hidden option is true Fixes wailsapp#4611 When creating a window with Hidden: true, the window was briefly visible as a white window before disappearing. This was caused by CreateWindowEx using WS_OVERLAPPEDWINDOW style which includes WS_VISIBLE by default. The fix excludes WS_VISIBLE from the window style when the Hidden option is set to true, ensuring the window remains invisible until explicitly shown via window.Show(). * Update Changelog
…app#4616) * fix: Move HandlePlatformFileDrop to window._wails internal API Fixes wailsapp#4489 ## Problem The npm package @wailsio/runtime doesn't work for drag-and-drop because Go backend calls window.wails.Window.HandlePlatformFileDrop(), but the npm package doesn't populate window.wails (by design for encapsulation). ## Root Cause PR wailsapp#3295 (March 2024) intentionally removed window.wails assignment from the npm package to improve encapsulation. However, this broke platform handlers that Go backend relies on. ## Solution Move HandlePlatformFileDrop from public API (window.wails) to internal API (window._wails), following the existing pattern: - window._wails.invoke - window._wails.environment - window._wails.flags ## Changes - Register handlePlatformFileDrop in window._wails namespace - Update Go backend to call window._wails.handlePlatformFileDrop() - Use camelCase naming for consistency with other internal API methods - Rebuild bundled runtime with changes ## Benefits ✅ npm package works without window.wails pollution ✅ Maintains encapsulation of public API ✅ Platform handlers clearly separated as internal ✅ Follows existing internal API conventions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * chore: Add changelog entry for drag-and-drop fix Updates UNRELEASED_CHANGELOG.md with the fix for wailsapp#4489. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
* docs(v3): fixed notifications pkg path * chore(v3): update changelog --------- Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* linux: Refresh the menu when it's set so dbus ever finds out * changelog * obey the rabbit
…pp#4510) * feat: added custom protocols to tmpl for windows wails tools * fix:: .Info.Protocols, .Info doesn't exist and causes templater to error * test: tests for build assets * feat: updated changelog * feat: insert macro for custom protocols * Update changelog --------- Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* Fixes wailsapp#4642 * Fix Linux appimage appicon variable in Linux taskfile
* Fix Windows build error with go-webview2 v1.0.22 Fixes wailsapp#4513 The go-webview2 library changed the MessageCallback signature in v1.0.22 from `func(string)` to `func(message string, sender *ICoreWebView2, args *ICoreWebView2WebMessageReceivedEventArgs)`. This caused a build error for users: ``` cannot use w.processMessage (value of type func(message string)) as func(message string, sender *ICoreWebView2, args *ICoreWebView2WebMessageReceivedEventArgs) value in assignment ``` Changes: - Updated processMessage signature to match go-webview2 v1.0.22 - Upgraded go-webview2 dependency from v1.0.21 to v1.0.22 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix Windows build error with go-webview2 v1.0.22 Fixes wailsapp#4513 The go-webview2 library changed the MessageCallback signature in v1.0.22 from `func(string)` to `func(message string, sender *ICoreWebView2, args *ICoreWebView2WebMessageReceivedEventArgs)`. This caused a build error for users: ``` cannot use w.processMessage (value of type func(message string)) as func(message string, sender *ICoreWebView2, args *ICoreWebView2WebMessageReceivedEventArgs) value in assignment ``` Changes: - Updated processMessage signature to match go-webview2 v1.0.22 - Upgraded go-webview2 dependency from v1.0.21 to v1.0.22 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
* Fix package task incompatibility * Update UNRELEASED_CHANGELOG.md
* remove systray add retry loop * correct setTooltip truncation * track Windows tray icon ownership to avoid destroying shared handles * fix incorrect warning call * stop leaking Windows tray theme listener after destroy * fix default app icon loading * fix incorrect truncation * harden system tray flow * implement windows tray show/hide * improved readability * updateIcon call path * improve error handling * systray clock example * added changelog --------- Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* convert file to use lf line-endings * fileexplorer fix opening dir on Linux * include update in unreleased changelog --------- Co-authored-by: Angus Dippenaar <angusdippenaar@gmail.com>
* Add strong event typings * Make `EmitEvent` take one data argument only * Add event registration logic * Report event cancellation to the emitter * Prevent registration of system events * Add support for typed event data initialisation * Binding generation for events * Tests for event bindings * Add vite plugin for typed events * Fix dev command execution order Co-authored-by: Fabio Massaioli <fabio.massaioli@gmail.com> * Propagate module path to templates * Update templates Co-authored-by: Ian VanSchooten <ian.vanschooten@gmail.com> * Go mod tidy for examples * Switch to tsconfig.json for jetbrains IDE support * Replace jsconfig in example * Convert vite plugin to typescript * Downgrade vite for now The templates all use 5.x * Remove root plugins dir from npm files It's now '/dist/plugins' * Include types for Create But keep out of the docs * Assign a type for cancelAll results * Restore variadic argument in EmitEvent methods * Support registered events with void data * Test cases for void alias support * Support strict mode * Support custom event hooks * Update docs * Update changelog * Testdata for typed events * Test data for void alias support * fix webview_window emit event * Update changelog.mdx * Update events * Fix generator test path normalization for cross-platform compatibility The generator tests were failing on CI because they compared absolute file paths in warning messages. These paths differ between development machines and CI environments. Changes: - Normalize file paths in warnings to be relative to testcases/ directory - Handle both Unix and Windows path separators - Use Unix line endings consistently in test output - Update all test expectation files to use normalized paths This ensures tests pass consistently across different environments including Windows, macOS, Linux, and CI systems. * Remove stale comment * Handle errors returned from validation * Restore variadic argument to Emit (fix bad rebase) * Event emitters return a boolean * Don't use `EmitEvent` in docs Supposedly it's for internal use, according to comment * Fix event docs (from rebase) * Ensure all templates specify @wailsio/runtime: "latest" * Fix Windows test failure due to CRLF line endings The test was failing on Windows because: 1. Hardcoded "\n" was being used instead of render.Newline when writing warning logs, causing CRLF vs LF mismatch 2. The render package import was missing 3. .got.log files weren't being skipped when building expected file list Changes: - Add render package import - Use render.Newline instead of hardcoded "\n" for cross-platform compatibility - Skip .got.log files in test file walker 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix template tests by using local runtime package The template tests were failing because they were installing @wailsio/runtime@latest from npm, which doesn't have the new vite plugin yet. This change packs the local runtime and uses it in template tests instead. Changes: - Pack the runtime to a tarball in test_js job - Upload the runtime package as an artifact - Download and install the local runtime in template tests before building - Update cleanup job to delete the runtime package artifact * Apply suggestion from @leaanthony * Fix: Install local runtime in frontend directory with correct path The previous fix wasn't working because: 1. npm install was run in the project root, not in frontend/ 2. wails3 build runs npm install again, which would reinstall from npm Fixed by: - Using npm pkg set to modify package.json to use file:// protocol - This ensures subsequent npm install calls use the local tarball * Fix Vue template syntax conflicts with Go template delimiters The Vue templates were converted to .tmpl files to support dynamic module paths, but Vue's template syntax {{ }} conflicts with Go's template syntax. Fixed by escaping Vue template braces: - {{ becomes {{"{{"}} - }} becomes {{"}}"}} This allows the Go template engine to output the literal {{ }} for Vue to process. * Fix Vue template escaping and Windows shell compatibility Two issues fixed: 1. Vue template escaping: Changed from {{"{{"}} to {{ "{{" }} - The previous syntax caused "missing value for command" error - Correct Go template syntax uses spaces between delimiters and strings 2. Windows PowerShell compatibility: Added 'shell: bash' to template generation step - The bash syntax (ls, head, $()) doesn't work in PowerShell - Git Bash is available on all GitHub runners including Windows * Fix: test_templates depends on test_js for runtime package artifact The runtime-package artifact is created in test_js job, not test_go. Added test_js to the needs array so the artifact is available for download. * Fix Windows path compatibility for runtime package artifact Changed from absolute Unix path '/tmp/wails-runtime' to relative path 'wails-runtime-temp' which works cross-platform. Using realpath to convert to absolute path for file:// URL in npm pkg set command. * Fix realpath issue on Windows for runtime package realpath on Windows Git Bash was producing malformed paths with duplicate drive letters (D:\d\a\...). Replaced with portable solution using pwd that works correctly across all platforms. * Use pwd -W on Windows to get native Windows paths Git Bash's pwd returns Unix-style paths (/d/a/wails/wails) which npm then incorrectly resolves as D:/d/a/wails/wails. Using pwd -W returns native Windows paths (D:\a\wails\wails) that npm can handle correctly. This is the root cause of all the Windows path issues. * Improve typechecking for Events.Emit() * [docs] Clarify where `Events` is imported from in each example * Add docs for runtime Events.Emit() * Revert to v2-style Events.Emit (name, data) * Update changelog --------- Co-authored-by: Fabio Massaioli <fabio.massaioli@gmail.com> Co-authored-by: Atterpac <Capretta.Michael@gmail.com> Co-authored-by: Lea Anthony <lea.anthony@gmail.com> Co-authored-by: Claude <noreply@anthropic.com>
* Fix Windows systray icon regression (wailsapp#4704) This fixes a regression introduced in commit d58d4ba where the systray icon no longer defaults to the application icon when no custom icon is provided. The issue was that the default icon loading was changed from: defaultIcon := w32.LoadIconWithResourceID(w32.GetModuleHandle(""), w32.RT_ICON) To: defaultIcon := getNativeApplication().windowClass.Icon This caused the systray to display the default Wails icon instead of the application's custom icon. The fix reverts the default icon loading back to using w32.LoadIconWithResourceID with w32.RT_ICON, which correctly loads the application's icon resource. Fixes: wailsapp#4704 * Update changelog for systray icon fix --------- Co-authored-by: Claude <noreply@anthropic.com>
…nk support on macOS.
|
Caution Review failedThe pull request is closed. WalkthroughThis PR establishes comprehensive infrastructure for the Wails v3-alpha project, introducing a new documentation site powered by Astro and Starlight, implementing sophisticated GitHub Actions workflows for automated releases, testing and issue management, and adding extensive developer guides and community showcases. Changes
Sequence Diagram(s)sequenceDiagram
participant GH as GitHub
participant Workflow as Workflow Trigger
participant CheckAppr as Permission Check
participant Detect as Change Detection
participant Release as Release Job
participant Summary as Summary Output
rect rgb(200, 220, 240)
note over GH,Summary: Nightly Release (v3-alpha)
GH->>Workflow: Cron schedule or manual dispatch
Workflow->>CheckAppr: Verify actor authorization
CheckAppr-->>Workflow: authorized flag
end
rect rgb(220, 240, 200)
note over Detect,Release: Change Detection & Conditional Release
Workflow->>Detect: Check HEAD tag & UNRELEASED_CHANGELOG.md
Detect-->>Release: has_changes, version, tag
alt Changes detected or force_release
Release->>Release: Run Go release script
Release->>Release: Extract version & notes
alt Not dry_run
Release->>GH: Create tag & push
Release->>GH: Create release with notes
else dry_run mode
Release->>Summary: Log dry-run details
end
else No changes
Release->>Summary: Early exit, no-op summary
end
end
Release->>Summary: version, tag, status
Summary->>GH: Publish workflow summary
sequenceDiagram
participant PR as Pull Request
participant Workflow as build-and-test-v3
participant CheckApp as check_approval
participant TestJS as test_js
participant TestGo as test_go
participant TestTpl as test_templates
participant Results as build_results
rect rgb(200, 220, 240)
note over CheckApp,TestJS: Multi-Job Parallel Testing
PR->>Workflow: Target v3-alpha branch, v3/** changes
Workflow->>CheckApp: Assess PR approval
CheckApp-->>Workflow: approved flag
end
par Parallel Test Jobs
Workflow->>TestJS: npm install, type-check, build, pack
TestJS-->>Workflow: JS artifacts
Workflow->>TestGo: Multi-OS matrix (Win/Mac/Linux)
TestGo->>TestGo: Retrieve JS artifacts, build, test
TestGo-->>Workflow: Go test results
Workflow->>TestTpl: Template matrix (frameworks × OS)
TestTpl->>TestTpl: Build templates with runtime
TestTpl-->>Workflow: Template results
end
Workflow->>Results: Aggregate all job outcomes
alt All required jobs passed/skipped
Results->>PR: ✅ Workflow success
else Any job failed
Results->>PR: ❌ Workflow failure
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Areas requiring extra attention:
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro ⛔ Files ignored due to path filters (42)
📒 Files selected for processing (107)
⛔ Files not processed due to max files limit (25)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|




Description
This PR backports https://github.com/wailsapp/wails/pull/4693/files to V3
Fixes # (issue)
Type of change
Please select the option that is relevant.
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration using
wails doctor.If you checked Linux, please specify the distro and version.
Test Configuration
Please paste the output of
wails doctor. If you are unable to run this command, please describe your environment in as much detail as possible.Checklist:
website/src/pages/changelog.mdxwith details of this PRSummary by CodeRabbit
Release Notes
New Features
Documentation
Chores