Commit graph

5,453 commits

Author SHA1 Message Date
Lea Anthony
9ad954b8d8 Revert "chore: update ISSUES-PLATFORM.md with session progress"
This reverts commit 2b8baf0751.
2025-12-13 10:56:56 +11:00
Lea Anthony
2b8baf0751 chore: update ISSUES-PLATFORM.md with session progress 2025-12-13 10:55:17 +11:00
Lea Anthony
17bce06c58 docs: add Linux runtime dependencies and nfpm packaging guide
Add documentation for:
- Runtime dependencies table for different Linux distributions
- WebKit2GTK ABI version differences (4.0 vs 4.1)
- Build tags for targeting different ABI versions
- nfpm configuration examples for packaging

Based on community contribution in #4339.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 10:54:18 +11:00
Lea Anthony
acae20950f
fix(linux): fix file explorer opening wrong directory (#4397) (#4777)
The pathToURI function was using url.PathEscape which incorrectly
escapes forward slashes (/ -> %2F). This caused file URIs like:

  /home/angaz -> file://%2Fhome%2Fangaz (broken)

File managers couldn't parse these malformed URIs correctly, causing
them to open the wrong directory (often a parent directory).

Fixed by using url.URL struct to properly construct file URIs:

  /home/angaz -> file:///home/angaz (correct)

Spaces and other special characters are still properly escaped.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 10:35:33 +11:00
Lea Anthony
e0cd24272c
fix(linux): auto-detect and handle .relr.dyn sections for AppImage builds (#4772)
Modern Linux distributions (Arch, Fedora 39+, Ubuntu 24.04+) compile
libraries with .relr.dyn ELF sections. The bundled strip binary in
linuxdeploy cannot process these sections, causing AppImage builds to fail.

This commit:
- Adds hasRelrDynSections() to proactively detect modern toolchains
- Automatically disables stripping (NO_STRIP=1) when detected
- Fixes error output to properly display as string
- Adds documentation explaining the issue and workaround

Fixes #4642

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 09:56:13 +11:00
Lea Anthony
38c89e06b5 Revert "fix(linux): auto-detect and handle .relr.dyn sections for AppImage builds"
This reverts commit 3d46f4867d.
2025-12-13 08:16:14 +11:00
Lea Anthony
3d46f4867d fix(linux): auto-detect and handle .relr.dyn sections for AppImage builds
Modern Linux distributions (Arch, Fedora 39+, Ubuntu 24.04+) compile
libraries with .relr.dyn ELF sections. The bundled strip binary in
linuxdeploy cannot process these sections, causing AppImage builds to fail.

This commit:
- Adds hasRelrDynSections() to proactively detect modern toolchains
- Automatically disables stripping (NO_STRIP=1) when detected
- Fixes error output to properly display as string
- Adds documentation explaining the issue and workaround

Fixes #4642

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 08:14:21 +11:00
Lea Anthony
b35ee41073 docs: add changelog entry for Windows drag-and-drop fix (#4701)
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 05:36:05 +11:00
Andraz Vrhovec
54942d4f34
[v3] Fix not enough memory error when initialising drag and drop on Windows
Fix not enough memory error when initialising drag and drop on windows

Co-authored-by: Andraz Vrhovec <andraz@koofr.net>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-12-13 05:35:39 +11:00
Lea Anthony
e80cf28578
fix: prevent window menu crash on Wayland (#4769) (#4770)
* fix: prevent window menu crash on Wayland by realizing window before showing

On Wayland with GTK3, the appmenu-gtk-module tries to set DBus properties
for global menu integration before the window is fully realized, causing
a crash with the error "GDK_IS_WAYLAND_WINDOW (window) assertion failed".

The fix calls gtk_widget_realize() before gtk_widget_show_all() to ensure
the window has a valid GdkWindow when the menu system accesses it.

This fix is applied to both the CGO and purego implementations.

Fixes wailsapp/wails#4769

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: add Wayland detection to wails3 doctor and test for #4769

- Add Wayland session detection row to `wails3 doctor` output on Linux
- Create test project v3/test/4769-menu to manually verify the menu fix

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: sanitize GTK application name to prevent crashes with invalid characters

Application names containing spaces, parentheses, hash symbols, or other
invalid characters would cause GTK to fail with an assertion error.

Added sanitizeAppName() function that:
- Replaces invalid characters with underscores
- Handles leading digits
- Removes consecutive underscores
- Defaults to "wailsapp" if empty

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 17:59:47 +11:00
github-actions[bot]
726c7546ce chore(v3): bump to v3.0.0-alpha.44 and update changelog [skip ci] v3.0.0-alpha.44 2025-12-12 02:42:17 +00:00
Lea Anthony
c4b614cb10
fix: use structured logging for debug/info methods (#4767)
* fix: use structured logging for debug/info methods

The debug() and info() methods were using fmt.Sprintf() which expects
printf-style format directives, but callers were using slog-style
key-value pairs. Changed to pass args directly to Logger.Debug/Info
which properly handles structured logging.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* docs: add changelog entries for build fixes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* chore: remove temporary debug print statements from mobile merge

Remove emoji debug logs (🔴, 🟢, 🟠, 🔵, 🔥) that were accidentally left in
from the iOS/Android mobile platform support merge. These were development
debugging statements that should not have been included in the final code.

Files cleaned:
- application.go
- application_debug.go
- init_android.go
- init_ios.go
- mainthread_android.go
- mainthread_ios.go
- webview_window.go
- webview_window_ios.go

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: add changelog entries for debug cleanup and breaking change

- Add breaking change note: production builds are now default
- Add entry for debug print statement removal

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: convert remaining printf-style debug calls to slog-style

Convert three debug() calls that were still using printf-style format
strings to slog-style structured logging (key-value pairs):

- systemtray_windows.go: ShellNotifyIcon show/hide failures
- application_darwin.go: window lookup failure

This addresses CodeRabbit review feedback and ensures consistency
with the refactored debug() method.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: convert all printf-style info() calls to slog-style

Convert remaining info() calls that were using printf-style format
strings to slog-style structured logging (key-value pairs):

- application_ios.go: iOS log messages and HandleJSMessage calls
- webview_window_windows.go: WM_SYSKEYDOWN logging
- application.go: handleWindowMessage and handleWebViewRequest logging

Also removed debug fmt.Printf statements from handleWebViewRequest.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: add build tag to main.m to prevent Go from compiling it on non-iOS platforms

Go's toolchain tries to process .m (Objective-C) files when they're in a
directory with Go files. Adding a //go:build ios tag tells Go to only
process this file when building for iOS, matching how darwin .m files
handle this (e.g., //go:build darwin && !ios).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* chore: remove orphaned wails-mimetype-migration submodule reference

The iOS merge added a submodule reference without a corresponding
.gitmodules file, causing Cloudflare and other CI systems to fail
with "No url found for submodule path" errors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: auto-disable DMA-BUF renderer on Wayland with NVIDIA to prevent crashes

WebKitGTK has a known issue with the DMA-BUF renderer on NVIDIA proprietary
drivers running Wayland, causing "Error 71 (Protocol error)" crashes.

This fix automatically detects NVIDIA GPUs (via /sys/module/nvidia) and sets
WEBKIT_DISABLE_DMABUF_RENDERER=1 when running on Wayland.

Also removes leftover debug print statements from mobile platform merge.

See: https://bugs.webkit.org/show_bug.cgi?id=262607

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat: add NVIDIA driver info to wails3 doctor on Linux

Shows NVIDIA driver version and srcversion in doctor output to help
diagnose Wayland/NVIDIA compatibility issues.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-12 09:03:11 +11:00
Lea Anthony
2e396bd48f fix(ios): correct service implementation pattern for dock and notifications
The iOS service stubs were importing a non-existent package
`github.com/wailsapp/wails/v3/pkg/services` and using an incompatible
interface pattern.

This fix rewrites both files to follow the same pattern as other platforms
(Linux, Windows, Darwin):
- Implement the internal platformDock/platformNotifier interfaces
- Provide New() functions returning *DockService/*NotificationService
- Stub all required interface methods

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-12 06:01:38 +11:00
Michael Baklor
a878b2c1af
fix(config): dev server started with production build by default 2025-12-11 19:08:32 +02:00
github-actions[bot]
47d827c394 chore(v3): bump to v3.0.0-alpha.43 and update changelog [skip ci] v3.0.0-alpha.43 2025-12-11 02:42:53 +00:00
Lea Anthony
f2c90b00f2 chore: remove .crush directory
Remove local database files that shouldn't be tracked in version control.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 22:14:08 +11:00
GitHub Actions
6f4df3206d [skip ci] Publish @wailsio/runtime v3.0.0-alpha.75 2025-12-10 11:12:45 +00:00
Lea Anthony
04a5e4d768 feat: [EXPERIMENTAL] Add iOS and Android mobile platform support
⚠️ EXPERIMENTAL: This feature is under active development and may change.

This merge adds initial support for building Wails applications for iOS
and Android platforms. Desktop builds are completely unaffected as mobile
code uses platform-specific build tags.

## What's Included

### iOS Support
- Native iOS app structure with WKWebView
- iOS-specific runtime methods (haptics, device info, scroll settings, etc.)
- Xcode project generation (`wails3 ios xcode:gen`)
- iOS Simulator deployment via Taskfile
- Native UITabBar support
- iOS application lifecycle events

### Android Support
- Android app structure with WebView
- Android-specific runtime methods (haptics, device info, toast)
- Gradle-based build system
- APK generation and emulator deployment
- Android NDK cross-compilation support

### Transport Layer
- iOS and Android message processors adapted to new RuntimeRequest pattern
- Mobile-specific error types (InvalidIOSCallError, InvalidAndroidCallError)
- Platform stubs for non-mobile builds

### Build System
- New Taskfile includes for ios: and android: tasks
- Lazy SDK_PATH evaluation (iOS builds don't break Android on Linux)
- Project templates include mobile build configurations

## Requirements
- iOS: macOS with Xcode 15+
- Android: Android Studio with NDK r26d

## Known Limitations
- Some mobile APIs are stubbed pending full implementation
- Mobile builds require platform-specific toolchains
- Not yet tested in production environments

Report issues: https://github.com/wailsapp/wails/issues

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 22:11:29 +11:00
Lea Anthony
d1a7299e27 fix: restore events.go from v3-alpha to fix compilation errors
The iOS branch modified events.go with debug println statements and
changed the EventProcessor.Emit signature from returning error to void.
This broke compatibility with event_manager.go and messageprocessor_events.go.

Restored the v3-alpha version which:
- Uses atomic.Bool for cancelled flags (thread-safe)
- Has EventProcessor.Emit return error for validation
- Includes decodeEventData and validateCustomEvent functions
- Removes debug println statements

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 22:06:33 +11:00
Lea Anthony
29f751931a fix: remove duplicate iOS subcommand and make SDK_PATH lazy in iOS Taskfile
- Remove duplicate iOS subcommand registration in main.go (merge artifact)
- Make SDK_PATH a task-level variable in iOS Taskfile to avoid eager
  evaluation that fails on non-macOS systems when running Android builds

This fixes Android builds failing with "xcrun: command not found" on
Linux systems where Xcode tools are unavailable.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 21:59:12 +11:00
Lea Anthony
637713fae6 feat: adapt iOS and Android message processors to RuntimeRequest transport
Transport layer refactor adaptations for mobile platforms:

- Refactor processIOSMethod to use RuntimeRequest signature
- Refactor processAndroidMethod to use RuntimeRequest signature
- Add androidRequest constant (12) and handler to messageprocessor.go
- Update messageprocessor_mobile_stub.go for non-mobile builds
- Fix undefined windowID variable (use req.WebviewWindowID)
- Add iOS event generation to tasks/events/generate.go
- Add InvalidIOSCallError and InvalidAndroidCallError to errs package
- Update iOS delegate and webview files with generated event handlers

iOS methods refactored: Haptics.Impact, Device.Info, Scroll settings,
Navigation gestures, Link previews, Debug inspector, UserAgent

Android methods refactored: Haptics.Vibrate, Device.Info, Toast.Show

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 21:27:04 +11:00
Lea Anthony
c62a094b9a fix: resolve merge conflict in AndroidOptions and add AGENTS.md
- Fix merge conflict marker in application_options.go
- Add AGENTS.md with beads workflow documentation for AI agents

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 21:15:15 +11:00
Lea Anthony
96dff3885d Merge Android support from v3-alpha-feature/android-support
This commit integrates Android platform support for Wails v3.

Key changes:
- Add Android-specific application, webview, and runtime files
- Add Android event types
- Add Android examples and build system (Gradle)
- Add JNI bridge for Go <-> Java communication
- Update application options for Android configuration
- Add Android include to common Taskfile template

Note: The Android branch was more recent than the iOS branch
and had fewer conflicts with the transport layer refactor.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 18:37:24 +11:00
Lea Anthony
873848a077 Merge iOS support from v3-alpha-feature/ios-support
This commit integrates iOS platform support for Wails v3, adapting the
iOS-specific code to work with the new transport layer architecture.

Key changes:
- Add iOS-specific application, webview, and runtime files
- Add iOS event types and processing
- Add iOS examples and templates
- Update messageprocessor to handle iOS requests
- Move badge_ios.go to dock package

Note: The iOS branch was based on an older v3-alpha and required
significant conflict resolution due to the transport layer refactor
(PR #4702). Some iOS-specific code may need further adaptation:
- processIOSMethod needs to be implemented with new RuntimeRequest signature
- iOS event generation in tasks/events/generate.go needs updating

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 18:34:21 +11:00
Steve Tynor
7c8cc6c0e1
Add aria-label to elements in the helloworld app templates (#4760)
* Add aria-label to elements in the helloworld app templates so they can be directly tested by Appium based E2E test clients

* changelog updated

* fix: restore UNRELEASED_CHANGELOG.md to correct state

Remove accidentally merged changelog entries from other PRs and
restore the base entries from v3-alpha with only this PR's changelog entry.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 18:19:40 +11:00
rxliuli
9d9d67984f
fix: https://github.com/wailsapp/wails/issues/4636 (#4682)
* fix(v3): fixed update plist, close https://github.com/wailsapp/wails/issues/4636

* chore: update changelog

* feat: add recursive merge support for nested plist dictionaries

Previously, the plist merge was shallow - nested dictionaries were
completely replaced rather than recursively merged. This caused custom
nested configurations to be lost during build asset updates.

Now nested dictionaries are recursively merged, preserving custom keys
at all levels while still allowing new keys to be added and existing
keys to be updated.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: replace temp directory with backup-based plist merge

Instead of extracting to a temp directory and copying files over,
we now:
1. Rename existing plists to .plist.bak
2. Extract new assets directly to target
3. Merge backup content into newly extracted plists
4. Clean up backup files

This is simpler, more crash-safe (backups remain if process crashes),
and avoids the overhead of a temp directory and file copying.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 17:55:31 +11:00
Caleb Jasik
89f9365c3d
[v3] Ensure the window name is passed as header to AssetFileServer (#4687)
* Add window name header when making webview requests

* Add changelog item

* Update PR no in changelog entry

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-12-10 05:22:28 +00:00
github-actions[bot]
f4d1a5db5d chore(v3): bump to v3.0.0-alpha.42 and update changelog [skip ci] v3.0.0-alpha.42 2025-12-10 02:41:47 +00:00
Lea Anthony
7545701088
Update UNRELEASED_CHANGELOG.md 2025-12-10 08:39:03 +11:00
Lea Anthony
c863d2ce87 fix(docs): use Starlight admonition syntax instead of Aside component
Replace <Aside type="caution"> JSX with :::caution markdown syntax
to fix the docs build error.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 08:26:36 +11:00
Andrey Pshenkin
dc20ce1fd6
Update RawMessageHandler to include originInfo parameter in documentation (#4758)
* Update `RawMessageHandler` to include `originInfo` parameter in documentation

- Expanded examples and handler signature to reflect the additional `originInfo` parameter.
- Detailed `OriginInfo` structure and its platform-specific behaviors added.

* Expand `raw-messages` documentation to include origin validation guidance
2025-12-09 23:30:45 +11:00
Andrey Pshenkin
7d0016bbbe
[V3] Add origin to raw message handler (#4710)
* Add support for origin tracking in raw message handling

- Implemented origin and top origin tracking for web messages from JavaScript.
- Updated `RawMessageHandler` to include `originInfo`.
- Added cross-platform support for retrieving the origin of messages in macOS, Windows, and Linux.

* fix build

* fix build

* fix build

* fix build

* fix build

* Fix nil checks and string handling for message origins across platforms

- Ensure proper fallback to empty strings for `origin` and `topOrigin` when errors or nil values are encountered.
- Normalize handling of `message.body` to account for non-NSString values in macOS.

* add docs

* Remove unused doc

* update changelog

* fix build

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-12-08 20:29:09 +11:00
Andrey Pshenkin
9336875969
[V3] Add universal link support for macOS (#4712)
* Rename `HandleCustomProtocol` to `HandleOpenURL` and add universal link support on macOS.

* Update changelog.

* add docs

* add docs

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-12-08 08:46:21 +00:00
Lea Anthony
f50061f7c9 docs: add RawMessageHandler documentation
- Add RawMessageHandler section to Application API reference
- Add System.invoke() to Frontend Runtime reference
- Create comprehensive Raw Messages guide

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 19:32:34 +11:00
GitHub Actions
e989d0d248 [skip ci] Publish @wailsio/runtime v3.0.0-alpha.74 2025-12-07 11:20:17 +00:00
Andrey Pshenkin
561473d992
[V3] Refactor binding transport layer (#4702)
* custom transport initial

* transport codecs

* runtime set transport

* events transport

* clauded example

* bundled runtime

* wip: transport

* rework transports

* rework dialog responses

* cleanup

* cleanup

* improve error handling in HTTPTransport

* cleanup

* cleanup

* cleanup

* cleanup

* review changes

* review changes

* review changes

* review changes

* review changes

* review changes

* review changes

* move documentation to website docs

* update doc

* update changelog

* introduce JSClient method for transport for embedding JS part in transport

---------

Co-authored-by: Atterpac <Capretta.Michael@gmail.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-12-07 22:19:12 +11:00
Lea Anthony
d16371b119 fix(commands): update task wrapper tests for cross-platform build system
Update tests to match the new wrapTask behavior introduced in the
cross-platform build system:
- Task names are now prefixed with platform (e.g., linux:build)
- ARCH argument is automatically added based on GOARCH
- GOOS/GOARCH args are filtered from remaining args
- Environment variables are respected with arg overrides

Also adds test for the new SignWrapper command.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07 22:05:01 +11:00
Lea Anthony
f3ad34f475 fix(generator): suppress warning console output during tests
Use NullLogger instead of DefaultPtermLogger during tests to prevent
console output. Warnings are still written to warnings.log for
comparison. This prevents GitHub Actions Go problem matcher from
treating any warning-like output as errors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07 21:41:14 +11:00
Lea Anthony
db4385faed fix(generator): add [warn] prefix to warnings.log test fixtures
Update test to prefix warnings with [warn] when writing to warnings.log,
and update all fixture files accordingly. This prevents the Go problem
matcher from treating diff output as errors during CI.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07 21:26:07 +11:00
Lea Anthony
d813202159 fix(generator): prevent warnings from triggering GitHub Actions errors
Add [warn] prefix to generator warnings to prevent the Go problem
matcher from interpreting them as errors. The matcher regex matches
file.go:line:col: patterns, causing CI failures on valid warning output.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07 20:53:43 +11:00
Lea Anthony
efa82ec5f3 fix(ci): always run v3 tests for PRs targeting v3-alpha
Remove the paths filter that was causing v3 build and test jobs to be
skipped when PRs targeting v3-alpha didn't contain changes in the v3/
directory. This ensures all PRs to v3-alpha are properly tested.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07 17:41:02 +11:00
Lea Anthony
431869bf84 feat(setup): add global defaults, light/dark mode, and UI improvements
- Add global defaults config stored in ~/.config/wails/defaults.yaml
- Add light/dark mode toggle with theme persistence
- Add PKGBUILD support to Linux build formats display
- Add macOS signing clarification (public identifiers vs Keychain storage)
- Fix spinner animation using CSS animate-spin
- Add signing defaults for macOS and Windows code signing
- Compact defaults page layout with 2-column design
- Add Wails logo with proper light/dark theme variants

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07 17:40:53 +11:00
Lea Anthony
46176d32e4 feat(setup): improve dependency UX with retry button and loading animations
- Add retry button to dependencies page when missing deps exist
- Add loading spinner animation when checking dependencies
- Merge required/optional dependency lists with (optional) indicator
- Show single combined install command for all missing system packages
- Remove individual install commands and redundant status messages
- Fix duplicate npm appearing in both required and optional sections

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07 10:30:44 +11:00
Lea Anthony
ab42b12628 feat(setup): add real OS logos and fix version display
- Add Apple, Windows, and Tux (Linux) SVG logos in welcome screen
- Remove extra "v" prefix from Wails version display
- Remove "go" prefix from Go version display

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-06 20:14:06 +11:00
Lea Anthony
96aa27eb9b feat(setup): redesign wizard as classic installer with actionable install
- Redesign as classic Windows-style page-by-page wizard
- Add install commands from doctor/packagemanager for missing deps
- Show copyable commands for system package installs (pacman, apt, etc)
- Add external links for npm (nodejs.org) and Docker (docker.com)
- Add API endpoint to run install commands from wizard
- Show breadcrumb navigation: Welcome > Dependencies > Docker > Complete
- Add Cancel button and Back/Next navigation
- Dependencies page shows Required/Optional sections with status
- Docker page shows cross-compilation setup with image build option
- Complete page has copyable next steps commands
- Include InstallCommand and HelpURL fields in DependencyStatus

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-06 20:03:02 +11:00
Lea Anthony
b8630ca7b5 feat(v3): add interactive setup wizard command
- Add setup.go command that launches the web-based setup wizard
- Register `wails3 setup` command in main.go
- Fix SignWrapper registration to use NewSubCommand pattern

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-06 17:04:43 +11:00
Lea Anthony
5bac6d7d19 feat(setup): Preserve existing setup wizard design 2025-12-06 17:02:35 +11:00
Lea Anthony
3594b77666 feat(v3): add cross-platform build system and signing support
Add Docker-based cross-compilation for building Wails apps on any platform:
- Linux builds from macOS/Windows using Docker with Zig
- Windows builds with CGO from Linux/macOS using Docker
- macOS builds from Linux/Windows using Docker with osxcross

Add wails3 tool lipo command using konoui/lipo library for creating
macOS universal binaries on any platform.

Add code signing infrastructure:
- wails3 sign wrapper command (like build/package)
- wails3 tool sign low-level command for Taskfiles
- wails3 setup signing interactive wizard
- wails3 setup entitlements for macOS entitlements
- Keychain integration for secure credential storage

Update all platform Taskfiles with signing tasks:
- darwin:sign, darwin:sign:notarize
- windows:sign, windows:sign:installer
- linux:sign:deb, linux:sign:rpm, linux:sign:packages

Reorganize documentation:
- Move building/signing guides to guides/build/
- Add platform-specific packaging guides (macos, linux, windows)
- Add cross-platform build documentation
- Add comprehensive signing guide with CI/CD examples
- Add auto-updates guide and updater reference
- Add distribution tutorial

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06 13:53:37 +11:00
Lea Anthony
f8175363cf fix(docs): rewrite lifecycle documentation with correct v3 API
- Replace incorrect OnStartup hook with actual v3 lifecycle mechanisms
- Document Services with ServiceStartup/ServiceShutdown interfaces
- Document application-level hooks: ShouldQuit, OnShutdown, PostShutdown
- Document event-based lifecycle with OnApplicationEvent and OnWindowEvent
- Document window hooks with RegisterHook for cancellable events
- Add correct platform-specific defaults for quit-on-last-window-close
- Add JavaScript example to services Quick Start
- Make Taskfile dev task depend on setup task

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 06:34:45 +11:00
Lea Anthony
ea2e0ec891 Merge origin/v3-alpha into v3-alpha-feature/android-support 2025-11-28 21:20:47 +11:00