Repository navigation
Release v1.20.0 - #24
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
💡 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".
| 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() | ||
| } |
There was a problem hiding this comment.
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 👍 / 👎.
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)
Summary
Test plan