Skip to content

Release v0.64.9 - #4561

Merged
austinywang merged 1 commit into
mainfrom
release/v0.64.9
May 22, 2026
Merged

austinywang merged 1 commit into
mainfrom
release/v0.64.9

Conversation

@austinywang

@austinywang austinywang commented May 22, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Hotfix for the v0.64.8 memory leak (#4520) where non-Git workspaces grow RSS from ~450MB to 8GB within minutes and trigger the OOM killer.

Changes

Fixed

  • Stop unbounded Git repository search past filesystem root so non-Git workspaces no longer grow RSS from ~450MB to 8GB and trigger the OOM killer (#4557)
  • Restore the Browser Memory Saver default to on (discards hidden browser webview renderers after the discard delay) to mitigate the 0.64.8 memory regression (#4545)

Thanks @Luciferxie for the report on both.

Test plan

  • CI green
  • Smoke test launch on macOS
  • Confirm RSS no longer climbs in a non-Git workspace

View with Codesmith Autofix with Codesmith
Need help on this PR? Tag @codesmith with what you need. Autofix is disabled.


Note

Low Risk
Low risk release bookkeeping: updates version numbers and changelog/docs content only, with no functional code changes in this PR.

Overview
Publishes the 0.64.9 hotfix release notes, highlighting fixes for unbounded Git repo root search causing extreme RSS growth in non-Git workspaces and restoring the Browser Memory Saver default.

Bumps Xcode project build/marketing versions to 0.64.9 and adds corresponding 0.64.9 entry content for the docs changelog media.

Reviewed by Cursor Bugbot for commit 2498610. Bugbot is set up for automated code reviews on this repo. Configure here.


Summary by cubic

Hotfix to stop the v0.64.8 memory leak that caused RSS to spike in non‑Git workspaces. We now stop Git repo discovery at the filesystem root and turn Browser Memory Saver back on by default to prevent runaway memory and OOM.

Written for commit 2498610. Summary will update on new commits. Review in cubic

Summary by CodeRabbit

  • Bug Fixes
    • Fixed an issue where Git repository search operations could extend beyond the filesystem root, resulting in unbounded memory growth and potential out-of-memory errors.
    • Restored the Browser Memory Saver feature to enabled by default while keeping the keep-alive behavior available as an optional setting for users who prefer it.

Review Change Stack

@vercel

vercel Bot commented May 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cmux Building Building Preview, Comment May 22, 2026 6:56am
cmux-staging Building Building Preview, Comment May 22, 2026 6:56am

@coderabbitai

coderabbitai Bot commented May 22, 2026 •

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: ddce7f68-0d04-4a10-b857-8d42323dae49

📥 Commits

Reviewing files that changed from the base of the PR and between 8b1d44d and 2498610.

📒 Files selected for processing (3)
  • CHANGELOG.md
  • cmux.xcodeproj/project.pbxproj
  • web/app/[locale]/docs/changelog/changelog-media.ts

📝 Walkthrough

Walkthrough

Version 0.64.9 is released with two fixes: an unbounded Git repository search prevention to avoid memory growth, and restoring the default Browser Memory Saver setting. The version number is bumped consistently across all Xcode build configurations from 0.64.8 to 0.64.9, and release notes are published in both the main changelog and the web changelog media record.

Changes

Version 0.64.9 Release

Layer / File(s) Summary
Release notes for 0.64.9
CHANGELOG.md, web/app/[locale]/docs/changelog/changelog-media.ts
CHANGELOG.md adds a new 0.64.9 release entry with two fixed items (Git repository search bounds and Browser Memory Saver default). The web changelog media record is updated with a matching release title and two feature descriptions.
Xcode project version bumps
cmux.xcodeproj/project.pbxproj
All build configurations across four targets (cmux, cmuxUITests, CmuxDockTilePlugin, cmuxTests) update CURRENT_PROJECT_VERSION from 88 to 89 and MARKETING_VERSION from 0.64.8 to 0.64.9.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • manaflow-ai/cmux#4511: Both PRs update the same exported changelogMedia map by adding a new release entry.
  • manaflow-ai/cmux#4372: Both PRs update release plumbing by bumping Xcode versions and adding entries to the changelog media map.

Poem

🐰 A version bump, so clean and bright,
From 0.64.8 to nine takes flight,
The changelogs sing of fixes made,
Git searches tamed, memory trade,
All build configs dance in harmony! 🎉

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/v0.64.9

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


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.

@austinywang
austinywang merged commit 6e86b3b into main May 22, 2026
16 of 19 checks passed
@greptile-apps

greptile-apps Bot commented May 22, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This is a hotfix release bumping the version to 0.64.9. It adds changelog entries for two fixes — stopping the unbounded Git repository root walk that caused an OOM on non-Git workspaces, and restoring the Browser Memory Saver default — alongside the corresponding Xcode project version bumps.

  • cmux.xcodeproj/project.pbxproj: CURRENT_PROJECT_VERSION incremented to 89 and MARKETING_VERSION set to 0.64.9 across all eight build configurations (Debug/Release for main app, UI tests, unit tests, and dock-tile plug-in targets).
  • CHANGELOG.md: New [0.64.9] section documenting the two hotfixes and listing three contributors.
  • web/app/[locale]/docs/changelog/changelog-media.ts: New 0.64.9 entry with an English-only version title and two feature highlight blocks, following the same unlocalized pattern used by all prior entries in this file.

Confidence Score: 4/5

Safe to merge; all three files contain routine hotfix bookkeeping with no production logic changes.

The Xcode version bumps and CHANGELOG entry are mechanical and consistent. The new changelog-media entry adds English-only copy to a locale-aware page, continuing a pre-existing gap in the file — the actual fix code lives in separate PRs already merged.

web/app/[locale]/docs/changelog/changelog-media.ts — new feature description strings are not routed through next-intl, same as existing entries but worth tracking as the debt grows.

Important Files Changed

Filename Overview
CHANGELOG.md Adds v0.64.9 release entry with two hotfix items and contributor list; follows existing CHANGELOG format exactly.
cmux.xcodeproj/project.pbxproj Version bump across all eight build configurations: CURRENT_PROJECT_VERSION 88→89 and MARKETING_VERSION 0.64.8→0.64.9. Mechanically correct, all targets updated consistently.
web/app/[locale]/docs/changelog/changelog-media.ts Adds 0.64.9 entry with two feature highlights; strings are hardcoded English, same as all prior entries in this file, but the new text is rendered in the locale-aware changelog page without next-intl.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["Git Root Walk (v0.64.8)"] -->|"deletingLastPathComponent() loops past /"| B["Infinite loop: / → /.. → /.. …"]
    B --> C["RSS grows 450MB → 8GB"]
    C --> D["OOM Killer fires"]

    E["Git Root Walk (v0.64.9 fix)"] -->|"Stop at filesystem root"| F["Walk terminates normally"]
    F --> G["RSS stays bounded"]

    H["Browser Memory Saver (v0.64.8)"] -->|"keep-alive default ON"| I["Hidden webviews never discarded"]
    I --> J["Compounds RSS regression"]

    K["Browser Memory Saver (v0.64.9 fix)"] -->|"discard default restored"| L["Hidden renderers discarded after delay"]
    L --> M["Memory reclaimed"]
Loading

Reviews (1): Last reviewed commit: "Bump version to 0.64.9" | Re-trigger Greptile

Comment on lines +29 to +43
"0.64.9": {
title: "0.64.8 Memory Leak Hotfix",
features: [
{
title: "Fix 8GB RSS Growth on Non-Git Workspaces",
description:
"Git repository search now stops at filesystem root instead of walking forever into `/..`. On older Foundation builds, `deletingLastPathComponent()` could yield `/..` and keep climbing, allocating ever-longer parent paths until the OS OOM killer fired. Non-Git workspaces no longer grow RSS from ~450MB to 8GB within minutes on 0.64.8.",
},
{
title: "Restore Browser Memory Saver Default",
description:
"Hidden browser webview renderers discard by default again, reverting the 0.64.8 keep-alive default that exposed the memory regression. The keep-alive behavior remains available as an opt-in setting for workflows that need to preserve DOM state across workspace switches.",
},
],
},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 The three new English strings (title, feature title, and feature description) are rendered directly as JSX in the [locale]-prefixed changelog page (FeatureList and the version-heading div) without going through next-intl. The page serves 20 locales (en, ja, zh-CN, zh-TW, ko, de, es, fr, it, da, pl, ru, bs, ar, no, pt-BR, th, tr, km, uk per web/i18n/routing.ts), so non-English visitors see English copy. The full-i18n rule flags "changelog copy… not consumed from next-intl… and represented across all locales in web/messages/." All prior changelogMedia entries share this debt, but the PR introduces new instances of it.

Suggested change
"0.64.9": {
title: "0.64.8 Memory Leak Hotfix",
features: [
{
title: "Fix 8GB RSS Growth on Non-Git Workspaces",
description:
"Git repository search now stops at filesystem root instead of walking forever into `/..`. On older Foundation builds, `deletingLastPathComponent()` could yield `/..` and keep climbing, allocating ever-longer parent paths until the OS OOM killer fired. Non-Git workspaces no longer grow RSS from ~450MB to 8GB within minutes on 0.64.8.",
},
{
title: "Restore Browser Memory Saver Default",
description:
"Hidden browser webview renderers discard by default again, reverting the 0.64.8 keep-alive default that exposed the memory regression. The keep-alive behavior remains available as an opt-in setting for workflows that need to preserve DOM state across workspace switches.",
},
],
},
"0.64.9": {
// TODO: move title and feature strings into web/messages/{locale}.json
// and read them via useTranslations("docs.changelog.versions.0649")
// to localize across all 20 supported locales.
title: "0.64.8 Memory Leak Hotfix",
features: [
{
title: "Fix 8GB RSS Growth on Non-Git Workspaces",
description:
"Git repository search now stops at filesystem root instead of walking forever into `/..`. On older Foundation builds, `deletingLastPathComponent()` could yield `/..` and keep climbing, allocating ever-longer parent paths until the OS OOM killer fired. Non-Git workspaces no longer grow RSS from ~450MB to 8GB within minutes on 0.64.8.",
},
{
title: "Restore Browser Memory Saver Default",
description:
"Hidden browser webview renderers discard by default again, reverting the 0.64.8 keep-alive default that exposed the memory regression. The keep-alive behavior remains available as an opt-in setting for workflows that need to preserve DOM state across workspace switches.",
},
],
},

Rule Used: Flag production user-facing text that is not fully... (source)

This branch was successfully deployed

1 active deployment
Preview – cmux — 24986103 Deployed May 22, 2026 by vercel[bot]
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.

1 participant