Skip to content

Tags: Zingzy/cmux

Tags

nightly

Toggle nightly's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Lawrence Sidebar: down-then-up highlight, optimistic-paint reconcile,…

… diagnosis probes (manaflow-ai#8461)

* Round 3 colleague dogfood fixes: PR status truncation, nesting indent, multi-select flush, reorder moves, override-release notes, selected-row status color

- PR rows rendered 'PR manaflow-ai#4  o…' with ample space: intrinsicContentSize on
  a truncating single-line NSTextField caps at the CURRENT frame width,
  so a pooled label laid out narrow once reports the truncated width
  forever. New sidebarNaturalCellSize measures through the cell
  unconstrained; applied to PR status/title, remote status, group badge
  pill, and progress label.
- Nesting was invisible: legacy applies the group-member indent outside
  the row so the selection/hover background shifts with the content; the
  AppKit cell now indents its background the same way.
- 'Click A, cmd-click B' extended the pre-A selection: the modifier
  branch dropped a plain click still inside the coalescing window.
  SidebarSelectionCoalescer.flushNow() applies it first (tests added).
- Drag-reorder janked: a pure reorder went through reloadData, tearing
  down every visible cell and snapping scroll. Same-id-set order changes
  now apply as in-place moveRow updates.
- Row clipping class: releasing pumpHeightOverrides never re-noted the
  rows, leaving the table on the override height while the cache served
  the measured one; both clear sites now note released rows. Height-
  drift DEBUG probe added (rect(ofRow:) minus intercellSpacing).
- Agent-status line was blue-on-blue when selected: explicit entry
  colors now yield to the selected foreground (legacy parity).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Reconcile stranded selection previews; dim cmd-click preview; regenerate webviews bundle

Two interaction bugs from Aziz's videos:
- Reorder/selection interference: optimistic previews are only reconciled
  by an authoritative apply, and some presses never produce one (a drag
  dropped where it started, a press swallowed by the drag threshold, an
  unchanged selection). The stranded peel left the sidebar with NO
  visible selection. previewSelection now arms a 400ms clock-injected
  bailout that restores stored-model paint unless an apply lands first;
  apply() and drag-begin cancel it.
- cmd-click flash: the modifier preview painted the full bright active
  treatment and settled to the dim multi-select tint. It now previews
  the dim tint directly (showOptimisticMultiSelection).

Heal main: manaflow-ai#8393 changed
webviews/ sources without regenerating the checked-in bundle, failing
react-apps-check on every gate. Regenerated with
./scripts/build-webviews-app.sh.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Address review: bound the reorder move planner, multiset id equality

CodeRabbit: the move loop's firstIndex/remove/insert rescans trend
quadratic on bulk permutations; a positional-mismatch threshold (32)
keeps user drags on the animated move path (one contiguous span, O(n))
and routes bulk permutations to reloadData, which they gained nothing
from animating anyway.

Greptile: Set equality collapsed duplicate ids, so corrupt state with
two rows sharing an id could misclassify as a pure reorder; replaced
with counting multiset equality.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Reconcile optimistic paint on every apply; read modifiers from the clicking event

Found while adversarially driving the sidebar for the verification
video: synthetic cmd-clicks carry the command flag on the EVENT while
the hardware state stays plain, and the resulting preview/authoritative
divergence exposed a class hole — apply() cancels the preview bailout
on arrival but only reconfigures rows whose model changed, so a preview
painted on a row whose authoritative state ends up unchanged kept its
speculative paint forever (dim multi-select tints lingering through any
number of plain clicks). apply() now force-reconciles every
optimistically painted row id.

Also didClickTableRow read the global NSEvent.modifierFlags (hardware
state) instead of the clicking event's flags; NSApp.currentEvent is the
action's triggering event, matching what previewSelection already saw.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Down-then-up selection highlight; reflow + drop-resolution probes

Owner ruling: the row highlight applies on down-then-up, not on press.
The optimistic paint moves from mouseDown to the table action (which
fires on mouse-up), so a press that becomes a drag or a cancelled click
never shows a speculative highlight — removing the last source of
preview/authoritative divergence at the gesture level.

DEBUG probes for the two open dogfood reports: sidebar.viewport +
sidebar.liveReflow trace every width tick through the live re-measure
(continuous-reflow regression), and sidebar.drop.perform records where
each drop landed, target count, and the planner verdict (silent
reorder no-ops).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Respect the inline-rename field editor in tab-selection focus reassert

Double-click rename died on every attempt: click 1's async workspace
selection completes ~240ms later and converges AppKit focus through
moveFocus, which gates only on the right-sidebar coordinator and then
calls makeFirstResponder directly — stealing the field editor the
rename took at doubleAction time (probes: beginInlineRename tookFocus=1
followed by ensureFocus intent=terminal from ws.select.asyncDone, typed
text landing in the terminal). moveFocus gains an opt-in
respectForeignFirstResponder that applies the same policy check
ensureFocus and applyFirstResponderIfNeeded already use; the
tab-selection reassert opts in. Explicit focus-the-terminal callers
(find escape, tmux mirror) keep stealing deliberately.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Heal main Sendable warning; make reorder helpers private

Sources/Mobile/MobileHostIrohApplicationLaneRouter.swift landed on main
with 'Date.init' defaulting a @sendable () -> Date parameter — the
initializer reference resolves as a non-Sendable function value and
trips the Swift 6 data-race warning, failing the zero-bucket warning
budget on every gate. A closure literal is Sendable.

Also Greptile P2 on manaflow-ai#8461:
multisetEqual/maxAnimatedReorderMoves have no external callers, now
private.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: cmux reload-cloud <cmux-reload-cloud@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

v0.64.20

Toggle v0.64.20's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Bump version to 0.64.20 (manaflow-ai#8473)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

cmux-tui-v0.9.2

Toggle cmux-tui-v0.9.2's commit message
cmux TUI 0.9.2

cmux-tui-v0.9.1

Toggle cmux-tui-v0.9.1's commit message
cmux TUI 0.9.1

v0.64.19

Toggle v0.64.19's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Bump version to 0.64.19 (manaflow-ai#8078)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

v0.64.18

Toggle v0.64.18's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Bump version to 0.64.18 (manaflow-ai#8053)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

mux-sdk-v0.1.2

Toggle mux-sdk-v0.1.2's commit message

Verified

This tag was signed with the committer’s verified signature.
lawrencecchen Lawrence Chen
cmux SDKs v0.1.2 (unified across npm + PyPI)

mux-sdk-v0.1.1

Toggle mux-sdk-v0.1.1's commit message

Verified

This tag was signed with the committer’s verified signature.
lawrencecchen Lawrence Chen
cmux SDKs v0.1.1 (first real publish)

cmux-tui-v0.9.0

Toggle cmux-tui-v0.9.0's commit message

Verified

This tag was signed with the committer’s verified signature.
lawrencecchen Lawrence Chen
cmux TUI 0.9.0: first npx cmux / uvx cmux release

v0.64.17

Toggle v0.64.17's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Bump version to 0.64.17 (manaflow-ai#6682)

Changelog for 0.64.17: remote tmux -CC mirroring (beta), global font
magnification, right-sidebar custom tabs, browser audio indicator + hard
refresh, diff viewer branch-base picker, plus a large batch of stability,
sidebar, session-restore, and performance fixes. Credits 12 contributors.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>