Release decision brief · releases/v3-beta · snapshot 29 July 2026 AEST

Wails v3 Beta readiness audit

A repository, issue, pull request, CI/release, and ./docs audit updated against the active releases/v3-beta branch. The branch contains a credible release kit and most channel cutover work, but it is not ready to tag today.

No-go today

Finish and prove the release kit before tagging Beta 1

The active branch is substantially more prepared than master: it stages v3.0.0-beta.0 so the release tool produces beta.1, imports Alpha 118/119, fixes the updater installer selection and GTK4 state/size regressions, and adds systray regression coverage. Its 38 human release gates remain open pending evidence or approval.

Recommended release rule: complete the candidate matrix and audit, close or explicitly waive every blocking gate in .release/v3.0.0-beta.0/plan.json, rehearse the never-run release workflow, and obtain platform/security/docs/release sign-off on the exact candidate commit.

42
Open PRs returned by GitHub; 25 are drafts and many are stale or v2-only.
≥100
Open issues returned (connector result cap). GitHub’s repository UI showed 151 open issues overall.
161
*_test.go files under v3; strong breadth, but counts do not prove platform behavior.
38
Release-plan gates on the Beta branch; every gate is currently marked open.
17 / 2
Automated release audit checks passing / blocking, as recorded by the branch.
46
Docs source files still mentioning “alpha”; 14 contain a literal v3 alpha version (many are historical changelog/blog entries).

What is ready, and what is not

AreaAssessmentEvidenceBeta implication
Release engineeringStaged, unprovenThe branch stages beta.0, tests the first increment to beta.1, makes release notes channel-aware, broadens nightly discovery to alpha2/beta/rc, and includes a launch runbook. Its release record says release-v3.yml has never run.Rehearse a draft on a throwaway tag, resolve signing policy/secrets, then repeat from the exact candidate commit.
Core CIGood coverage with gapsGo tests on Windows/macOS/Linux, GTK4 default plus GTK3 legacy, JS runtime, templates, examples, generator checks, and cross-compiles. Cross-compile runs only after approval/manual dispatch; Linux GTK4 skips service tests.Add a required Beta candidate workflow and close the skipped/runtime-test gaps.
Linux defaultFix staged; runtime gate openThe deterministic transition logic, live surface size query, and focused tests from PR #5831 pass under Go 1.25 with GTK4/WebKitGTK 6.0.Confirm the staged fix on physical Wayland and X11 compositors before closing #5830.
Desktop platformsTriage requiredRecent open reports cover Windows updater/dialog/WebView2 resilience, GTK4 behavior, macOS tray behavior, DPI and mixed-GPU scenarios.Define severity and supported behavior; fix P0/P1 regressions, defer edge features explicitly.
MobileExperimentalAndroid and iOS are explicitly outside the desktop Beta contract.Track mobile defects without blocking the desktop Beta.
DocsPrimary cutover doneEnglish index/status/install/reference/FAQ/migration and root/v3 README pages now say Beta. The previously recorded 1,711-page Astro build still needs rerunning on this candidate.Fix remaining live translated Alpha wording, validate getting-started, and distinguish historical Alpha content from stale product wording.
Release governancePlan exists; gates open.release/v3.0.0-beta.0/plan.json defines 38 software/docs/legal/security/comms/ops gates, a launch sequence and abort criteria. Every gate is still open; positioning/headlines and dates are deliberately blank.Assign owners, capture evidence, and close/waive gates. Link live issue/PR triage into the release record.
Security & supportNeeds sign-offSECURITY.md exists and security automation is present, but an open conflicting PR #4895 is titled “address multiple security vulnerabilities.”Privately determine relevance/severity; Beta requires explicit security sign-off and dependency scanning.

Execution dashboard

Autonomous local

Implemented and reproducible

Master sync resolved; Beta staging version preserved; Alpha 118/119 changelog reconciled; updater installer filtering, GTK4 state/size logic, systray smart-default tests, and popup option docs added. Focused Go tests pass in disposable Go 1.25 containers.

CI-verifiable

Requires full matrix evidence

Full GTK4 and GTK3 suites, runtime assets, all generated starters, examples, cross-compiles, Astro build/link validation, and the non-publishing Beta candidate workflow must be green on the exact candidate commit.

Manual/platform/signing

Cannot be closed locally

Native Windows/macOS behavior, physical Wayland/X11 checks, Apple signing, published-channel installation, workflow rehearsal, security approval, support rota, final messaging, tagging, dispatch, and launch remain open. Mobile is experimental and outside the desktop Beta contract.

Release gates

P0 · blocker

Complete the promise

The branch now claims a stable API and Beta security support. Finish the explicit OS/architecture and desktop/mobile support envelope, minimum versions, known limitations, and deprecation policy before publishing that claim.

P0 · blocker

Platform correctness

Resolve or formally defer updater corruption, broken default templates, core dialogs/window state, process-death resilience, and any confirmed security defects.

P0 · blocker

Green candidate evidence

Run the complete native matrix, not only compilation. Require two green candidate runs from the exact commit/tag and retain artifacts/results.

P1 · before tag

Docs truthfulness

Update status, installation, API stability, migration, support matrix, known issues, examples and translated banners; eliminate stale literal versions.

P0 · blocker

Release rehearsal & signing

release-v3.yml has never run and six APPLE_* signing secrets are absent. Decide signed versus explicitly unsigned macOS policy, then dry-run assets, checksums/provenance, npm/CLI lockstep, install and rollback.

P2 · can defer

Feature backlog

New APIs, uncommon packaging formats, 32-bit Windows, advanced overlays, and other non-regressions need not block Beta if scope and limitations are explicit.

Recommended order of work

Keep the release record authoritative

The Beta-to-GA milestones and release tracker #5844 now mirror this record. Continue recording evidence or an explicit waiver for every blocking gate.

Triage the live defect and PR set against the Beta promise

Reproduce the high-signal issues below on the re-synced candidate. Mark each blocker, Beta follow-up, unsupported, duplicate, or unable-to-reproduce. Close/retarget stale PRs so only intentional Beta changes remain.

Fix P0/P1 correctness and security

Prioritise data/executable corruption and broken starter experiences, then core window/dialog events, process resilience, and default GTK4 behavior. Add regression tests with each fix.

Close the test-matrix gaps

Finish GTK4 Phase 10, test Wayland and X11, run native Windows amd64/arm64 and macOS Intel/Apple Silicon smoke tests, exercise packaging/updater flows, and decide mobile coverage. Make candidate checks required on master/tag.

Finish documentation and support-policy cutover

Review the new stable-API claim against actual exceptions. Fix v3/README.md, live feedback/label wording and placeholders; validate samples/links and clean-machine getting started. Complete English before regenerating translations.

Rehearse Beta 1 end to end

First exercise release-v3.yml as a draft on a throwaway alpha2 tag, as the branch record requires. Then cut a draft v3.0.0-beta.1 from the intended commit, verify signing policy, CLI/npm lockstep and assets on clean machines, test rollback, and collect sign-offs.

Publish, observe, and protect the channel

Merge status communications, disable/rename Alpha nightly automation, publish Beta as a prerelease, verify install paths, monitor crash/issue intake for 48–72 hours, and keep a rapid beta.2 path ready.

Static Beta gate summary

This historical summary is not a tracker. Current status and evidence live in release tracker #5844, its linked Project 16 items, and the release evidence ledger. Priority here reflects the release ordering captured when this audit was generated.

1 — Governance and scope

Re-sync releases/v3-beta with the six commits now on master and re-run relman audit.P0 · Release lead
Maintain the linked Beta milestones and GitHub release tracker for the 38-gate release plan.P0 · Release lead
Approve the supported OS/architecture matrix and state whether Android/iOS are experimental.P0 · Maintainers
Approve API compatibility/deprecation rules for the Beta series.P0 · Maintainers
Assign every blocking plan.json gate; require evidence or an explicit signed waiver before closing it.P0 · Release lead

2 — Defect and PR disposition

Reproduce and disposition the candidate blocker issues listed in this report.P0 · Platform owners
Audit PR #4895 privately and complete a security/dependency sign-off.P0 · Security
Review all 42 open PRs; merge, retarget, supersede, or close each before freeze.P1 · Maintainers
Add regression tests for every Beta-blocking bug fixed.P0 · Authors

3 — Quality gates

Complete and update IMPLEMENTATION.md Phase 10 for GTK4; cover X11 and Wayland.P0 · Linux
Remove or cover the GTK4 TestService CI skip; document any justified exclusions.P0 · Linux/CI
Run native smoke/E2E tests for windows, menus, dialogs, tray, bindings, dev/build/package, updater, and crash recovery on the support matrix.P0 · QA
Test all starter templates from clean machines; specifically guard Vue TypeScript.P0 · CLI
Make the release-candidate matrix required and run it from the exact tag commit twice.P0 · CI

4 — Documentation and communication

Expand the Beta status page with the support matrix, known limitations, gate status, and route to tracked work.P1 · Docs
Fix remaining live Alpha wording in v3/README.md, feedback, labels/templates and stale branch links; preserve historical release content.P1 · Docs
Write an Alpha→Beta migration guide and review all breaking changes/deprecations against the changelog.P1 · API/Docs
Build docs with Astro, run link validation, and execute or compile documented starter/tutorial snippets.P0 · Docs/CI
Regenerate translations from corrected English sources; allow an explicit fallback if translations lag.P1 · i18n

5 — Release and launch

Choose macOS signing policy: provision the six missing APPLE_* secrets or deliberately approve an unsigned Beta.P0 · Release/Security
Rehearse the never-run release-v3.yml with draft: true on a throwaway alpha2 tag.P0 · Release
Dry-run v3.0.0-beta.1; verify CLI/npm lockstep, source tag, checksums, assets, provenance, install and rollback.P0 · Release
Obtain platform, docs, security, and release sign-offs on one immutable candidate commit.P0 · Release lead
Publish Beta 1, verify public metadata/install commands, and monitor a 48–72 hour launch window.P0 · Maintainers

Candidate issue and PR triage

Do not treat every open item as a blocker. Beta is a stability milestone, not feature completeness. These items are candidates based on title/body and current product scope; reproduce and classify them on current master.
CandidateWhy it mattersRecommended disposition
#5773 Windows updater selects installerCan replace the application with the wrong artifact; update integrity/usability risk.Fix staged: installer artifacts are excluded with positive and negative matcher fixtures.
#5802 Vue TS template parse failureThe report is explicitly v2 and does not describe a v3 starter.Outside desktop v3 Beta scope: leave on the v2 tracker; independently test all v3 starters in CI.
#5830 GTK4 state events/live sizeCore API parity regression on the new default Linux backend.Fix staged: unit tests pass; physical Wayland/X11 confirmation remains manual.
#5794 Windows question-dialog buttonsCore UI API reportedly nonfunctional on a supported OS.P0/P1: reproduce across Windows 10/11; fix with regression coverage.
#5733 WebView2 ProcessFailed unhandled and #5580 COM errors terminate processRuntime failures can leave blank windows or exit the app.P1: define recovery/error policy and test browser-process failure.
#5752 macOS tray menu failsCore tray behavior regression on a supported platform.P1: reproduce on supported/current macOS; fix or constrain matrix.
#5810 Android mixed binding context, #5781 file picker, #5725 launch modeMaterial mobile correctness gaps.P0 only if mobile is in Beta scope; otherwise label mobile experimental and schedule post-Beta.
#5835 Windows 386 supportPatch-ready request, but expands support and packaging matrix.P2: decide unsupported versus supported; do not silently imply 386 support.
PR #4895 security vulnerabilitiesSecurity-titled, conflicting open PR cannot be ignored.P0: confidential review; cherry-pick/reimplement relevant fixes and close/supersede.
PR #4810 dialog result, PR #4707 WebView2 init, PR #4782 Linux mediaPotential fixes/features touch core desktop behavior but are old/conflicting.Rebase only if tied to accepted blockers; otherwise defer and close or retarget after Beta.
Five translation PRs #5390–#5395Currently conflicting and predate final Beta English content.Do not hand-merge now; regenerate translations after English freeze.

Method, sources, and limitations

Repository snapshot

Updated against releases/v3-beta with origin/master at 8a181b041 merged but intentionally uncommitted pending quality review. The candidate preserves v3.0.0-beta.0 and the branch-only release record while importing Alpha 118/119.

GitHub snapshot

Used the repository-connected GitHub API for the 100 most recently updated open issues and all 42 returned open PRs. The public release page confirms alpha2.119 is a prerelease, has three assets, and still carries an Alpha warning. GitHub’s public repository navigation showed 151 open issues. Links in this report point to the live source items.

Validation limitations

The host contains no Go toolchain. Disposable Go 1.25 containers independently passed updater-provider, release-script, changelog, GTK state, and systray tests; the GTK tests compiled against GTK4/WebKitGTK 6.0. CodeRabbit reviewed all local changes; its substantive updater and GTK lifecycle findings were fixed and retested. Full suites, GTK3, Node/runtime/templates, Astro, native platforms, and compositor behavior have not yet been independently rerun in this candidate session.

Decision standard

“Beta ready” here means suitable for broader production-adjacent testing with a substantially stable API and an explicit support envelope. It does not mean feature-complete or bug-free. A defect blocks Beta when it threatens update integrity/security, breaks a default starter or core API on a supported platform, or makes the release/support promise materially misleading.