Skip to content

Add code editor surface type - #4801

Closed
austinywang wants to merge 24 commits into
mainfrom
issue-648-add-vscode-cursor-like-code-editor-as-a
Closed

austinywang wants to merge 24 commits into
mainfrom
issue-648-add-vscode-cursor-like-code-editor-as-a

Conversation

@austinywang

@austinywang austinywang commented May 26, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Add a first-class editor/code editor surface type backed by the existing WebKit browser panel lifecycle.
  • Add code editor creation paths in the File menu, command palette, empty-pane actions, surface tab bar config, socket/CLI surface creation, and session/config restore.
  • Keep browser-only behavior scoped to browser surfaces: browser history, omnibar chrome, browser shortcut targeting, open-tab suggestions, and global browser content indexing.

Closes #648

Verification

  • node -e 'JSON.parse(require("fs").readFileSync("Resources/Localizable.xcstrings", "utf8")); console.log("Localizable.xcstrings valid JSON")'
  • plutil -convert json -o /dev/null Resources/Localizable.xcstrings
  • git diff --check

Local builds and tests were not run per HQ instruction. HQ build command:

CMUX_SKIP_ZIG_BUILD=1 ./scripts/reload.sh --tag issue-648-add-vscode-cursor-like-code-editor-as-a --launch

View with Codesmith Autofix with Codesmith
Need help on this PR? Tag @codesmith with what you need. Autofix is disabled.


Note

Medium Risk
Touches core panel/workspace lifecycle, session restore, and automation APIs across a wide surface area, though behavior is gated by explicit surface roles rather than changing terminal/browser defaults.

Overview
Introduces a first-class Code Editor surface (editor / codeEditor) that reuses the WebKit BrowserPanel stack via a new SurfaceRole.codeEditor, defaulting to https://vscode.dev and hiding browser chrome.

Creation and routing: New openCodeEditor / TabManager.openCodeEditor paths wire File menu, command palette, empty-pane actions, surface tab bar (cmux.newCodeEditor), splits, and inline “open folder in VS Code” to code-editor panels instead of generic browsers. Folder opens resolve serve-web URLs asynchronously (ensureServeWebURL); provisional default tabs can be discarded if folder navigation never lands.

Scoped browser behavior: Code editor panels skip omnibar, browser history, open-tab suggestions, global browser search, and focusedBrowserPanel (browser-only shortcuts). Keyboard/shortcut and omnibar code paths filter on panelType == .browser where needed.

Platform parity: PanelType, config (CmuxSurfaceType), session restore, recently closed, task manager, lifecycle events (editor), CLI/socket --type=editor aliases, and extension sidebar kinds gain code-editor awareness; localized strings and example sidebar icons follow the curly-braces motif.

Reviewed by Cursor Bugbot for commit 09e7889. Bugbot is set up for automated code reviews on this repo. Configure here.


Summary by cubic

Adds a first‑class editor surface alongside browser, defaulting to https://vscode.dev, with its own UI (omnibar hidden). Editor tabs are excluded from browser history, open‑tab suggestions, and global browser search. Addresses #648.

  • New Features

    • Open Code Editor from File menu (“New Code Editor Tab”), command palette, empty pane, surface tab bar (cmux.newCodeEditor), splits, and CLI/socket (new_pane/new_surface --type=editor; aliases: editor/code/codeeditor/vscode/vscodeinline); included in default tab bar config.
    • Folder‑aware open for splits and “Open Folder in VS Code (Inline)”: returns the panel ID immediately, then resolves the serve‑web URL asynchronously; CWD order: requested terminal dir → workspace dir → focused panel dir.
    • Platform‑wide support: session/config restore, Recently Closed, Task Manager, sidebars (CmuxExtensionKit), CmuxWorkspaceCore.SurfaceKind (editor), lifecycle/automation emit type: editor; PanelType(externalValue:) accepts editor/vscode aliases; browser‑only omnibar/search/shortcuts constrained to .browser.
  • Bug Fixes

    • Stabilized serve‑web startup and folder navigation: cancel‑safe awaits, complete pending callbacks on failure/cancel, guard async routing; provisional editors are dropped if navigation never lands.
    • Fixed Code Editor labels/icons across canvas, sidebars, command palette, Task Manager, and Recently Closed; tab bar action now uses the raw editor surface kind.

Written for commit 4bde2d7. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • New Features
    • Added Code Editor surface type as a new panel option alongside Browser and Terminal, with support for opening directories via inline VS Code.
    • New commands to create code editor tabs and splits (split right, split down).
    • Code editor appears in command palette, menus, configuration, task manager, and empty pane interface.
    • Full localization support for Code Editor UI across multiple languages.

@vercel

vercel Bot commented May 26, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
cmux Ready Ready Preview, Comment Jun 18, 2026 9:04pm
cmux-staging Building Building Preview, Comment Jun 18, 2026 9:04pm

@coderabbitai

coderabbitai Bot commented May 26, 2026 •

Copy link
Copy Markdown

Need the big picture first? Review this PR in Change Stack to see what changed before going file by file.

Review Change Stack

📝 Walkthrough

Walkthrough

This PR adds a new Code Editor panel type alongside Browser and Terminal, enabling users to open inline VSCode surfaces with full session restoration, split management, and UI integration through a centralized BrowserPanel.SurfaceRole abstraction that parameterizes chrome visibility, history recording, and search contribution behavior.

Changes

Code Editor Panel Type and Integration

Layer / File(s) Summary
Panel type definitions and SurfaceRole parameterization
Packages/CmuxExtensionKit/Sources/.../CMUXSidebarSurface.swift, Sources/Panels/Panel.swift, Sources/Panels/BrowserPanel.swift, Sources/TaskManagerTypes.swift, Sources/CmuxConfig.swift, Sources/CmuxLifecycleEventPublishing.swift
Adds .codeEditor case to PanelType, CmuxSidebarSurfaceKind, and CmuxSurfaceType enums. Introduces BrowserPanel.SurfaceRole enum that parameterizes panel icon, title, initial URL, chrome visibility, history recording, and global-search eligibility. Updates panel decoding to normalize external type aliases (editor, code, codeeditor, vscode, vscodeinline).
Built-in action and configuration support
Sources/CmuxSurfaceTabBarBuiltInAction.swift, Sources/CmuxConfig.swift
Adds .newCodeEditor built-in action with icon (curlybraces.square) and config identifier parsing supporting multiple aliases. Extends CmuxSurfaceType decoder to accept editor aliases and encoder for JSON serialization. Includes default code-editor button in surface-tab-bar defaults and resolution metadata (title, keywords).
AppDelegate and TabManager core APIs
Sources/AppDelegate.swift, Sources/TabManager.swift
Implements AppDelegate.openCodeEditor(tabManager:url:splitDirection:insertAtEnd:) entry point with tab/workspace selection, provisional panel provisioning, and VS Code URL generation. Generalizes TabManager surface-creation methods with surfaceRole parameter; adds newCodeEditorSplit/Surface wrappers and openCodeEditor overloads for workspace-scoped and global creation.
Workspace surface creation and session integration
Sources/Workspace.swift
Extends Workspace with newCodeEditorSurface, newCodeEditorSplit, and openCodeEditorFromPane convenience methods. Implements session snapshot restoration and CMUX event publishing for code-editor panels. Gates browser open-tab suggestion publishing by surface role, derives CMUX lifecycle kind/origin from role instead of hardcoded values, adds SurfaceKind.codeEditor and role-aware helpers.
BrowserPanel view and behavior updates
Sources/Panels/BrowserPanel.swift, Sources/Panels/BrowserPanelView.swift, Sources/Panels/BrowserOmnibarPerformanceSupport.swift
Updates displayTitle and displayIcon to derive from surfaceRole. Gates history recording and global search capture by surface-role flags. Introduces shouldShowBrowserChrome predicate (combining surfaceRole.showsBrowserChrome && isOmnibarVisible) controlling omnibar suggestions, header rendering, chrome height, and auto-focus. Gates browser open-tab suggestion generation by surface-role eligibility.
UI and command palette integration
Sources/ContentView.swift, Sources/WorkspaceContentView.swift, Sources/cmuxApp.swift
Adds palette.newCodeEditorTab, palette.codeEditorSplitRight/Down commands with localized metadata and handlers routing through AppDelegate.openCodeEditor(). Adds empty-panel "Code Editor" action with localized button. Adds main-menu "New Code Editor Tab" button guarded by browser-availability setting. Supports .codeEditor in command palette kind mappings.
Supporting system updates
Examples/.../SidebarInsightModel.swift, Examples/.../TabsVisibleSidebarView.swift, Sources/ClosedItemHistory.swift, Sources/KeyboardShortcutContext.swift, Sources/Panels/PanelContentView.swift, Sources/Search/GlobalSearchDocuments.swift, Sources/Search/GlobalSearchPanelCaptureManager.swift, Sources/TerminalController.swift, Sources/TerminalControllerV2ParamParsingSupport.swift, Sources/TerminalPaneDropTargetView.swift, Sources/TaskManagerSnapshot.swift
Updates sidebar extension icons for code editor. Extends terminal controller to create code-editor splits/surfaces, broadens "browser disabled" checks to include code editor. Generalizes panel-type parsing via PanelType(externalValue:). Updates closed-item history, task-manager snapshots, global search filtering, and keyboard shortcut context to handle code-editor surfaces. Adds explicit browser-panel type filters where necessary.
Localization strings
Resources/Localizable.xcstrings
Adds 1785 lines of localized strings across 20+ locales for: new code editor tab/surface labels, split-direction commands, command palette metadata, empty pane titles/actions, menu history/file actions, and task-manager surface-type label.
Test coverage
cmuxTests/AppDelegateIssue2907RoutingTests.swift, cmuxTests/TabManagerSessionSnapshotTests.swift, cmuxTests/TabManagerUnitTests.swift, cmuxTests/WorkspaceUnitTests.swift
Tests session snapshot round-trip restoration for code-editor panels (type and URL). Tests code-editor surface creation with default URL and omnibar behavior. Tests code-editor split creation and layout. Tests initial working-directory resolution. Tests provisional default code-editor discard behavior. Tests system.tree serialization of editor surfaces.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

  • manaflow-ai/cmux#4160: Introduces the session history system that this PR extends by adding .codeEditor panel type support to closed-item history.

Poem

🐰 A bunny's ode to VSCode inline
Hop into the editor, line by line,
Code and chrome dance in curly-brace light,
Surface roles spring splits left and right,
From browser to editor, a test-covered sight! 🎉


Important

Pre-merge checks failed

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

❌ Failed checks (2 errors, 1 warning)

Check name Status Explanation Resolution
Cmux Swift Concurrency ❌ Error Fire-and-forget completion handler closures in openCodeEditor and openDirectoryInInlineVSCode call ensureServeWebURL with meaningful async lifecycle work after method return. Convert ensureServeWebURL to async/await to modernize completion handler pattern for internal code.
Cmux Full Internationalization ❌ Error All 12 new code editor user-facing strings in Localizable.xcstrings lack 'km' (Khmer) translations, violating the rule requiring translations for all supported locales. Add 'km' locale translations to all 12 new code editor string entries in Resources/Localizable.xcstrings.
Docstring Coverage ⚠️ Warning Docstring coverage is 13.89% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (16 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Code changes fully satisfy issue #648 requirements: adds editor surface type accessible via UI (File menu, command palette, empty pane, tab bar button) and CLI (--type=editor), defaults to vscode.dev like requested, and integrates with session/restore.
Out of Scope Changes check ✅ Passed All code changes are directly related to implementing the code editor surface feature: new types, routing logic, UI wiring, browser-only behavior scoping, localization, and tests are all in scope per PR objectives.
Cmux Swift Actor Isolation ✅ Passed Swift 6 actor isolation properly maintained: all new enums marked Sendable, MainActor classes properly annotated, background work isolated to dispatch queues with explicit main-thread callbacks.
Cmux Swift Blocking Runtime ✅ Passed PR introduces code editor surface type without new blocking synchronization. All async operations use non-blocking callbacks; enum/switch cases and filtering logic add no blocking patterns.
Cmux No Hacky Sleeps ✅ Passed This PR is entirely Swift source and localization data. The custom check applies only to non-Swift runtime languages (TypeScript, JavaScript, shell, build scripts).
Cmux Algorithmic Complexity ✅ Passed PR adds O(1) enum cases and single-value string parsing with delegated creation. No nested loops, batch rescans, or hot-path collection operations. Role-based filtering improves efficiency.
Cmux Swift @Concurrent ✅ Passed New functions are synchronous; async callbacks execute on DispatchQueue.main.async with UI-bound work. No missing/invalid @concurrent or heavy work without proper isolation.
Cmux Swift File And Package Boundaries ✅ Passed No violations: no oversized new files; all additions <250 lines to >800-line files; SurfaceRole configuration properly nested; AppDelegate.openCodeEditor is app-lifecycle composition code.
Cmux Swift Logging ✅ Passed PR introduces code editor surface without violating Swift logging rules: no print/debugPrint/dump/NSLog calls added, no improper Logger declarations, no secrets/personal data exposed.
Cmux User-Facing Error Privacy ✅ Passed Code editor strings are vendor-neutral. "vscode" appears only in command palette search keywords, not in errors/alerts. The feature explicitly provides VS Code/Cursor functionality per issue #648.
Cmux Swiftui State Layout ✅ Passed SurfaceRole is a value-type enum with computed properties, no new ObservableObject/state. Command handlers and actions properly separated from render, no layout-changing patterns.
Cmux Architecture Rethink ✅ Passed PR correctly derives omnibarVisible from surfaceRole.showsBrowserChrome in Workspace creation paths, avoiding timing/dispatch/observer patterns and split ownership per architectural rules.
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed Code editor surfaces are BrowserPanel variants (panes within main windows), not standalone NSWindow/NSPanel/SwiftUI Window instances. No new window creation; all routes return UUID (panel ID).
Cmux Source Artifacts ✅ Passed No prohibited artifacts found. Config files (.claude/commands/, .coderabbit.yaml, .cursor/rules/, .vercelignore) are intentional product configs per PASS criteria.
Title check ✅ Passed The title clearly summarizes the main change: introducing a new code editor surface type. It is concise, specific, and directly reflects the primary feature being added.
Description check ✅ Passed The PR description comprehensively addresses all key template sections with sufficient detail on changes, testing, and verification steps.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch issue-648-add-vscode-cursor-like-code-editor-as-a

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 and usage tips.

Comment thread Sources/AppDelegate.swift
@greptile-apps

greptile-apps Bot commented May 26, 2026 •

Copy link
Copy Markdown
Contributor

Greptile Summary

Adds editor/codeEditor as a first-class surface type backed by the existing BrowserPanel + WebKit stack, defaulting to https://vscode.dev/. All browser-specific behavior (omnibar chrome, history recording, open-tab suggestions, global search capture, and browser-shortcut targeting) is gated behind surfaceRole.showsBrowserChrome / role-specific predicates, and code-editor creation is wired into File menu, command palette, empty-pane actions, surface tab bar, socket/CLI (--type=editor), session restore, and config restore.

  • New BrowserPanel.SurfaceRole enum encapsulates all role-specific behavior so adding future roles requires changes in one place.
  • Provisional-panel discard flow: openCodeEditor creates a provisional panel immediately, then resolves the serve-web folder URL asynchronously; if resolution fails, shouldDiscardProvisionalDefaultCodeEditor correctly guards the discard on the panel still being at the default URL.
  • Broad creation surface parity: CLI/socket, config restore, session snapshot restore, task manager, recently-closed history, and lifecycle events all handle the new type consistently.

Confidence Score: 5/5

Safe to merge. All creation paths, session/config restore, lifecycle events, and scoped browser behaviors are consistently handled, and the previously-identified issues were resolved in follow-up commits.

The surface-role gating is encapsulated in BrowserPanel.SurfaceRole, so every call site reads a single predicate. The provisional-panel discard logic is sound because currentURL is set eagerly at init from the default URL.

No files require special attention.

Important Files Changed

Filename Overview
Sources/Panels/BrowserPanel.swift Adds SurfaceRole enum gating all browser-specific behavior; panelType derived from role at init.
Sources/AppDelegate.swift Adds openCodeEditor with sound provisional-panel discard logic and correct weak capture in async Task.
Sources/Workspace.swift Config and session restore handle .codeEditor consistently with existing .browser pattern.
Sources/TabManager.swift Delegation wrappers added; focusedBrowserPanel correctly filters to panelType == .browser only.
Sources/Panels/Panel.swift Adds PanelType.codeEditor and refactors init(from:) to delegate to new init(externalValue:).
Sources/CmuxConfig.swift CmuxSurfaceType.codeEditor added with alias normalization; newCodeEditor in default tab bar config.
Sources/App/TerminalDirectoryOpenSupport.swift Pending completions drained on both failure paths, fixing the prior continuation-hang.
Sources/ContentView.swift Command-palette contributions and registry handlers added for newCodeEditor and splits.
Resources/Localizable.xcstrings 14 new keys with all 19 supported locales present per prior-review fix.
Sources/WorkspaceContentView.swift Code Editor button added to empty pane; shortcut param widened to StoredShortcut? cleanly.

Sequence Diagram

%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
    participant UI as User
    participant AD as AppDelegate.openCodeEditor
    participant TM as TabManager
    participant WS as Workspace
    participant BP as BrowserPanel
    participant SWC as VSCodeServeWebController
    UI->>AD: open code editor
    AD->>TM: openCodeEditor(inWorkspace:url:vscode.dev)
    TM->>WS: newBrowserSurface(surfaceRole:.codeEditor)
    WS->>BP: init(surfaceRole:.codeEditor)
    BP-->>AD: panelId returned immediately
    AD-->>UI: panelId
    AD->>SWC: await ensureServeWebURL
    SWC-->>AD: serveWebURL or nil
    alt resolved
        AD->>BP: navigate(to: openFolderURL)
    else failed
        AD->>WS: discardProvisionalDefaultCodeEditor
    end
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
    participant UI as User
    participant AD as AppDelegate.openCodeEditor
    participant TM as TabManager
    participant WS as Workspace
    participant BP as BrowserPanel
    participant SWC as VSCodeServeWebController
    UI->>AD: open code editor
    AD->>TM: openCodeEditor(inWorkspace:url:vscode.dev)
    TM->>WS: newBrowserSurface(surfaceRole:.codeEditor)
    WS->>BP: init(surfaceRole:.codeEditor)
    BP-->>AD: panelId returned immediately
    AD-->>UI: panelId
    AD->>SWC: await ensureServeWebURL
    SWC-->>AD: serveWebURL or nil
    alt resolved
        AD->>BP: navigate(to: openFolderURL)
    else failed
        AD->>WS: discardProvisionalDefaultCodeEditor
    end
Loading

Reviews (12): Last reviewed commit: "fix: use raw surface kind for editor tab..." | Re-trigger Greptile

Comment thread Resources/Localizable.xcstrings Outdated
Comment thread Sources/Panels/BrowserPanelView.swift Outdated
Comment thread Sources/AppDelegate.swift
Comment thread Sources/AppDelegate.swift Outdated
Comment thread Sources/AppDelegate.swift
Comment thread Sources/TerminalController.swift Outdated
Comment thread Sources/Workspace.swift Outdated
Comment thread Sources/AppDelegate.swift
Comment thread cmuxTests/WorkspaceUnitTests.swift
Comment thread Sources/ContentView.swift Outdated

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit e2304d0. Configure here.

Comment thread Sources/AppDelegate.swift
coderabbitai[bot]
coderabbitai Bot previously requested changes Jun 6, 2026

@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: 1

🤖 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 `@Sources/Panels/BrowserPanel.swift`:
- Around line 3106-3161: The init for BrowserPanel should honor SurfaceRole
defaults instead of leaving values to callers: in BrowserPanel.init, initialize
the panel's initialURL from SurfaceRole.defaultInitialURL (use that when role ==
.codeEditor) and set omnibarVisible based on SurfaceRole.showsBrowserChrome
(hide omnibar when showsBrowserChrome is false), and ensure any other
role-dependent flags (e.g., recordsBrowserHistory,
contributesToBrowserOpenTabSuggestions, contributesToGlobalBrowserSearch) derive
from the SurfaceRole properties so code-editor panes get the authoritative
defaults; update the initializer paths that currently default initialURL = nil
or omnibarVisible = true to pull from the SurfaceRole instance.
🪄 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: f9425d37-6638-4106-92cb-fd09e1c7302a

📥 Commits

Reviewing files that changed from the base of the PR and between 97cf213 and 6260a00.

📒 Files selected for processing (31)
  • Examples/SampleSidebarExtensionApp/SampleSidebarExtension/Model/SidebarInsightModel.swift
  • Examples/TabsVisibleSidebar/TabsVisibleSidebarExtension/TabsVisibleSidebarView.swift
  • Packages/CmuxExtensionKit/Sources/CmuxExtensionKit/Sidebar/CMUXSidebarSurface.swift
  • Resources/Localizable.xcstrings
  • Sources/AppDelegate.swift
  • Sources/ClosedItemHistory.swift
  • Sources/CmuxConfig.swift
  • Sources/CmuxLifecycleEventPublishing.swift
  • Sources/CmuxSurfaceTabBarBuiltInAction.swift
  • Sources/ContentView.swift
  • Sources/KeyboardShortcutContext.swift
  • Sources/Panels/BrowserOmnibarPerformanceSupport.swift
  • Sources/Panels/BrowserPanel.swift
  • Sources/Panels/BrowserPanelView.swift
  • Sources/Panels/Panel.swift
  • Sources/Panels/PanelContentView.swift
  • Sources/Search/GlobalSearchDocuments.swift
  • Sources/Search/GlobalSearchPanelCaptureManager.swift
  • Sources/TabManager.swift
  • Sources/TaskManagerSnapshot.swift
  • Sources/TaskManagerTypes.swift
  • Sources/TerminalController.swift
  • Sources/TerminalControllerV2ParamParsingSupport.swift
  • Sources/TerminalPaneDropTargetView.swift
  • Sources/Workspace.swift
  • Sources/WorkspaceContentView.swift
  • Sources/cmuxApp.swift
  • cmuxTests/AppDelegateIssue2907RoutingTests.swift
  • cmuxTests/TabManagerSessionSnapshotTests.swift
  • cmuxTests/TabManagerUnitTests.swift
  • cmuxTests/WorkspaceUnitTests.swift

Comment thread Sources/Panels/BrowserPanel.swift
@austinywang

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 6, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@austinywang
austinywang dismissed coderabbitai[bot]’s stale review June 6, 2026 15:25

Resolved by 09e7889; the CodeRabbit thread is resolved and CodeRabbit confirmed it addressed, but the follow-up review only submitted COMMENTED, leaving a stale CHANGES_REQUESTED review.

…cursor-like-code-editor-as-a

# Conflicts:
#	Packages/CmuxExtensionKit/Sources/CmuxExtensionKit/Sidebar/CMUXSidebarSurface.swift
#	Resources/Localizable.xcstrings
#	Sources/Panels/Panel.swift
#	Sources/Search/GlobalSearchDocuments.swift
#	Sources/TerminalController.swift
#	Sources/TerminalControllerV2ParamParsingSupport.swift
#	Sources/Workspace.swift
#	Sources/cmuxApp.swift
Comment thread Sources/App/TerminalDirectoryOpenSupport.swift
@lawrencecchen lawrencecchen added the stale-revisit Closed after 30+ days without activity; preserved for possible revisit or reopening. label Sep 23, 2026
@github-project-automation github-project-automation Bot moved this from Todo to Done in cmux backlog Sep 23, 2026

This branch was successfully deployed

1 active deployment
Preview – cmux — 4bde2d70 Deployed Jun 18, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stale-revisit Closed after 30+ days without activity; preserved for possible revisit or reopening.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add VSCode/Cursor like code editor as a type of screen

3 participants