Skip to content

chore(beta): merge master into releases/v3-beta (second sync) - #5821

Merged
leaanthony merged 7 commits into
releases/v3-betafrom
chore/sync-beta-2
Jul 26, 2026
Merged

chore(beta): merge master into releases/v3-beta (second sync)#5821
leaanthony merged 7 commits into
releases/v3-betafrom
chore/sync-beta-2

Conversation

@taliesin-ai

Copy link
Copy Markdown
Collaborator

Second sync. The branch was six commits behind master again within hours of the first one (#5818), which is the whole point: a release branch does not announce that it is aging, it just quietly stops containing things.

Clean merge, no conflicts. Picks up:

Invariants checked after merging

  • version.txt still v3.0.0-beta.0
  • beta wording still present in faq.mdx and status.mdx
  • contribution terms present in CONTRIBUTING.md
  • lockstep logic present in publish-npm.yml
  • preflight present in release-v3.yml

This is now enforced

relman gained a release-branch-current blocker that compares the release branch against its base and fails the audit when it falls behind, with the fix in the message. It caught this drift:

FAIL release-branch-current     Release branch is not behind its base [blocker]
       6 commit(s) on origin/master are not on this branch
       fix: merge origin/master in and re-run the audit; do this immediately
            before tagging, not the day before

Re-syncing immediately before the tag should be a step in the release runbook, not something anyone has to remember.

gilad-ch and others added 7 commits July 26, 2026 19:26
…build (#5805)

Fix 32-bit build: type maxArchiveTotalSize as int64

The updater's maxArchiveTotalSize constant is 2 GiB (2147483648). As an
untyped constant it defaults to int when passed to fmt.Errorf, and on
32-bit targets (e.g. GOARCH=386) int is 32 bits, so the value overflows
and the build fails:

    cannot use maxArchiveTotalSize (untyped int constant 2147483648) as
    int value in argument to fmt.Errorf (overflows)

Type the constant int64 so it stays int64 at the format calls. Every
other use is already int64 arithmetic, so behaviour is unchanged.

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
CONTRIBUTING.md never said what licence contributions come in under, whether a
CLA applies, or whether sign-off is required. That is a routine question for
anyone contributing from inside a company, and the answer being implicit means
each person has to ask or guess.

States the existing position rather than introducing a new one: MIT in, MIT
out, no CLA, no DCO trailer, and third-party code disclosed in the PR.

Claude-Session: https://claude.ai/code/session_01FigQqUQbNu9ngE4a2CSNm8

Co-authored-by: taliesin-ai <lea.anthony@gmail.com>
…nic (#5793)

fix(v3): guard nil AllowDarkModeForWindow to avoid startup panic on Windows 1809

pkg/w32/theme.go loads the undocumented dark-mode uxtheme exports (including
AllowDarkModeForWindow) only on Windows build >= 18334, so on older builds such
as Windows 10 1809 / Windows Server 2019 (build 17763) the package-level
AllowDarkModeForWindow is nil.

The Dark and system-dark branches of (*windowsWebviewWindow).run called it
unguarded, so a window with Windows.Theme == Dark (or SystemDefault while the OS
is in dark mode) panicked on startup with a nil pointer dereference before the
window was shown. w32.SetMenuTheme already guards the identical call.

Extract the call into an applyDarkMode method, which nil-guards it, and use it
from both branches so the window degrades gracefully instead of crashing.

Fixes #5792

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
…lowDarkModeForWindow to avoid startup panic
The npm package version was produced by `npm version prerelease`, which
increments the trailing numeric identifier and knows nothing about the release
channel. That is how the two series drifted: the CLI went alpha -> alpha2 ->
beta while npm kept counting alpha.N. Today the CLI is v3.0.0-alpha2.117 and
npm is 3.0.0-alpha.97, and at beta a v3.0.0-beta.0 CLI would have shipped
alongside an "alpha" runtime, with every upgrading user needing to be told the
mismatch was expected.

The runtime version now comes from v3/internal/version/version.txt, the same
file go:embed puts into the CLI, so the two always agree.

Because the version now only moves when version.txt moves, a run triggered by a
runtime source change between releases would try to republish an existing
version. Such runs now skip the publish step while still committing regenerated
assets, and version.txt is added to the trigger and detection paths so a release
that moves it does publish.

Merging this publishes nothing: a workflow-file-only change does not match the
detect job's file lists, so the publish job does not run. The next publish
happens when version.txt next moves, and it will be 3.0.0-alpha2.117 rather
than 3.0.0-alpha.98. That sorts higher, so nothing downstream breaks.

Verified: actionlint clean; version derivation exercised for both the current
master value and the beta value; the already-published guard correctly detects
3.0.0-alpha.97 as present and 3.0.0-beta.0 as absent.

Claude-Session: https://claude.ai/code/session_01FigQqUQbNu9ngE4a2CSNm8

Co-authored-by: taliesin-ai <lea.anthony@gmail.com>
Picks up the contribution terms (#5816), the release workflow hardening
(#5815), the runtime/CLI version lockstep (#5820) and the crash fixes merged
since the first sync. Clean merge, no conflicts.

The branch was six commits behind again within hours of the first sync, which
is why this is now an audit blocker rather than something to remember: a
release branch that quietly ages is how a release ships without fixes everyone
believes are in it.

Claude-Session: https://claude.ai/code/session_01FigQqUQbNu9ngE4a2CSNm8
@coderabbitai

coderabbitai Bot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (1)
  • master

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: b1514c50-edde-4800-a94b-0db5ee93c7b6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/sync-beta-2

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.

@github-actions github-actions Bot added Documentation Improvements or additions to documentation Windows v3-alpha labels Jul 26, 2026

@leaanthony leaanthony left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Six commits of drift in a few hours makes the point better than the first sync did. Clean merge, invariants checked, and the new audit blocker means the next one gets caught rather than noticed.

@leaanthony
leaanthony merged commit b3eeb60 into releases/v3-beta Jul 26, 2026
4 of 8 checks passed
@leaanthony
leaanthony deleted the chore/sync-beta-2 branch July 26, 2026 10:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Documentation Improvements or additions to documentation v3-alpha Windows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants