Skip to content

CHANGELOG: curated Unreleased entries for the next classic release - #22106

Merged
teamleaderleo merged 3 commits into
mainfrom
claude/classic-changelog-unreleased
Oct 21, 2026
Merged

teamleaderleo merged 3 commits into
mainfrom
claude/classic-changelog-unreleased

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Adds a curated ## Unreleased section to CHANGELOG.md for the next classic release: 5 Added, 3 Changed and 38 Fixed lines covering v0.65.2..2e75a0089b4.

Why a CHANGELOG edit and not PR bodies: /release builds entries from each PR's ## Changelog line, but 83 of the 135 PRs in that range had no line or a broken one. Rewriting 60 merged PR bodies, many of them teammates' public PRs, was refused. /release already folds leftover ## Unreleased entries into the new version section (cmux-release skill), so this is the supported way to hand it curated lines.

Notes for whoever runs /release:

The source is the classic patch-notes draft on cmuxterm-hq#2513, rewritten into the Added/Changed/Fixed format.

Changelog

none

Testing

Docs-only. I read web/app/lib/changelog.ts's parseChangelog: it ignores lines before the first version heading, so the docs page is unchanged.

Agent session: cosmic-gray

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Adds a curated ## Unreleased section to CHANGELOG.md for the next classic release, covering v0.65.2..2e75a0089b4 with 6 Added, 3 Changed, and 38 Fixed entries.

This works around a gap in /release: it builds changelog entries from each PR's Changelog line, but 83 of the 135 PRs in range had none or a broken one, and rewriting teammates' PR bodies was refused. /release folds leftover ## Unreleased entries into the new version section, so this is the supported way to hand it curated lines.

Rollout notes

  • Dedupe: these entries already cover their PRs, so drop any line /release generates for a linked PR.
  • PRs merged to main after 2e75a0089b4 still come from their own Changelog lines.
  • CI, staging dogfood, merge tooling, iOS-only, and staff-only changes were intentionally left out.
  • Docs-only change; the changelog page doesn't render this section until the release folds it in.

Written for commit b878321. Summary will update on new commits.

View guided diff Turn on auto-fix

Summary by CodeRabbit

  • New Features
    • Workspaces can be merged, with more workspace color intensity options.
    • SSH sessions support permitted clipboard writes, and custom sidebars provide emoji access.
    • Browser controls now include geolocation and offline settings.
    • Integration resume details appear before approval.
  • Improvements
    • Updated Cloud error guidance.
  • Bug Fixes
    • Fixed issues affecting Cloud machines, terminals, agents, browser automation, SSH and tmux, display handling, shortcuts, and packaging.
  • Documentation
    • Improved CLI reference accuracy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Oct 19, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@greptile-apps

greptile-apps Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 2/5

[Low impact] The change reaches the release-notes workflow, not app behavior.

The PR should not merge while the previously reported English text still reaches localized docs search.

Findings

  1. P0 English notes reach localized search ▶

Summary

Adds 47 curated entries under Unreleased in CHANGELOG.md for the next classic release.

  • The next release’s notes sit in a new Unreleased section.

Reviews (2) · Last reviewed commit: "Merge main into claude/classic-changelog..." · Reviewed by Greptile

Comment thread CHANGELOG.md
Comment on lines +8 to +12
- Merge Workspace Into moves every tab from one workspace into another, from the sidebar or the Workspace menu ([#19735](https://github.com/manaflow-ai/cmux/pull/19735))
- A slider in Settings > Workspace Colors sets how strongly a color fills rows that aren't selected ([#21377](https://github.com/manaflow-ai/cmux/pull/21377)) -- thanks @mmartinovich for the report!
- An SSH machine can write to your clipboard over OSC 52 once you allow it, and cmux remembers the choice ([#18442](https://github.com/manaflow-ai/cmux/pull/18442)) -- thanks @simjak for the report!
- Review Approval… shows an integration's resume command and environment before you approve it ([#21367](https://github.com/manaflow-ai/cmux/pull/21367)) -- thanks @raal1600 for the report!
- `cmux browser geolocation` and `cmux browser offline` work in browser panes ([#21039](https://github.com/manaflow-ai/cmux/pull/21039))

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.

P0 English notes reach localized search

The new English entries appear in localized docs search even though the changelog page skips Unreleased. changelogSearchText() reads the entire file and adds the same text to every locale’s search index. Search results then display matching English excerpts to non-English users.

This violates the requirement to fully localize new user-facing changelog copy. Exclude Unreleased from search until publication, or provide translated search content for every supported locale.

Rule Used: Flag production user-facing text that is not fully internationalized across every locale supported by the affected surface: Swift UI/menu/alert/tooltip/error/command text must use String(localized:defaultValue:) or an equivalent localized API with a ... (source)

@coderabbitai

coderabbitai Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: fe3253b8-d513-4a30-bbf2-8684199297b1
📥 Commits

Reviewing files that changed from the base of the PR and between e8eeac6 and b878321.

📒 Files selected for processing: 1
  • CHANGELOG.md

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 6 remain after this review.

📝 Walkthrough

The Unreleased changelog adds entries for new capabilities, updated guidance, and fixes across workspace, Cloud, terminal, browser, agent, SSH, and packaging areas.

Changes: Unreleased changelog

Layer / File(s) Summary
Unreleased entries
CHANGELOG.md
The Added section lists new workspace, SSH, integration, browser, and sidebar capabilities. The Changed section records Cloud guidance and CLI reference updates. The Fixed section lists corrections across Cloud machines, terminals, agents, browser automation, SSH, display handling, shortcuts, worktrees, sockets, and DMG packaging.

Priority: ➖ Normal

Estimated code review effort: 1 (Trivial) | ~4 minutes

Change: Other

Suggested reviewers: austinywang

Merge Risk: ⚪ Minimal · up to b8783

This is a changelog-only update with no runtime impact. The Unreleased entries are not rendered on the changelog page, so it is ready to merge.

Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

Failed Failed checks: 1 error

Check name Status Explanation Resolution
Cmux Full Internationalization Error The PR adds user-facing changelog copy directly to root CHANGELOG.md; this is the only changed file. The rule requires changelog copy to come from a locale-specific source and to be represented for … Move the new changelog entries into the locale-specific message/source system used by the changelog, update matching entries for all 20 locales in web/i18n/routing.ts, and make the changelog renderer consume those localized entries. Do no…
Passed Passed checks: 24 passed
Check name Status Explanation
Title check Passed The title clearly identifies the primary change: curated Unreleased changelog entries for the next classic release.
Description check Passed The description provides a detailed summary and explains the release workflow and testing scope. It omits the Proof and Checklist sections, and the Changelog section says "none" even though this PR ch…
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Cmux Cloud Persistent Session And Early Input Passed PASS. The reviewed range changes only CHANGELOG.md (+54 lines). It does not change Cloud terminal creation, transport, PTY readiness, input routing, authentication, idempotency, revision, or lease b…
Cmux Swift Actor Isolation Passed The pull-request diff changes only CHANGELOG.md (+54 lines). It introduces no Swift files or production Swift code, so it cannot introduce or worsen Swift 6 actor isolation mistakes.
Cmux Swift Blocking Runtime Passed PASS: The reviewed diff changes only CHANGELOG.md (+54 lines). It introduces no production Swift changes and no semaphores, waits, sleeps, delayed dispatch, polling, main-queue synchronization, or m…
Cmux Browser Automation Off-Main Passed PASS: The reviewed range changes only CHANGELOG.md (+54 lines). It introduces no browser.* socket command, routing change, WebKit/AppKit access, browser state mutation, or policy-test gap. The off…
Cmux Expensive Synchronous Load Passed The reviewed range changes only CHANGELOG.md (+54 lines). It adds no Swift code, agent-history loads, or interactive-path behavior. The custom failure condition for production Swift changes does not…
Cmux Cache Substitution Correctness Passed The pull request changes only CHANGELOG.md (+54 lines). It introduces no production Swift, TypeScript, or JavaScript code and no persistence, history, undo, or snapshot implementation changes. The c…
Cmux No Hacky Sleeps Passed PASS: The pull request changes only CHANGELOG.md. The diff adds Markdown release notes and introduces no TypeScript, JavaScript, shell, or build/runtime code. It therefore introduces no fixed sleep,…
Cmux Algorithmic Complexity Passed The pull request changes only CHANGELOG.md, adding 54 lines of Markdown. It does not change Swift, TypeScript, JavaScript, shell, runtime code, or collection-processing logic. Therefore, it introduc…
Cmux Swift Concurrency Passed The reviewed diff changes only CHANGELOG.md (+54 lines). It introduces no cmux-owned Swift code and no legacy Swift concurrency patterns. The custom check is therefore not applicable.
Cmux Swift @Concurrent Passed The pull request changes only CHANGELOG.md (+54 lines). It contains no Swift files or Swift code, so the @concurrent annotation rules do not apply.
Cmux Swift Package Boundaries Passed PASS: The reviewed diff changes only CHANGELOG.md (+54 lines). It contains no Swift files or production Swift code, so the Swift package boundary rule does not apply.
Cmux Swiftpm Lockfiles Passed PASS: The pull request changes only CHANGELOG.md. It does not change SwiftPM packages, Package.resolved files, Xcode project package references, .gitignore, workflows, or dependencies. Therefore…
Cmux Swift Logging Passed The pull request changes only CHANGELOG.md (+54 lines). It adds no Swift or app/runtime logging, so none of the specified Swift logging failure conditions apply.
Cmux User-Facing Error Privacy Passed PASS. The PR changes only CHANGELOG.md. Its only error-related entry says “Cloud errors say what failed and what to try next,” using the allowed generic term “Cloud” and exposing no provider, raw er…
Cmux Swiftui State Layout Passed The pull request changes only CHANGELOG.md. The diff contains no SwiftUI, Swift, AppKit, or Xcode source changes. Therefore, the SwiftUI state-layout failure conditions do not apply.
Cmux Architecture Rethink Passed The pull request changes only CHANGELOG.md (+54 lines). It introduces no Swift code or architecture changes, so the Swift architectural failure conditions do not apply.
Cmux Swift Auxiliary Window Close Shortcuts Passed PASS. The reviewed diff changes only CHANGELOG.md (+54 lines). It introduces no Swift files or standalone cmux-owned windows, so the auxiliary-window close-shortcut rule does not apply.
Cmux Source Artifacts Passed PASS: The pull request changes only CHANGELOG.md. The diff adds a hand-written ## Unreleased documentation section with curated release notes. It does not add logs, screenshots, recordings, caches…
Cmux No Test Or Debug Seam In Production Source Passed The reviewed range changes only CHANGELOG.md (+54 lines). It contains no Swift files, no production Sources/ paths, and no test/debug seam or visibility change. The custom check is therefore not a…
Full details: Description check

Explanation

The description provides a detailed summary and explains the release workflow and testing scope. It omits the Proof and Checklist sections, and the Changelog section says "none" even though this PR changes release notes, but the description is otherwise sufficiently complete.

Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

Full details: Cmux Cloud Persistent Session And Early Input

Explanation

PASS. The reviewed range changes only CHANGELOG.md (+54 lines). It does not change Cloud terminal creation, transport, PTY readiness, input routing, authentication, idempotency, revision, or lease behavior. The Cloud-related text is documentation only, so the stated failure conditions are not introduced.

Full details: Cmux Swift Blocking Runtime

Explanation

PASS: The reviewed diff changes only CHANGELOG.md (+54 lines). It introduces no production Swift changes and no semaphores, waits, sleeps, delayed dispatch, polling, main-queue synchronization, or manual locks.

Full details: Cmux Browser Automation Off-Main

Explanation

PASS: The reviewed range changes only CHANGELOG.md (+54 lines). It introduces no browser.* socket command, routing change, WebKit/AppKit access, browser state mutation, or policy-test gap. The off-main browser automation rule is therefore not applicable, and existing debt is not worsened.

Full details: Cmux Expensive Synchronous Load

Explanation

The reviewed range changes only CHANGELOG.md (+54 lines). It adds no Swift code, agent-history loads, or interactive-path behavior. The custom failure condition for production Swift changes does not apply.

Full details: Cmux Cache Substitution Correctness

Explanation

The pull request changes only CHANGELOG.md (+54 lines). It introduces no production Swift, TypeScript, or JavaScript code and no persistence, history, undo, or snapshot implementation changes. The cache-substitution condition does not apply.

Full details: Cmux No Hacky Sleeps

Explanation

PASS: The pull request changes only CHANGELOG.md. The diff adds Markdown release notes and introduces no TypeScript, JavaScript, shell, or build/runtime code. It therefore introduces no fixed sleep, timer, polling loop, or wall-clock wait covered by the rule.

Full details: Cmux Algorithmic Complexity

Explanation

The pull request changes only CHANGELOG.md, adding 54 lines of Markdown. It does not change Swift, TypeScript, JavaScript, shell, runtime code, or collection-processing logic. Therefore, it introduces no algorithmic-complexity violation.

Full details: Cmux Swiftpm Lockfiles

Explanation

PASS: The pull request changes only CHANGELOG.md. It does not change SwiftPM packages, Package.resolved files, Xcode project package references, .gitignore, workflows, or dependencies. Therefore no SwiftPM lockfile rule applies.

Full details: Cmux User-Facing Error Privacy

Explanation

PASS. The PR changes only CHANGELOG.md. Its only error-related entry says “Cloud errors say what failed and what to try next,” using the allowed generic term “Cloud” and exposing no provider, raw error, credential, token, id, or payload. The other matching text is release-note feature or fix summaries, not user-facing error or recovery copy. The docs parser also skips the new ## Unreleased section until a version heading exists.

Full details: Cmux Source Artifacts

Explanation

PASS: The pull request changes only CHANGELOG.md. The diff adds a hand-written ## Unreleased documentation section with curated release notes. It does not add logs, screenshots, recordings, caches, build output, temporary directories, dependency checkouts, or other source-control artifacts.

Full details: Cmux No Test Or Debug Seam In Production Source

Explanation

The reviewed range changes only CHANGELOG.md (+54 lines). It contains no Swift files, no production Sources/ paths, and no test/debug seam or visibility change. The custom check is therefore not applicable.

Full details: Cmux Full Internationalization

Explanation

The PR adds user-facing changelog copy directly to root CHANGELOG.md; this is the only changed file. The rule requires changelog copy to come from a locale-specific source and to be represented for every locale. The web changelog reads raw CHANGELOG.md through web/app/lib/changelog-store.ts and renders it for all localized routes, while web/i18n/routing.ts lists 20 locales and no web/messages/ file changed. This confirms the standing failure remains.

Resolution

Move the new changelog entries into the locale-specific message/source system used by the changelog, update matching entries for all 20 locales in web/i18n/routing.ts, and make the changelog renderer consume those localized entries. Do not leave the new user-facing copy only in root CHANGELOG.md.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Orphaned: no activity for 14 h, and no lane holds a lease on it. Adopted by the orphan sweep: merged main in at e8eeac6. A later pass queues it for the merge hub if it is reviewed, small and red only on base reds.

@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Not yours: compile error in CLI/CMUXCLI+CommandSuggestions.swift:53 function produces expected type 'Set<String>'; did you mean to call it with '()'... also fails on main (#21127); merge main once it is fixed there.

CI failed on b8783213a9 (run 39574159315 attempt 1): 1 code.

Job Verdict Why
macos / macOS compile admission code a compile error

Failures:

  • also red on main compile error in CLI/CMUXCLI+CommandSuggestions.swift:53 function produces expected type 'Set<String>'; did you mean to call it with '()'... (job)
Matched log lines
macos / macOS compile admission: /tmp/cmux-ci/src/CLI/CMUXCLI+CommandSuggestions.swift:53:52: error: function produces expected type 'Set<String>'; did you mean to call it with '()'?

Not re-run automatically: macos / macOS compile admission is not a machine failure.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

CI fast guards failed on b8783213a9 (https://github.com/manaflow-ai/cmux/actions/runs/39574159315). It does not block the merge; a red guard merged into main breaks it for every open PR.
The log named no failed step; see the run.

Agents: python3 scripts/ci/guard_attribution.py fix applies the mechanical fixes locally.

Merge receipt for b8783213a9, merged 2026-10-21 09:26:34 UTC

  • Not verified at merge: ci-status (failure), macOS compile admission (failure), macOS status (failure)
  • Verified: backend migrations applied, CI fast guards, CI timing, Fast static checks, GhosttyKit release check, guards (19), linux-preflight, macOS admission gate, merge freeze, plan, Web status, Web tests (1/4), and 6 more
  • Skipped by policy: app-host unit tests, admission-placement, agent-session-web-resources, apply-production, apply-staging, browser, Claude wrapper regressions, CLI product tests, CLI regressions (${{ matrix.shard }}/3), close lapsed freezes, diff-sidecar-check, Dogfood build #​${{ github.event.pull_request.number }}, and 15 more
  • Full suite: runs on main after merge.

Labeled merged-unverified: if main breaks near this merge, look here first.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by orphan-sweep on cosmic-gray · session

@teamleaderleo teamleaderleo added the risk:low Risk tier (docs/ci/risk-tiers.md) label Oct 21, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (independent subagent): BLOCK at e8eeac6

Placement, range and style are fine. Two entries are wrong and need fixing before merge. Both are one-line edits.

Blocking

  1. A finished background subagent stops showing as running (#20346) says the opposite of what the PR fixed. Before Keep Claude background subagents running after parent stop #20346, a Claude parent Stop marked every child as ended (AgentChatSessionRegistry+ChildRuns.swift), so a background subagent that was still running showed as finished as soon as the parent turn ended. After the fix, Claude children stay running until their own SubagentStop. Suggested line: A Claude background subagent keeps showing as running after the parent turn ends, until it finishes ([#20346](https://github.com/manaflow-ai/cmux/pull/20346))
  2. A verified cmux company email puts you on the Team plan with no machine limit (#21276) only applies to staff. companyPlan.ts gates it on isAdminUser, which means a verified cmux.com, manaflow.ai or manaflow.com email ("cmux staff accounts are on the Team plan by default"). No user outside the company can get it, so it should not be in the public changelog. Suggested fix: drop the line.

What I checked

Non-blocking

  • The CLI reference matches this build (#20817): the PR only touched docs/ and agent skill references, not the app. It is fine to keep, but it is borderline as a user-facing change.
  • A slow terminal download resumes instead of starting over (#16305): this is the Cloud cmux-tui client download. "The Cloud terminal client download resumes instead of starting over" would be clearer.
  • The app inside the DMG is notarized on its own (#21217): "stapled" or "carries its own notarization ticket" is more accurate, since the app was already notarized.
  • web/tools/build-docs-search.mjs indexes every CHANGELOG line, so these entries will show up in nightly docs search before the release. This is expected and harmless.

#20346 kept a still-running Claude background subagent showing as running
after the parent turn ended; the old line said the opposite. #21276's Team
plan applies only to verified cmux staff emails, so it is not a user-facing
change. Also: #16305 is the Cloud terminal client download, and #21217
staples the app inside the DMG.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15cfc-663f-7650-b9f7-64d198c6b88b&host=cosmic-gray
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (independent subagent): SHIP at b878321

I re-checked the diff from e8eeac6 to b878321. Both blocking problems are fixed: the staff-only #21276 line is gone, and the #20346 line now matches what the PR did (Claude background subagents stay running until their own SubagentStop). The #16305 and #21217 wording is clearer and correct. The PR still only changes CHANGELOG.md, and all the checks from my earlier review still hold.

@teamleaderleo
teamleaderleo merged commit e884851 into main Oct 21, 2026
@teamleaderleo
teamleaderleo deleted the claude/classic-changelog-unreleased branch October 21, 2026 09:26
@github-actions github-actions Bot added the merged-unverified A judging check was not green at merge; see the merge receipt comment label Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-unverified A judging check was not green at merge; see the merge receipt comment risk:low Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant