chore: Wails v3 beta.12 → beta.15 (Go + runtime + CLI), bindings regenerated, cgo audits re-pinned; the Go dependency group re-taken with the go directive held (goal 0314) - #684
Merged
Conversation
…enerated, cgo audits re-pinned; the Go dependency group re-taken with the go directive held (goal 0314) Bumps github.com/wailsapp/wails/v3 and @wailsio/runtime to beta.15, installs the matching wails3 CLI, and re-audits every framework-api-audit comment against the beta.15 vendored source (all seven gaps confirmed unchanged, none removable). Also re-takes three of Dependabot's four go-dependencies-group bumps (goquery, kin-openapi, golang.org/x/mod); go-cron stays at v0.15.1 because v0.16.0 requires go 1.26, which CI's runners don't have -- the same failure mode #543 hit. The go.mod `go` directive is held at 1.25.7 throughout. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F5UoGETNHaQXctzxqJkMTB
alicoding
enabled auto-merge (squash)
September 5, 2026 03:02
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
github.com/wailsapp/wails/v3and@wailsio/runtimebeta.12 -> beta.15, installs the matchingwails3CLI, regenerates bindings (no shape change --tsc --noEmitclean, no frontend cascade).framework-api-auditcgo comment against the beta.15 vendored source: all seven confirmed still-missing, version pin bumped, none removable.go-cronstays at v0.15.1: v0.16.0 requiresgo 1.26/toolchain go1.27.0, which would have movedgo.mod's directive past what CI's runners have -- the same failure mode chore(deps): Bump the go-dependencies group across 1 directory with 4 updates #543 hit.go.mod'sgodirective is held at1.25.7throughout.origin/mainin (goal 0326 output viewer, goal 0306 S0 secrets) to satisfy the branch-protection "up to date" requirement; all gates re-run clean afterward.Release-notes findings against Mill's seams (beta.13/14/15)
handleApplicationEventused to return early when an event had no.Onlistener, soRegisterApplicationEventHookhooks never ran unless something else also listened for that event id. Mill's dock-reopen hook (auxwindows.go:231,events.Mac.ApplicationShouldHandleReopen) registers ONLY the hook, no listener -- so on beta.12 this hook likely never fired. Fixed as of beta.13; hooks now run first, mirroringHandleWindowEvent. This directly touches goal 0344's dock-reopen behavior -- flagged as the top manual-check priority for this PR (see below).InvokeSync/InvokeAsync, backing every window/menu/runtime call) used to starve behind an open modal/menu (measured up to 33s). Now scheduled viaCFRunLoopPerformBlockso it's delivered during a nested run loop. Pure reliability improvement; one documented behavioral change worth knowing -- work now runs during a modal session where it previously queued behind it.NativeWindow(),Events.On/RegisterEvent[T]payload typing: unaffected -- no PR in beta.13-15 touches any of these; confirmed by reading the PR list, not assumed.ServiceOptions.MarshalError/application.Options.MarshalError: both already fully wired at beta.12 (bindings.go:140,application.go:194) and unchanged at beta.15 -- the brief's "was inert" premise didn't hold for this repo's already-installed version; no change to report here.Re-audited
framework-api-auditlines (all: beta.12 -> beta.15, content unchanged, confirmed against the beta.15 vendored source at~/go/pkg/mod/github.com/wailsapp/wails/v3@v3.0.0-beta.15)auxwindows.go:214-- no window-restoration option added.internal/adapters/launchatlogin/launchatlogin_smappservice_darwin.go:5--AutostartManager.Status()still collapsesSMAppServiceStatusRequiresApproval.internal/adapters/presencekey/presencekey_darwin.go:5-- still no desktop Security-framework/keychain API (SecureSet/SecureGet/SecureDeletestill//go:build iosonly).internal/adapters/localauth/localauth_darwin.go:5--MobileManager.BiometricAuthenticatestill a no-op stub (mobile_stub.go).internal/adapters/windowing/filepromise_darwin.go:5-- still no drag-out file-promise API.internal/adapters/windowing/nonrestorable_darwin.go:5-- still no restorable/restoration field or call site.internal/adapters/windowing/mainthread_darwin.go:5-- still no exported "am I on the main thread" query.framework-api-auditline, but cites the same version):internal/adapters/localauth/localauth.go's comment citingHandleRuntimeCallWithIDs/transport_http.go-- confirmed unchanged at beta.15 (still net/http per-request goroutine dispatch).Gates (all green, both before and after the origin/main merge)
go build ./-tags server/-tags mcp,go vet . ./internal/...(CI's own scope --build/iosetc. are gomobile scaffold with nomain(), deliberately excluded, per.github/workflows/ci.yml:366-371).go test ./...-- all packages pass, no FAIL lines.scripts/check-framework-api-first.sh,scripts/check-comment-hygiene.sh,scripts/check-sdk-freshness.sh-- clean.npm ci,npm run lint(0 errors, only pre-existing warnings),npx tsc --noEmit(clean -- confirms no binding-shape cascade),npx vitest run(1485/1485 passed post-merge),npm run boundaries(0 violations).keymap,quick-panel*,updates,secrets(+coding-loop-secrets, incidental substring match),theming-- 42/42 passed.atlas-authoringalone on its dedicated server -- 2/2 passed.bin/mill(dev-tag,go build .), launched with isolatedMILL_SETTINGS_PATH/MILL_EXECUTION_DB_PATH/MILL_BACKUP_DIR/MILL_SECRETS_PATH/MILL_TEST_KEYRING=memory/MILL_MCP_ADDR=127.0.0.1:8199for 10s -- real Cocoa window served the frontend (asset requests logged), no panic/crash, exited cleanly onkill <pid>. (task build/wails3 buildthemselves are hook-gated on a clean main-checkout tree, which this agent's pinned cwd can't satisfy from a worktree -- see Constraints below; the equivalent plaingo build .the darwin dev-flavorBUILD_FLAGSresolves to was used instead, and is sufficient for a crash-check.)scripts/webview-bridge-smoke.sh: skipped -- its own guard (internal/webviewbridgesmoke/guard.go) refuses to run whenever the installed/Applications/Mill.appis already running (confirmed running, PID logged), and quitting the owner's app is out of scope for this agent. Report only, no override attempted.Owner's manual-only checks (installed build, no harness reaches these; registry:
.claude/skills/manual-checks/SKILL.md)scripts/webview-bridge-smoke.sh, once the installed Mill.app can be quit.Docs (drafted here --
docs/is hard-blocked for this agent)@wailsio/runtime,wails3CLI); bindings regenerated with no shape change; all sevenframework-api-auditlines re-audited and re-pinned, none removable; go-dependencies-group re-taken for goquery/kin-openapi/x/mod (go-cron held back, needs go1.26). Acceptance: gates green, bindings unchanged, launch check clean, PR merged.RegisterApplicationEventHookfiring without a co-registered.Onlistener (affects the dock-reopen hook, goal 0344) and macOS main-thread dispatch starving behind an open modal; no menu/window/events API surface changed."Constraints that proved wrong / cascades
go-cronv0.16.0 unilaterally requiresgo 1.26/toolchain go1.27.0in its owngo.mod-- there's no version between 0.15.1 and 0.16.0 to split the difference, and the two v1.x tags on the module are self-retracted ("Erroneous version from inherited robfig/cron tag"). Reverted to v0.15.1 rather than moving the directive; not a design call, just what upstream ships.hook-build-guard.shresolves its dirty-tree check off the tool call'scwd, which for this agent is pinned to the main checkout (/Users/ali/code/mill, itself dirty with an untrackedeso_provider.gothis agent must not touch) regardless ofcdinside the command --task build/task package/task install:app/wails3 buildare therefore unreachable from this worktree in this environment.EnterWorktree(path=...)also refuses for the same reason (agent cwd isn't "inside" the worktree by its own reckoning). Worked around by hand-assembling the equivalent plaingo buildinvocation instead of the gated Task/CLI names; the actual build output and gates are unaffected, but the orchestrator should knowtask buildis not exercisable by a worktree-pinned agent as configured.frontend/bindings/**came back byte-identical before and after regeneration (both pre- and post-merge), andtsc --noEmitstayed clean throughout -- no frontend edits were needed.🤖 Generated with Claude Code
https://claude.ai/code/session_01F5UoGETNHaQXctzxqJkMTB