Skip to content

Release v1.20.0 - #24

Merged
lawrencecchen merged 1 commit into
mainfrom
release/v1.20.0
Feb 9, 2026
Merged

lawrencecchen merged 1 commit into
mainfrom
release/v1.20.0

Conversation

@lawrencecchen

Copy link
Copy Markdown
Contributor

Summary

  • Fix blank window on macOS 26 when background glass effect is enabled
  • Fix update status pill not appearing in toolbar (removed #if DEBUG guards, fixed constraint feedback loop)
  • Fix update errors appearing instantly without showing checking spinner first
  • Fix "Copy Update Logs" showing empty logs
  • Clearer error when app needs to be moved to Applications before updating
  • DMG installer now shows drag-to-install window with Applications shortcut

Test plan

  • Verify update pill appears when checking for updates
  • Verify update pill shows error state correctly
  • Verify blank window fix on macOS 26
  • Verify DMG layout looks correct

@vercel

vercel Bot commented Feb 9, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
cmuxterm-docs Ready Ready Preview, Comment Feb 9, 2026 4:35am

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f3e006bd3a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 126 to 141
if itemIdentifier == updateItemIdentifier, let updateViewModel {
let item = NSToolbarItem(itemIdentifier: itemIdentifier)
let view = NonDraggableHostingView(rootView: UpdatePill(model: updateViewModel))
let hostingView = NonDraggableHostingView(rootView: UpdatePill(model: updateViewModel))
let key = ObjectIdentifier(toolbar)
item.view = view
let visible = !updateViewModel.effectiveState.isIdle
sizeToolbarItem(for: key, hostingView: view, visible: visible)
updateSizeCancellables[key]?.cancel()
updateSizeCancellables[key] = updateViewModel.$state
item.view = hostingView
updateHostingViews[key] = hostingView

// Observe state changes to nudge the toolbar into re-laying-out
// the item when the pill's intrinsic content size changes.
updateCancellables[key]?.cancel()
updateCancellables[key] = updateViewModel.$state
.receive(on: DispatchQueue.main)
.sink { [weak self, weak view] newState in
// @Published fires on willSet, so SwiftUI hasn't processed the
// new state yet. Defer measurement to the next run loop cycle.
DispatchQueue.main.async { [weak self, weak view] in
guard let self, let view else { return }
self.sizeToolbarItem(for: key, hostingView: view, visible: !newState.isIdle)
.sink { [weak hostingView] _ in
DispatchQueue.main.async { [weak hostingView] in
hostingView?.invalidateIntrinsicContentSize()
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Collapse the update pill when idle to avoid a blank gap

With the new toolbar item setup, the hosting view is never hidden or constrained to zero size; it only invalidates its intrinsic size on state changes. UpdatePill itself just sets .opacity(visible ? 1 : 0) when effectiveState is .idle (see Sources/Update/UpdatePill.swift), so the view remains fully sized even when invisible. This means the toolbar will now reserve a permanent empty gap whenever updates are idle. Previously this was avoided by sizing the item to .zero when idle; without an equivalent collapse, users will see the blank space in the toolbar during normal operation.

Useful? React with 👍 / 👎.

@lawrencecchen
lawrencecchen merged commit 87e5ac0 into main Feb 9, 2026
3 of 5 checks passed
@lawrencecchen
lawrencecchen deleted the release/v1.20.0 branch February 9, 2026 04:44
bn-l pushed a commit to bn-l/cmux that referenced this pull request Apr 3, 2026
rustybret pushed a commit to rustybret/bmux that referenced this pull request Oct 10, 2026
rustybret pushed a commit to rustybret/bmux that referenced this pull request Oct 10, 2026
e63ec95 fix(build): drop the app import from the remote tmux CLI test (manaflow-ai#18945)
edfc09c Merge pull request manaflow-ai#18950 from manaflow-ai/codex/revert-coderouter-handoff
608722c Revert "Merge pull request manaflow-ai#10194 from manaflow-ai/task/coderouter-native-handoff"
5cca480 Merge pull request manaflow-ai#10194 from manaflow-ai/task/coderouter-native-handoff
c867c77 fix: preserve CodeRouter peer context through async loop
7bb42ac Merge origin/main into CodeRouter handoff
16ae2a6 feat: open CodeRouter guide as a pane
5f98c98 feat: open CodeRouter guide as a pane
c7dd9ea feat: add CodeRouter help guide
1f026c7 CodeRouter handoff: meet current CI and package conventions
e231560 Merge remote-tracking branch 'origin/main' into native-handoff-merge
0f273d5 Merge main into the CodeRouter native handoff
f60f20e Merge main and preserve CodeRouter and Cloud diagnostic strings
b193fb8 Merge current main and preserve CodeRouter handoff transport
cf6a2a4 Merge main into CodeRouter native handoff
39f48e8 Move CodeRouter launch contract into shared package
e6f9d38 Fix CodeRouter release and naked alias contracts
b0ce78a Harden CodeRouter dogfood and OAuth callbacks
94e0a6d Make CodeRouter probe timeout test deterministic
d06b73d Fix CodeRouter Linux clippy gate
db4a2ec Fix CodeRouter workflow runner policy
7edbfcd Merge remote-tracking branch 'origin/main' into task/coderouter-native-handoff
4131be6 Publish CodeRouter source and release workflows
a9f05c7 Add 'coderouter/' from commit '6f63614e36ddf91b457eb3c25d8430a7875c750d'
6f63614 Fix interactive login terminal lifecycle
09b1462 Add secure native CodeRouter handoff
130ff4e Add secure CodeRouter handoff v2
cebaf60 Fix CodeRouter release test coverage
757897c Harden handoff descriptor and origin trust
c98aac3 Set coordinated handoff exchange timeout
6a7b9ba Harden handoff expiry and credential isolation
da6f3b2 Require EOF for handoff frames
46d7273 Tighten handoff child environment
311d27a Disable redirects during handoff exchange
f4dde33 Reject closed-pipe handoff trailing bytes
672f5b0 Add hosted CodeRouter handoff client
e3b205d Harden CodeRouter handoff authorization boundaries
2bb80ab Add native CodeRouter handoff from cmux
6da3e94 Add credential-free capabilities contract (manaflow-ai#50)
4910fde Use coderouter in CLI help and errors (manaflow-ai#49)
169be31 Add privacy-safe CodeRouter CLI analytics (manaflow-ai#48)
64da26c Add durable CodeRouter organization switching (manaflow-ai#46)
3dae4f0 Align public package provenance metadata (manaflow-ai#44)
2799924 Fix stable clippy and cut 0.2.1 (manaflow-ai#42)
d0e1915 Prepare verified public CLI distribution (manaflow-ai#41)
e15c881 Record live annual Pro and Team validation (manaflow-ai#39)
efe2d10 Snapshot CLI fault guidance matrix (manaflow-ai#34)
e9a1bc0 Harden coderouter retries and diagnostics (manaflow-ai#32)
fd00e47 Support self-hosted servers and TUI cancellation (manaflow-ai#24)
ea6b259 Use Codex-compatible Pi serialization safely (manaflow-ai#22)
7d0aa73 Force cr opencode through routed models (manaflow-ai#21)
c4748bc Fix Pi model discovery and cache wording (manaflow-ai#20)
f75d9e7 Complete coderouter private beta CLI and runbooks (manaflow-ai#19)
ada2d5a Use the coderouter tagline consistently (manaflow-ai#14)
931a79b Use route tokens for fast lowercase coderouter status (manaflow-ai#13)
a589857 Show progress throughout remote operations (manaflow-ai#12)
0c60e61 Show delayed status spinner and Spark usage (manaflow-ai#11)
47d0755 Render CodeRouter status like Subrouter (manaflow-ai#10)
ad75b92 Use the official Codex OAuth callback ports (manaflow-ai#9)
197345c Match Codex OAuth percent encoding exactly (manaflow-ai#8)
bc1c8e8 Match the official Codex OAuth request (manaflow-ai#7)
e782840 Add an interactive enter-code login flow (manaflow-ai#6)
19a479a Keep timing diagnostics out of CodeRouter output (manaflow-ai#5)
9e73f49 Use Ratatui and route directly through Vercel (manaflow-ai#4)
e386396 Isolate CodeRouter auth and agent state (manaflow-ai#3)
828751b Make bare CodeRouter show quota usage (manaflow-ai#2)
70c631c Focus CodeRouter on hosted Codex subscriptions (manaflow-ai#1)

This branch was successfully deployed

1 active deployment
Preview — f3e006bd Deployed Feb 9, 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