Skip to content

remote-tmux: tint remote workspace sidebar rows by host (origin colors, beta) - #7193

Open
ejc3 wants to merge 33 commits into
manaflow-ai:mainfrom
ejc3:remote-tmux-origin-colors
Open

ejc3 wants to merge 33 commits into
manaflow-ai:mainfrom
ejc3:remote-tmux-origin-colors

Conversation

@ejc3

@ejc3 ejc3 commented Jul 2, 2026 •

Copy link
Copy Markdown
Contributor

What this adds

Per-host origin colors for remote workspaces: tint each remote/mirror workspace's sidebar row with a stable color derived from its host, so sessions from different hosts are easy to tell apart at a glance and a given host shows the same color in every window. A user's manually chosen workspace color always wins. Off by default behind remoteTmux.originColors.beta.

A second beta setting, remoteTmux.originHostTitles.beta, covers the case color alone does not: sidebar workspaces that share a title but come from different places. Each remote one shows its host after the title, without the domain the hosts have in common. Also off by default.

How it works

  • RemoteHostColorRegistry assigns each destination a palette slot: a stable FNV-1a hash of the host name picks a start index, then linear-probes to the next free slot on collision, and caches the assignment. The stable hash (not Swift's per-process Hasher) keeps a lone host's color steady across launches. The registry is owned by RemoteTmuxController (itself owned by AppDelegate at the app seam) and reached through it — no ambient singleton.
  • Snapshot plumbing: the sidebar snapshot gains customColorHex (effective color = manual color ?? origin color) and hasManualCustomColor (so "Clear Color" only shows for a real manual color). Resolved above the row boundary; mirror workspaces carry their host through the session mirror (via hostDestination), so it works even without a remoteConfiguration.
  • Toggling the flag re-evaluates the sidebar and repopulates the snapshot cache.
  • Settings: a Beta Features toggle plus a curated search entry so it's findable.

Tests

RemoteHostColorRegistryTests (stable-hash determinism, collision probing, full-palette fallback, empty-palette nil), SidebarWorkspaceSnapshotRefreshPolicyTests (color feeds the presentation key / cache invalidation), the AppKit row-cell snapshot test updated for the new fields, and RemoteHostTitleSuffixesTests for the host suffix (only the part that tells the hosts apart is shown, a remote workspace beside a local one shows its whole host, and a host is never trimmed to nothing).

Changelog

Added: Beta settings that tint each remote tmux workspace row in the sidebar with a stable color per host, and show the host after workspace titles that would otherwise be identical

Summary by CodeRabbit

  • New Features

    • Added a beta setting for Remote host colors (localized UI + search entry).
    • When enabled, remote tmux sidebar rows use stable per-host “origin” colors, including mirror-aware origin tinting.
    • Effective colors now participate in sidebar rendering/snapshot identity, ensuring consistent updates.
  • Bug Fixes

    • Sidebar workspace color rendering and snapshot refresh now immediately reflect the toggle and “Clear Color” behavior, including while the context menu is open.
  • Tests

    • Added coverage for deterministic per-destination color slotting (including collisions/exhaustion) and for effective color snapshot identity.

@vercel

vercel Bot commented Jul 2, 2026

Copy link
Copy Markdown

@ejc3 is attempting to deploy a commit to the Manaflow Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented Jul 2, 2026 •

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

We couldn't safely recover the incremental review. No full review was started, and the last reviewed checkpoint was preserved. Retry later, or explicitly request a full review by commenting @coderabbitai full review.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Changes

The PR adds a beta setting for remote tmux host colors, assigns stable palette colors per remote destination, resolves those colors for mirrored workspaces, and propagates them through sidebar snapshots and cache keys while preserving manual workspace color precedence.

Remote tmux origin colors

Layer / File(s) Summary
Beta setting and settings UI
Packages/macOS/CmuxSettings/..., Resources/Localizable.xcstrings
Adds the setting, localized toggle, curated search entry, and row-anchor coverage.
Host color registry and destination lookup
Sources/RemoteHostColorRegistry.swift, Sources/RemoteTmuxController.swift, cmuxTests/RemoteHostColorRegistryTests.swift, cmux.xcodeproj/project.pbxproj
Assigns deterministic palette slots to destinations, resolves workspace destinations, registers the new source and test files, and tests hashing, probing, exhaustion, and color lookup.
Effective snapshot color and cache identity
Sources/Sidebar/..., Sources/SidebarWorkspaceSnapshotBuilder.swift, Sources/SidebarWorkspaceSnapshotFactory.swift, Sources/TabItemView+WorkspaceContextMenu.swift, cmuxTests/Sidebar*
Carries effective colors and manual-color state through snapshots, presentation keys, context menus, and related tests.
Runtime flag and sidebar refresh
Sources/ContentView.swift
Refreshes sidebar snapshots when the beta flag changes and supplies resolved origin colors to snapshot construction and cache-key evaluation.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant BetaFeatureSetting
  participant ContentView
  participant RemoteTmuxController
  participant RemoteHostColorRegistry
  participant SidebarWorkspaceSnapshotFactory
  BetaFeatureSetting->>ContentView: change remoteTmuxOriginColorsEnabled
  ContentView->>ContentView: refresh workspace snapshots
  ContentView->>RemoteTmuxController: resolve workspace host destination
  RemoteTmuxController->>RemoteHostColorRegistry: resolve destination color
  ContentView->>SidebarWorkspaceSnapshotFactory: provide originColorHex
  SidebarWorkspaceSnapshotFactory->>ContentView: return effective snapshot and presentation key
Loading

Possibly related PRs

Suggested reviewers: austinywang, azooz2003-bit


Important

Pre-merge checks failed

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

❌ Failed checks (2 errors, 2 warnings)

Check name Status Explanation Resolution
Cmux Swift Package Boundaries ❌ Error RemoteHostColorRegistry is reusable, testable domain logic added under root Sources/, not behind a SwiftPM target, which violates the boundary rule. Extract the registry (and its palette helper) into a small package target, e.g. CmuxRemoteColors/CmuxRemoteWorkspace, and expose RemoteHostColorRegistry there.
Cmux Full Internationalization ❌ Error New xcstrings keys for the beta toggle/subtitles only have en/ja, but the catalog already supports 20 locales, so translations are missing. Add translated values for every supported locale (ar, bs, da, de, es, fr, it, km, ko, nb, pl, pt-BR, ru, th, tr, uk, zh-Hans, zh-Hant) for each new key.
Docstring Coverage ⚠️ Warning Docstring coverage is 28.57% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ⚠️ Warning The description explains the origin-color feature, implementation, tests added, and changelog entry. However, it omits the required Demo Video and Checklist sections, does not identify tests executed … Use the required Summary, Testing, Changelog, Demo Video, and Checklist sections. State the exact test commands and results, or identify what remains unverified. Add the required localization and review checklist status. Remove or separatel…
✅ Passed checks (21 passed)
Check name Status Explanation
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 Swift Actor Isolation ✅ Passed The new stateful registry and UI helpers stay MainActor-bound, and I found no new background access or protocol/sendable isolation regressions.
Cmux Swift Blocking Runtime ✅ Passed Changed Swift files add MainActor state and async refreshes only; no new semaphores, sync waits, sleeps, or manual locks were introduced, and tests are clean.
Cmux Browser Automation Off-Main ✅ Passed PASS: The PR only touches remote-tmux origin-color settings/UI and snapshot code; it doesn’t modify TerminalController, ControlCommandExecutionPolicy, or browser worker/WebKit wait routing.
Cmux Expensive Synchronous Load ✅ Passed Diff only adds origin-color settings/UI and an in-memory host color registry; no load()/JSON/file-scan agent-history work was added to @MainActor or interactive paths.
Cmux Cache Substitution Correctness ✅ Passed Fresh mirror maps are recomputed per refresh, single-row renders fall back to live controller lookup, and presentation keys include effective color so stale snapshots invalidate.
Cmux No Hacky Sleeps ✅ Passed PASS: the diff only changes Swift sources/tests; no non-Swift runtime/build files add sleeps, timers, polling, or fixed waits.
Cmux Algorithmic Complexity ✅ Passed PASS: The hot path batches mirror destinations in one pass; the only scan fallback is single-row, and the host palette is fixed at 16 slots.
Cmux Swift Concurrency ✅ Passed The commit only adds synchronous origin-color lookup plumbing and tests; no new DispatchQueue/Combine/completion-handler/fire-and-forget Task patterns were introduced.
Cmux Swift @Concurrent ✅ Passed No new nonisolated async work or invalid @concurrent usage was introduced; the added origin-color plumbing is synchronous and main-actor-bound.
Cmux Swiftpm Lockfiles ✅ Passed PASS: Packages/Shared/CmuxIrohTransport’s pin bump is mirrored by its Package.resolved; Xcode workspace lockfiles also changed with project updates, and no Package.resolved ignore rules were added.
Cmux Swift Logging ✅ Passed No added or materially changed print/debugPrint/dump/NSLog/Logger use appears in the changed Swift files; existing debug-only logging is unchanged.
Cmux User-Facing Error Privacy ✅ Passed The diff adds beta/settings copy and snapshot plumbing only; no new user-facing errors, alerts, command output, or recovery text expose sensitive internals.
Cmux Swiftui State Layout ✅ Passed Changes only thread value snapshots and add a new @State-wrapped DefaultsValueModel in an existing settings section; no new ObservableObject/@published, GeometryReader, or render-time state writes.
Cmux Architecture Rethink ✅ Passed PASS: The PR adds a single owner for host-color assignment plus snapshot-key plumbing; no sleeps, extra observers, or split lifecycle ownership were introduced.
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed No new standalone NSWindow/NSPanel/WindowGroup code was added or changed; the PR only touches settings/sidebar logic and tests, so the auxiliary-window shortcut rule isn’t implicated.
Cmux Source Artifacts ✅ Passed Diff only adds/edits source, tests, config, and localization; no logs, caches, temp dirs, or generated artifact outputs were checked in.
Cmux No Test Or Debug Seam In Production Source ✅ Passed The PR removes a test-only reset() seam and adds only production-used helpers; no new ForTesting/debug-only API was introduced in production sources.
Cmux No Ambient Global State ✅ Passed The new color registry is instance-owned by RemoteTmuxController/AppDelegate; no new file-scope API, mutable global, or singleton runtime state was introduced.
Title check ✅ Passed The title clearly and concisely describes the main change: beta per-host origin-color tinting for remote tmux workspace sidebar rows.
Full details: Description check

Explanation

The description explains the origin-color feature, implementation, tests added, and changelog entry. However, it omits the required Demo Video and Checklist sections, does not identify tests executed or commands run, and describes an additional host-title feature not supported by the provided changeset summary.

Resolution

Use the required Summary, Testing, Changelog, Demo Video, and Checklist sections. State the exact test commands and results, or identify what remains unverified. Add the required localization and review checklist status. Remove or separately document the originHostTitles.beta feature unless it is included in this pull request.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@ejc3
ejc3 force-pushed the remote-tmux-origin-colors branch from e07902d to 290aad9 Compare July 3, 2026 01:14
@ejc3
ejc3 force-pushed the remote-tmux-origin-colors branch 2 times, most recently from 395702a to fca798a Compare July 17, 2026 19:59
@ejc3
ejc3 force-pushed the remote-tmux-origin-colors branch 2 times, most recently from 35b9b3d to fca798a Compare July 19, 2026 06:45
@ejc3
ejc3 force-pushed the remote-tmux-origin-colors branch from fca798a to ab9a33b Compare July 19, 2026 11:18
@ejc3 ejc3 changed the title remote-tmux: color remote workspaces by host (beta) remote-tmux: tint remote workspace sidebar rows by host (origin colors, beta) Jul 19, 2026
@ejc3
ejc3 marked this pull request as ready for review July 19, 2026 11:20
@greptile-apps

greptile-apps Bot commented Jul 19, 2026 •

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR introduces per-host origin colors for remote tmux workspaces: each sidebar row/tab is tinted with a palette color derived from its SSH host, gated behind remoteTmux.originColors.beta. The feature is off by default and a user's manual workspace color always takes precedence.

  • RemoteHostColorRegistry hashes the host's destination string with stable FNV-1a/64 (not Swift's per-process Hasher) into a palette slot, linear-probes on collision, and caches assignments for the process lifetime; owned by RemoteTmuxController (not a new global).
  • Snapshot plumbing threads the resolved effective color (customColor ?? originColor) through PresentationKey so toggling the beta flag or a mirror resolving its host correctly invalidates the per-row snapshot cache; the hasManualCustomColor field gates the "Clear Color" menu item so origin-tinted rows don't show a spurious clear affordance.
  • The previously-flagged cache-miss inline rebuild path in VerticalTabsSidebar.body now correctly passes mirrorDestinations: renderContext.mirrorOriginDestinations.

Confidence Score: 5/5

Safe to merge. The feature is fully gated behind a beta flag and the cache-miss rebuild path that was missing mirrorDestinations in an earlier iteration is now correctly wired up.

All three snapshot-build paths (batch refresh, full repopulate, and the per-row cache-miss inline path) pass mirrorDestinations correctly. The registry's @MainActor isolation is consistent throughout, hasManualCustomColor gates the "Clear Color" menu item correctly, and customColorHex is included in PresentationKey so toggling the flag or a mirror resolving its host properly invalidates the snapshot cache. Tests cover hash determinism, collision probing, palette exhaustion, and cache-key identity. No correctness, isolation, or hot-path issues found.

No files require special attention.

Important Files Changed

Filename Overview
Sources/RemoteHostColorRegistry.swift New registry: FNV-1a stable hash + linear probe. Correctly @MainActor. slotByHost is private(set) (internal read) but no test accesses it directly; all tests use slot(for:). Palette-exhaustion fallback (overwrite hostBySlot at hashed start) is intentional and documented.
Sources/ContentView.swift Adds remoteTmuxOriginColorsEnabled setting read, mirrorOriginDestinations to RenderContext, and originColorHex/mirrorDestinationsForOriginColors helpers. All three snapshot-build paths (batch refresh, full repopulate, cache-miss inline) now correctly receive mirrorDestinations.
Sources/RemoteTmuxController.swift Owns the new hostColorRegistry; adds hostDestination(forWorkspaceId:) (single-mirror lookup) and hostDestinationsByWorkspaceId() (batch build to avoid O(N²) per-row rescans). Clean @MainActor isolation.
Sources/SidebarWorkspaceSnapshotFactory.swift Adds originColorHex injected parameter; resolves effective color as customColor ?? originColorHex; threads customColorHex into PresentationKey so cache invalidates on color changes. hasManualCustomColor set correctly.
Sources/SidebarWorkspaceSnapshotBuilder.swift Adds customColorHex to PresentationKey and hasManualCustomColor to Snapshot. Both fields participate in auto-synthesised Equatable, ensuring cache correctness.
Sources/TabItemView+WorkspaceContextMenu.swift Gates "Clear Color" on hasManualCustomColor instead of customColorHex != nil, correctly suppressing the affordance for origin-tinted rows with no manual color.
Sources/Sidebar/SidebarWorkspaceSnapshotRefreshPolicy.swift Adds hasManualCustomColor to the refresh policy snapshot. Correctly plumbed in both the construction and the updating(with:from:) path.
Packages/macOS/CmuxSettings/Sources/CmuxSettings/Keys/BetaFeaturesCatalogSection.swift New remoteTmuxOriginColors defaults key with id and userDefaultsKey consistent with the existing remoteTmux sibling key pattern.
Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Sections/BetaFeaturesSection.swift New remoteTmuxOriginColorsRow toggle with proper @State model, accessibilityIdentifier, localized strings, and SettingsCardDivider separator consistent with surrounding rows.
cmuxTests/RemoteHostColorRegistryTests.swift New @MainActor @Suite tests: stable-hash determinism, same-host idempotency, first-host lands on hashed start, distinct-hosts fill distinct slots, collision linear-probe, palette-exhaustion fallback, empty-palette nil, and colorHex stability. Good coverage of stated guarantees.

Sequence Diagram

sequenceDiagram
    participant SB as VerticalTabsSidebar (body)
    participant RC as RenderContext
    participant RTC as RemoteTmuxController
    participant RHCR as RemoteHostColorRegistry
    participant SWSF as SidebarWorkspaceSnapshotFactory

    Note over SB: originColorsEnabled = true
    SB->>RC: mirrorDestinationsForOriginColors()
    RC->>RTC: hostDestinationsByWorkspaceId()
    RTC-->>RC: [UUID: String] (one pass over sessionMirrors)
    RC-->>SB: mirrorOriginDestinations

    loop per workspace row
        SB->>SB: originColorHex(for: workspace, mirrorDestinations:)
        SB->>RTC: hostColorRegistry.colorHex(for: destination)
        RTC->>RHCR: colorHex(for: destination)
        RHCR->>RHCR: slot(for:) — hash+probe, cache
        RHCR-->>SB: "#hexColor (or nil)"

        SB->>SWSF: makeWorkspaceSnapshot(originColorHex:)
        SWSF-->>SB: Snapshot(customColorHex: manual ?? origin, hasManualCustomColor:)
    end

    Note over SB: Cache keyed by PresentationKey(customColorHex:)
Loading

Reviews (6): Last reviewed commit: "remote-tmux: drop the origin-color looku..." | Re-trigger Greptile

Comment thread Sources/RemoteHostColorRegistry.swift Outdated
Comment thread Resources/Localizable.xcstrings Outdated

@coderabbitai coderabbitai 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.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@cmuxTests/RemoteHostColorRegistryTests.swift`:
- Around line 18-23: Update stableHashIsDeterministic to evaluate
RemoteHostColorRegistry.stableHash("cmux-srvA") twice into separate local
constants, then compare those variables for equality; keep the existing
assertion verifying different inputs produce different hashes.

In `@Sources/RemoteHostColorRegistry.swift`:
- Around line 85-89: Remove the test-only reset() method from
RemoteHostColorRegistry in production source, including its documentation.
Update tests to instantiate a new RemoteHostColorRegistry when fresh state is
needed instead of resetting an existing instance.

In `@Sources/RemoteTmuxController.swift`:
- Around line 336-343: Replace the linear sessionMirrors.values scan in
hostDestination(forWorkspaceId:) with a maintained secondary index keyed by
mirroredWorkspaceId, storing the mirror or host destination for O(1) lookup.
Update this index whenever sessionMirrors entries are added, removed, or
changed, while preserving nil for unmapped workspace IDs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0a2531f2-9b36-4222-9f6e-26d124737d29

📥 Commits

Reviewing files that changed from the base of the PR and between ba40607 and ab9a33b.

⛔ Files ignored due to path filters (1)
  • cmux.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved is excluded by !**/Package.resolved
📒 Files selected for processing (16)
  • Packages/macOS/CmuxSettings/Sources/CmuxSettings/Keys/BetaFeaturesCatalogSection.swift
  • Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Navigation/CuratedSettingEntry+Default.swift
  • Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Sections/BetaFeaturesSection.swift
  • Packages/macOS/CmuxSettingsUI/Tests/CmuxSettingsUITests/SettingsRowAnchorResolutionTests.swift
  • Resources/Localizable.xcstrings
  • Sources/ContentView.swift
  • Sources/RemoteHostColorRegistry.swift
  • Sources/RemoteTmuxController.swift
  • Sources/Sidebar/SidebarWorkspaceSnapshotRefreshPolicy.swift
  • Sources/SidebarWorkspaceSnapshotBuilder.swift
  • Sources/SidebarWorkspaceSnapshotFactory.swift
  • Sources/TabItemView+WorkspaceContextMenu.swift
  • cmux.xcodeproj/project.pbxproj
  • cmuxTests/RemoteHostColorRegistryTests.swift
  • cmuxTests/SidebarAppKitRowCellTests.swift
  • cmuxTests/SidebarWorkspaceSnapshotRefreshPolicyTests.swift

Comment thread cmuxTests/RemoteHostColorRegistryTests.swift
Comment thread Sources/RemoteHostColorRegistry.swift Outdated
Comment thread Sources/RemoteTmuxController.swift
@ejc3
ejc3 force-pushed the remote-tmux-origin-colors branch 2 times, most recently from 9583bc9 to e0f042f Compare July 20, 2026 01:56
ejc3 added a commit to ejc3/cmux that referenced this pull request Jul 20, 2026
manaflow-ai#8428 and manaflow-ai#7193 each add an identical hostDestination(forWorkspaceId:) standalone,
which only collides when both land. Keep one. At real merge time the second PR to
land drops its copy; this commit lives only on the dogfood roll-up.
@ejc3
ejc3 force-pushed the remote-tmux-origin-colors branch from e0f042f to 90409b9 Compare July 21, 2026 22:54
@cursor

cursor Bot commented Jul 21, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@ejc3
ejc3 force-pushed the remote-tmux-origin-colors branch 2 times, most recently from 54f74ec to af690c8 Compare July 22, 2026 07:09
@ejc3
ejc3 marked this pull request as draft July 25, 2026 05:58
@ejc3
ejc3 force-pushed the remote-tmux-origin-colors branch from af690c8 to dc51a4e Compare July 25, 2026 07:23
@ejc3
ejc3 force-pushed the remote-tmux-origin-colors branch 2 times, most recently from 508c635 to 2ca1cd0 Compare August 9, 2026 06:30
@ejc3
ejc3 force-pushed the remote-tmux-origin-colors branch from 2ca1cd0 to 296317b Compare August 16, 2026 04:01
@ejc3
ejc3 force-pushed the remote-tmux-origin-colors branch 3 times, most recently from 2e5743c to 1b16dc7 Compare September 3, 2026 08:40
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

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

@teamleaderleo teamleaderleo added area: sidebar The workspace sidebar: list, groups, status, reordering area: appearance Themes, light and dark mode, window chrome labels Sep 30, 2026
@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

CI failure attribution

CI passes on 1305970bd2 (run 36962258319 attempt 2).

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.

@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

CI fast guards passes on 1305970bd2 (https://github.com/manaflow-ai/cmux/actions/runs/36962258013).

# Conflicts:
#	Packages/macOS/CmuxSettings/Sources/CmuxSettings/Keys/BetaFeaturesCatalogSection.swift
#	Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Sections/BetaFeaturesSection.swift
#	Packages/macOS/CmuxSettingsUI/Tests/CmuxSettingsUITests/SettingsRowAnchorResolutionTests.swift
@ejc3
ejc3 marked this pull request as ready for review October 1, 2026 06:39
@cursor

cursor Bot commented Oct 1, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@cubic-dev-ai cubic-dev-ai 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.

Review completed against the latest diff

Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.

Re-trigger cubic

Comment thread Sources/SidebarWorkspaceSnapshotFactory.swift
Comment thread cmuxTests/SidebarWorkspaceSnapshotRefreshPolicyTests.swift Outdated
Comment thread Sources/RemoteHostTitleSuffixes.swift Outdated
Comment thread cmuxTests/RemoteHostColorRegistryTests.swift Outdated
Comment thread cmuxTests/RemoteHostColorRegistryTests.swift
Comment thread Sources/RemoteTmuxController.swift
Comment thread Sources/RemoteHostTitleSuffixes.swift Outdated
Comment thread Sources/RemoteHostColorRegistry.swift Outdated
ejc3 added 2 commits October 1, 2026 11:46
The string catalog is main's text with this branch's entries inserted, so the
branch differs from main only where it adds or edits strings.
@cursor

cursor Bot commented Oct 1, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@vercel

vercel Bot commented Oct 1, 2026

Copy link
Copy Markdown

Deployment failed for project cmux with the following error:

The provided GitHub repository does not contain the requested branch or commit reference. Please ensure the repository is not empty.

@teamleaderleo

Copy link
Copy Markdown
Collaborator

Taking this: reviewing the remote-host sidebar colors and the current bot findings.

OrchardSpoon g1 🌀
run: run_cx_bl_outside_prs_20261002_0004
session: cx-bl-outside-prs

teamleaderleo and others added 5 commits October 1, 2026 18:35
Merge-main commit by scripts/merge-main.sh.
Merged by scripts/merge-main.sh: origin/main at 51b60f3.

Resolved conflicts:
- Resources/Localizable.xcstrings: xcstrings key-level union
- cmux.xcodeproj/project.pbxproj: union of added entries, then normalize-pbxproj.py

Merge-main-previous-head: 8997f5f
Merge-main-base: 51b60f3

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

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

cursor Bot commented Oct 2, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

teamleaderleo and others added 5 commits October 1, 2026 20:44
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merge-main commit by scripts/merge-main.sh.
Merged by scripts/merge-main.sh: origin/main at 00f182f.

Resolved conflicts:
- Resources/Localizable.xcstrings: xcstrings key-level union
- cmux.xcodeproj/project.pbxproj: union of added entries, then normalize-pbxproj.py

Merge-main-previous-head: 1305970
Merge-main-base: 00f182f
ejc3 added a commit to ejc3/cmux that referenced this pull request Oct 4, 2026
# Conflicts:
#	Sources/RemoteTmuxController.swift

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: appearance Themes, light and dark mode, window chrome area: remote cmux ssh, remote daemon, tunnels, device pairing area: sidebar The workspace sidebar: list, groups, status, reordering S3: minor Wrong behavior with a workaround

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants