Skip to content

[V3] Add universal link support for macOS - #4711

Closed
APshenkin wants to merge 1639 commits into
wailsapp:masterfrom
APshenkin:v3/mac-universal-links
Closed

APshenkin wants to merge 1639 commits into
wailsapp:masterfrom
APshenkin:v3/mac-universal-links

Conversation

@APshenkin

@APshenkin APshenkin commented Nov 14, 2025 •

Copy link
Copy Markdown
Contributor

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.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

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.

  • Windows
  • macOS
  • Linux

If you checked Linux, please specify the distro and version.

Test Configuration

# System

┌──────────────────────────────────────────────────┐
| Name          | MacOS                            |
| Version       | 26.1                             |
| ID            | 25B78                            |
| Branding      | MacOS 26.1                       |
| Platform      | darwin                           |
| Architecture  | arm64                            |
| Apple Silicon | true                             |
| CPU           | Apple M4 Max                     |
| CPU 1         | Apple M4 Max                     |
| CPU 2         | Apple M4 Max                     |
| GPU           | 40 cores, Metal Support: Metal 4 |
| Memory        | 128 GB                           |
└──────────────────────────────────────────────────┘

# Build Environment

┌─────────────────────────────────────────────────────────┐
| Wails CLI    | v3.0.0-dev                               |
| Go Version   | go1.24.0                                 |
| Revision     | 4a445ce218b58db4a16ee8fa84eac0d7c9a69932 |
| Modified     | false                                    |
| -buildmode   | exe                                      |
| -compiler    | gc                                       |
| CGO_CFLAGS   |                                          |
| CGO_CPPFLAGS |                                          |
| CGO_CXXFLAGS |                                          |
| CGO_ENABLED  | 1                                        |
| CGO_LDFLAGS  |                                          |
| GOARCH       | arm64                                    |
| GOARM64      | v8.0                                     |
| GOOS         | darwin                                   |
| vcs          | git                                      |
| vcs.modified | false                                    |
| vcs.revision | 4a445ce218b58db4a16ee8fa84eac0d7c9a69932 |
| vcs.time     | 2025-08-04T22:42:25Z                     |
└─────────────────────────────────────────────────────────┘

# Dependencies

┌────────────────────────────────────────────────────────────────────────┐
| Xcode cli tools | 2416                                                 |
| npm             | 10.9.2                                               |
| *NSIS           | Not Installed. Install with `brew install makensis`. |
|                                                                        |
└─────────────────────── * - Optional Dependency ────────────────────────┘

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:

  • I have updated website/src/pages/changelog.mdx with details of this PR
  • My code follows the general coding style of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

Summary by CodeRabbit

Release Notes

  • New Features

    • Added comprehensive v3 documentation site with guides, API reference, and community showcase.
    • Implemented automated issue labeling and stale issue management workflows.
    • Added nightly release automation for v3-alpha branch.
    • Enhanced build and test automation across multiple platforms.
  • Documentation

    • Expanded developer and contributor documentation with architecture guides, binding system details, and extension guidelines.
  • Chores

    • Updated GitHub Actions workflows and configuration files for improved automation.

yulesxoxo and others added 30 commits April 16, 2025 15:27
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>
…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
leaanthony and others added 27 commits September 28, 2025 07:50
…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>
@APshenkin APshenkin closed this Nov 14, 2025
@coderabbitai

coderabbitai Bot commented Nov 14, 2025 •

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

This 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

Cohort / File(s) Summary
GitHub Workflows
.github/workflows/auto-label-issues.yml, .github/workflows/automated-releases.yml, .github/workflows/build-and-test-v3.yml, .github/workflows/changelog-validation-v3.yml, .github/workflows/generate-sponsor-image.yml, .github/workflows/issue-triage-automation.yml, .github/workflows/nightly-release-v3.yml, .github/workflows/pr-master.yml, .github/workflows/publish-npm.yml, .github/workflows/semgrep.yml, .github/workflows/stale-issues.yml, .github/workflows/test-nightly-releases.yml, .github/workflows/test-simple.yml, .github/workflows/unreleased-changelog-trigger.yml, .github/workflows/upload-source-documents.yml, .github/workflows/v3-docs.yml
Added 11 new workflows and updated 5 existing ones to support multi-version testing (v2/v3), nightly releases with changelog detection, automated PR labeling, issue triage, npm publishing, and dual-release pathways with permission gating and comprehensive artifact management.
GitHub Configuration
.github/ISSUE_TEMPLATE/bug_report.yml, .github/file-labeler.yml, .github/issue-labeler.yml, .github/pull_request_template.md, .github/stale.yml
Updated issue templates with warnings, added file and issue labeler configurations with version-specific (v2/v3) and component-based labels, refined PR template with enhanced guidance and Linux testing prompts, extended stale-issue thresholds and exemptions.
Repository Root Configuration
.all-contributorsrc, .coderabbit.yaml, .gitignore, .prettierrc.yml, CNAME, Taskfile.yaml
Added comprehensive CodeRabbit configuration for automation and reviews, expanded .gitignore with v3 example binaries and updated paths, added MDX support to Prettier, added v3alpha.wails.io CNAME, registered docs in Taskfile includes.
Documentation Site Foundation
docs/astro.config.mjs, docs/package.json, docs/Taskfile.yml, docs/.gitignore, docs/.npmrc, docs/README.md, docs/CNAME
Established new Astro-based documentation site with Starlight, blog, image-zoom, and link-validator integrations; configured npm, task runner, and VSCode environment.
Documentation Site Configuration
docs/.vscode/extensions.json, docs/.vscode/launch.json, docs/src/content/config.ts, docs/src/content/authors.ts
Added VSCode recommendations and Astro dev server launch config, configured collections for i18n and docs with blog schema extensions.
Static Assets and Components
docs/src/assets/contributors.html, docs/src/components/CardAnimation.astro
Added contributor gallery HTML template and Astro animation component with Motion One CDN integration and in-viewport triggers.
Getting Started Guides
docs/src/content/docs/getting-started/installation.mdx, docs/src/content/docs/getting-started/your-first-app.mdx
Documented installation prerequisites across platforms and step-by-step first app creation workflow with embedded videos and multi-OS instructions.
Contributing & Architecture Documentation
docs/src/content/docs/contributing/_category_.json, docs/src/content/docs/contributing/index.mdx, docs/src/content/docs/contributing/architecture.mdx, docs/src/content/docs/contributing/asset-server.mdx, docs/src/content/docs/contributing/binding-system.mdx, docs/src/content/docs/contributing/build-packaging.mdx, docs/src/content/docs/contributing/codebase-layout.mdx, docs/src/content/docs/contributing/extending-wails.mdx, docs/src/content/docs/contributing/runtime-internals.mdx, docs/src/content/docs/contributing/template-system.mdx, docs/src/content/docs/contributing/testing-ci.mdx
Comprehensive technical documentation covering v3 architecture, runtime internals, build pipeline, binding system, asset server, codebase layout, template system, and CI/testing practices.
Guides & Tutorials
docs/src/content/docs/guides/_category_.json, docs/src/content/docs/guides/cli.mdx, docs/src/content/docs/guides/custom-protocol-association.mdx, docs/src/content/docs/guides/custom-templates.mdx, docs/src/content/docs/guides/customising-windows.mdx, docs/src/content/docs/guides/events-reference.mdx, docs/src/content/docs/guides/file-associations.mdx, docs/src/content/docs/guides/gin-routing.mdx, docs/src/content/docs/guides/gin-services.mdx, docs/src/content/docs/guides/menus.mdx, docs/src/content/docs/guides/msix-packaging.mdx, docs/src/content/docs/guides/panic-handling.mdx
Practical developer guides covering CLI reference, deep-linking, template creation, window customization, events system, file associations, Gin framework integration, menus, MSIX packaging, and error handling.
Blog & Announcements
docs/src/content/docs/blog/2021-09-27-v2-beta1-release-notes.md, docs/src/content/docs/blog/2021-11-08-v2-beta2-release-notes.md, docs/src/content/docs/blog/2022-02-22-v2-beta3-release-notes.md, docs/src/content/docs/blog/2022-09-22-v2-release-notes.md, docs/src/content/docs/blog/2023-01-17-v3-roadmap.md, docs/src/content/docs/blog/2024-12-03-alpha10-and-new-release-strategy.md
Historical release notes and announcements spanning v2 development through v3 roadmap and alpha 10 release strategy.
Community & Changelog
docs/src/content/docs/changelog.mdx, docs/src/content/docs/credits.mdx, docs/src/content/docs/feedback.mdx, docs/src/content/docs/community/links.md, docs/src/content/docs/community/templates.md, docs/src/content/docs/community/showcase/_template.md
Added changelog (Keep a Changelog format), credits with contributors component, feedback collection tabs, community links, template listings, and showcase template.
Community Showcases
docs/src/content/docs/community/showcase/index.mdx, docs/src/content/docs/community/showcase/{bulletinboard,cfntracker,clave,emailit,encrypteasy,espstudio,filehound,hiposter,mchat,minecraftupdater,minesweeper-xp,modalfilemanager,mollywallet,october,optimus,portfall,resizem,restic-browser,riftshare,scriptbar,snippetexpander,surge,tinyrdm,wailsterm,wally,warmine,wombat,ytd}.md
Added 28 community project showcase entries and a gallery index page displaying projects with thumbnail, links, and descriptions.

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
Loading
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
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Areas requiring extra attention:

  • GitHub Actions workflows (automated-releases.yml, build-and-test-v3.yml, nightly-release-v3.yml, unreleased-changelog-trigger.yml) — Complex conditional logic, multi-job orchestration, artifact sharing, authorization gating, and dual-release pipelines (v2/v3) require careful verification of trigger conditions, outputs, and error handling paths.
  • Changelog validation workflow (changelog-validation-v3.yml) — File diff detection and PR commenting logic need verification against git operations and GitHub API interactions.
  • Documentation site configuration (docs/astro.config.mjs, docs/package.json) — Integration of Starlight plugins, sidebar generation, localization setup, and custom CSS require validation against Astro/Starlight best practices and build correctness.
  • 30+ community showcase entries — Repetitive but should be spot-checked for consistency in structure, image references, and link integrity.

Possibly related PRs

Suggested labels

v3-alpha, documentation, github-actions, automation, size:L, lgtm

Suggested reviewers

  • leaanthony

Poem

🐰 A docs site springs forth, spring-green and bright,
Workflows automate the release-day fight,
Showcase entries hop, one-two-three,
Starlight guides the v3 journey free!
With tests and builds stacked neat and tight,
Wails takes flight! ✨

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e5deb16 and 31110f0.

⛔ Files ignored due to path filters (42)
  • docs/package-lock.json is excluded by !**/package-lock.json
  • docs/public/favicon.svg is excluded by !**/*.svg
  • docs/public/missing.png is excluded by !**/*.png
  • docs/public/sponsors/sponsors.svg is excluded by !**/*.svg
  • docs/public/sponsors/zsa.png is excluded by !**/*.png
  • docs/src/assets/blog-images/devtools.png is excluded by !**/*.png
  • docs/src/assets/blog-images/montage.png is excluded by !**/*.png
  • docs/src/assets/menus/context-menu.png is excluded by !**/*.png
  • docs/src/assets/qr1.png is excluded by !**/*.png
  • docs/src/assets/qr2.png is excluded by !**/*.png
  • docs/src/assets/showcase-images/clave.png is excluded by !**/*.png
  • docs/src/assets/showcase-images/esp-studio.png is excluded by !**/*.png
  • docs/src/assets/showcase-images/mac-app.png is excluded by !**/*.png
  • docs/src/assets/showcase-images/mchat.png is excluded by !**/*.png
  • docs/src/assets/showcase-images/restic-browser-2.png is excluded by !**/*.png
  • docs/src/assets/showcase-images/snippetexpandergui-add-snippet.png is excluded by !**/*.png
  • docs/src/assets/showcase-images/snippetexpandergui-search-and-paste.png is excluded by !**/*.png
  • docs/src/assets/showcase-images/snippetexpandergui-select-snippet.png is excluded by !**/*.png
  • docs/src/assets/showcase-images/surge.png is excluded by !**/*.png
  • docs/src/assets/showcase-images/warmine1.png is excluded by !**/*.png
  • docs/src/assets/showcase-images/warmine2.png is excluded by !**/*.png
  • docs/src/assets/wails-logo-dark.svg is excluded by !**/*.svg
  • docs/src/assets/wails-logo-horizontal-dark.svg is excluded by !**/*.svg
  • docs/src/assets/wails-logo-horizontal-light.svg is excluded by !**/*.svg
  • docs/src/assets/wails-logo-light.svg is excluded by !**/*.svg
  • docs/src/assets/wails_build.mp4 is excluded by !**/*.mp4
  • docs/src/assets/wails_dev.mp4 is excluded by !**/*.mp4
  • docs/src/assets/wails_init.mp4 is excluded by !**/*.mp4
  • v2/examples/customlayout/go.sum is excluded by !**/*.sum
  • v2/internal/staticanalysis/test/standard/go.sum is excluded by !**/*.sum
  • v3/examples/badge-custom/build/appicon.png is excluded by !**/*.png
  • v3/examples/badge-custom/build/windows/icon.ico is excluded by !**/*.ico
  • v3/examples/badge-custom/frontend/dist/Inter-Medium.ttf is excluded by !**/dist/**, !**/*.ttf
  • v3/examples/badge-custom/frontend/dist/assets/index-DOJs-2ns.js is excluded by !**/dist/**
  • v3/examples/badge-custom/frontend/dist/index.html is excluded by !**/dist/**
  • v3/examples/badge-custom/frontend/dist/style.css is excluded by !**/dist/**
  • v3/examples/badge-custom/frontend/dist/typescript.svg is excluded by !**/dist/**, !**/*.svg
  • v3/examples/badge-custom/frontend/dist/wails.png is excluded by !**/dist/**, !**/*.png
  • v3/examples/badge-custom/frontend/public/Inter-Medium.ttf is excluded by !**/*.ttf
  • v3/examples/badge-custom/frontend/public/typescript.svg is excluded by !**/*.svg
  • v3/examples/badge-custom/frontend/public/wails.png is excluded by !**/*.png
  • v3/examples/badge/build/appicon.png is excluded by !**/*.png
📒 Files selected for processing (107)
  • .all-contributorsrc (1 hunks)
  • .coderabbit.yaml (1 hunks)
  • .github/ISSUE_TEMPLATE/bug_report.yml (1 hunks)
  • .github/file-labeler.yml (1 hunks)
  • .github/issue-labeler.yml (1 hunks)
  • .github/pull_request_template.md (3 hunks)
  • .github/stale.yml (1 hunks)
  • .github/workflows/auto-label-issues.yml (1 hunks)
  • .github/workflows/automated-releases.yml (1 hunks)
  • .github/workflows/build-and-test-v3.yml (1 hunks)
  • .github/workflows/changelog-validation-v3.yml (1 hunks)
  • .github/workflows/generate-sponsor-image.yml (1 hunks)
  • .github/workflows/issue-triage-automation.yml (1 hunks)
  • .github/workflows/nightly-release-v3.yml (1 hunks)
  • .github/workflows/pr-master.yml (2 hunks)
  • .github/workflows/publish-npm.yml (1 hunks)
  • .github/workflows/semgrep.yml (2 hunks)
  • .github/workflows/stale-issues.yml (1 hunks)
  • .github/workflows/test-nightly-releases.yml (1 hunks)
  • .github/workflows/test-simple.yml (1 hunks)
  • .github/workflows/unreleased-changelog-trigger.yml (1 hunks)
  • .github/workflows/upload-source-documents.yml (1 hunks)
  • .github/workflows/v3-docs.yml (1 hunks)
  • .gitignore (1 hunks)
  • .prettierrc.yml (1 hunks)
  • CNAME (1 hunks)
  • Taskfile.yaml (1 hunks)
  • docs/.gitignore (1 hunks)
  • docs/.npmrc (1 hunks)
  • docs/.vscode/extensions.json (1 hunks)
  • docs/.vscode/launch.json (1 hunks)
  • docs/CNAME (1 hunks)
  • docs/README.md (1 hunks)
  • docs/Taskfile.yml (1 hunks)
  • docs/astro.config.mjs (1 hunks)
  • docs/package.json (1 hunks)
  • docs/src/assets/contributors.html (1 hunks)
  • docs/src/components/CardAnimation.astro (1 hunks)
  • docs/src/content/authors.ts (1 hunks)
  • docs/src/content/config.ts (1 hunks)
  • docs/src/content/docs/DEVELOPER_GUIDE.md (1 hunks)
  • docs/src/content/docs/blog/2021-09-27-v2-beta1-release-notes.md (1 hunks)
  • docs/src/content/docs/blog/2021-11-08-v2-beta2-release-notes.md (1 hunks)
  • docs/src/content/docs/blog/2022-02-22-v2-beta3-release-notes.md (1 hunks)
  • docs/src/content/docs/blog/2022-09-22-v2-release-notes.md (1 hunks)
  • docs/src/content/docs/blog/2023-01-17-v3-roadmap.md (1 hunks)
  • docs/src/content/docs/blog/2024-12-03-alpha10-and-new-release-strategy.md (1 hunks)
  • docs/src/content/docs/changelog.mdx (1 hunks)
  • docs/src/content/docs/community/links.md (1 hunks)
  • docs/src/content/docs/community/showcase/_template.md (1 hunks)
  • docs/src/content/docs/community/showcase/bulletinboard.md (1 hunks)
  • docs/src/content/docs/community/showcase/cfntracker.md (1 hunks)
  • docs/src/content/docs/community/showcase/clave.md (1 hunks)
  • docs/src/content/docs/community/showcase/emailit.md (1 hunks)
  • docs/src/content/docs/community/showcase/encrypteasy.md (1 hunks)
  • docs/src/content/docs/community/showcase/espstudio.md (1 hunks)
  • docs/src/content/docs/community/showcase/filehound.md (1 hunks)
  • docs/src/content/docs/community/showcase/hiposter.md (1 hunks)
  • docs/src/content/docs/community/showcase/index.mdx (1 hunks)
  • docs/src/content/docs/community/showcase/mchat.md (1 hunks)
  • docs/src/content/docs/community/showcase/minecraftupdater.md (1 hunks)
  • docs/src/content/docs/community/showcase/minesweeper-xp.md (1 hunks)
  • docs/src/content/docs/community/showcase/modalfilemanager.md (1 hunks)
  • docs/src/content/docs/community/showcase/mollywallet.md (1 hunks)
  • docs/src/content/docs/community/showcase/october.md (1 hunks)
  • docs/src/content/docs/community/showcase/optimus.md (1 hunks)
  • docs/src/content/docs/community/showcase/portfall.md (1 hunks)
  • docs/src/content/docs/community/showcase/resizem.md (1 hunks)
  • docs/src/content/docs/community/showcase/restic-browser.md (1 hunks)
  • docs/src/content/docs/community/showcase/riftshare.md (1 hunks)
  • docs/src/content/docs/community/showcase/scriptbar.md (1 hunks)
  • docs/src/content/docs/community/showcase/snippetexpander.md (1 hunks)
  • docs/src/content/docs/community/showcase/surge.md (1 hunks)
  • docs/src/content/docs/community/showcase/tinyrdm.md (1 hunks)
  • docs/src/content/docs/community/showcase/wailsterm.md (1 hunks)
  • docs/src/content/docs/community/showcase/wally.md (1 hunks)
  • docs/src/content/docs/community/showcase/warmine.md (1 hunks)
  • docs/src/content/docs/community/showcase/wombat.md (1 hunks)
  • docs/src/content/docs/community/showcase/ytd.md (1 hunks)
  • docs/src/content/docs/community/templates.md (1 hunks)
  • docs/src/content/docs/contributing/_category_.json (1 hunks)
  • docs/src/content/docs/contributing/architecture.mdx (1 hunks)
  • docs/src/content/docs/contributing/asset-server.mdx (1 hunks)
  • docs/src/content/docs/contributing/binding-system.mdx (1 hunks)
  • docs/src/content/docs/contributing/build-packaging.mdx (1 hunks)
  • docs/src/content/docs/contributing/codebase-layout.mdx (1 hunks)
  • docs/src/content/docs/contributing/extending-wails.mdx (1 hunks)
  • docs/src/content/docs/contributing/index.mdx (1 hunks)
  • docs/src/content/docs/contributing/runtime-internals.mdx (1 hunks)
  • docs/src/content/docs/contributing/template-system.mdx (1 hunks)
  • docs/src/content/docs/contributing/testing-ci.mdx (1 hunks)
  • docs/src/content/docs/credits.mdx (1 hunks)
  • docs/src/content/docs/feedback.mdx (1 hunks)
  • docs/src/content/docs/getting-started/installation.mdx (1 hunks)
  • docs/src/content/docs/getting-started/your-first-app.mdx (1 hunks)
  • docs/src/content/docs/guides/_category_.json (1 hunks)
  • docs/src/content/docs/guides/cli.mdx (1 hunks)
  • docs/src/content/docs/guides/custom-protocol-association.mdx (1 hunks)
  • docs/src/content/docs/guides/custom-templates.mdx (1 hunks)
  • docs/src/content/docs/guides/customising-windows.mdx (1 hunks)
  • docs/src/content/docs/guides/events-reference.mdx (1 hunks)
  • docs/src/content/docs/guides/file-associations.mdx (1 hunks)
  • docs/src/content/docs/guides/gin-routing.mdx (1 hunks)
  • docs/src/content/docs/guides/gin-services.mdx (1 hunks)
  • docs/src/content/docs/guides/menus.mdx (1 hunks)
  • docs/src/content/docs/guides/msix-packaging.mdx (1 hunks)
  • docs/src/content/docs/guides/panic-handling.mdx (1 hunks)
⛔ Files not processed due to max files limit (25)
  • docs/src/content/docs/guides/signing.mdx
  • docs/src/content/docs/guides/single-instance.mdx
  • docs/src/content/docs/guides/windows-uac.mdx
  • docs/src/content/docs/index.mdx
  • docs/src/content/docs/learn/advanced-binding.mdx
  • docs/src/content/docs/learn/application-menu.mdx
  • docs/src/content/docs/learn/binding-best-practices.mdx
  • docs/src/content/docs/learn/binding-system.mdx
  • docs/src/content/docs/learn/bindings.mdx
  • docs/src/content/docs/learn/browser.mdx
  • docs/src/content/docs/learn/build.mdx
  • docs/src/content/docs/learn/clipboard.mdx
  • docs/src/content/docs/learn/context-menu.mdx
  • docs/src/content/docs/learn/dialogs.mdx
  • docs/src/content/docs/learn/dock.mdx
  • docs/src/content/docs/learn/environment.mdx
  • docs/src/content/docs/learn/events.mdx
  • docs/src/content/docs/learn/keybindings.mdx
  • docs/src/content/docs/learn/manager-api.mdx
  • docs/src/content/docs/learn/menu-reference.mdx
  • docs/src/content/docs/learn/notifications.mdx
  • docs/src/content/docs/learn/runtime.mdx
  • docs/src/content/docs/learn/screens.mdx
  • docs/src/content/docs/learn/services.mdx
  • docs/src/content/docs/learn/systray.mdx

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
131 Security Hotspots
22.9% Duplication on New Code (required ≤ 3%)
D Reliability Rating on New Code (required ≥ A)
E Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.