Skip to content

Prompt-aware text selection at the shell prompt (terminal.promptSelection) - #14856

Open
teamleaderleo wants to merge 39 commits into
manaflow-ai:mainfrom
teamleaderleo:feat/prompt-aware-selection
Open

teamleaderleo wants to merge 39 commits into
manaflow-ai:mainfrom
teamleaderleo:feat/prompt-aware-selection

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 26, 2026 •

Copy link
Copy Markdown
Collaborator

Layer 2 of #13915: text-field selection at a shell prompt, behind a new setting terminal.promptSelection (off by default, next to terminal.textEditingGestures). With it on, at a prompt with shell integration:

  • Cmd+A selects only the command you're typing. On an empty prompt it keeps today's select-all.
  • Shift+Left/Right extend by one character, Cmd+Shift+Left/Right to the start or end of the input.
  • Cmd+C copies through the normal copy path. Cmd+X copies the selection's exact text, then deletes it.
  • Typing, Backspace or Delete replace the selection.
  • Plain Left/Right collapse the selection. Collapsing never presses Right, so it can't accept a zsh autosuggestion.

Inside vim, less or any alternate-screen app, while a command runs, or without shell integration, every key behaves exactly as it does today.

How it works

The Ghostty fork now exports where the input is (manaflow-ai/ghostty#235, with #237 and #238 so a right prompt and the spaces zle writes to erase text don't count; all merged, submodule at e1b8bf5f478c6aadbf70e51cdbb41930e92fda10, which also includes merged manaflow-ai/ghostty#236 and #239):

bool ghostty_surface_prompt_input(ghostty_surface_t, ghostty_surface_prompt_input_s*); // length, caret, selection inside input
bool ghostty_surface_select_prompt_input(ghostty_surface_t, uint32_t start, uint32_t end); // no clipboard write

Offsets are caret stops: .input cells holding text, wide spacers skipped, so one stop is one arrow press for zle or readline. The export refuses the alternate screen, a running command, a line with no prompt before its input (fzf --height and completion menus draw in input mode), and a line with a multi-codepoint grapheme. The input ends at the first empty cell at or after the cursor, because zle draws RPROMPT after OSC 133 B by moving across the gap, so a right prompt is .input text. Spaces after the cursor that run into that end are dropped too, since with RPROMPT shown zle erases deleted text by writing spaces.

The pure resolver (TerminalPromptSelection.swift, 25 tests) turns a gesture plus that snapshot into pass-through, consume, select, clear, or an arrow+Backspace edit. GhosttyNSView calls it from two places:

  • performKeyEquivalent matches Cmd+A and Cmd+X (layout-normalized) ahead of Ghostty's select_all binding. It waits behind an in-flight clipboard read.
  • keyDown, ahead of the text-editing gestures, handles Shift+arrows, and while cmux holds a prompt selection, the keys that collapse or replace it. With no held selection, ordinary typing pays one nil check and a key-code compare; the defaults read and the Ghostty call happen only for gestures.

Edits are replayed as Left/Right/Backspace presses through sendGhosttyKey, so Ghostty encodes them for whatever keyboard protocol is active (same reasoning as #13921). The two C calls live in CmuxTerminalCore (TerminalPromptInputSnapshot.read(from:), TerminalPromptSelection.select(on:)), which compiles against GhosttyKit's own module; the package test runners get weak stubs for them.

Decided defaults and known limits

  • zsh-autosuggestions: its ghost text is drawn right after the buffer as .input cells, and Ghostty can't tell it apart cheaply, so Cmd+A at the end of a line selects the suggestion too. Right never accepts it while a selection is active, because collapsing never presses Right. An edit that reaches into the suggestion (Shift+Right past the buffer, then Backspace) presses Right once, which accepts the whole suggestion first.
  • Multi-line input: soft-wrapped rows are all selectable. A hard newline in a multi-line buffer takes no cell, so only the cursor's line counts (Cmd+A on line 2 selects line 2).
  • Option+Shift word selection: out of scope. It needs the input text, which the export doesn't provide.
  • Keymaps: edits assume an emacs-style line editor. cmux can't know the keymap, so in vi command mode the replayed Backspace moves instead of deleting.
  • Control characters: zle shows a control character as ^X in two cells, so an edit across it sends one Backspace too many.
  • OSC 133 from TUIs on the main screen: accepted; the running-command check already covers most cases.
  • A selection outside the input (output selected with the mouse) keeps Ghostty's own Shift+arrow adjust_selection, and typing never replaces a selection cmux didn't make.

Settings: catalog, cmux.json path, schema (docs page renders from it), Settings row, search index and aliases, all-keys.md, and the three new strings in all nine macOS locales (localization_catalog.py check: 0 parity errors).

Catch-up and review fix

Merged main at 478e3232b0991564a380a4d67b5e55c60dc2aa3b using the repository merge helper. Selection anchors now clear on non-selection input and terminal surface replacement, so Shift+Left after collapse and paste starts at the current caret rather than a stale offset. Regression tests were committed in bca0fc73b1f9a497e4b461d76c6a810a059962e7, followed by the fix in 70c339a9848da78137ad16e6d4a5421bb59969c4.

On that head, macOS compile admission and swift-package-tests passed in CI run 36689103816. Both new tracker tests executed and passed. The pre-fix test commit was not executed, so no red-before result is claimed. App-host tests are still running. The CLI lane failed only in the unchanged Codex monitor memory test at its five-second parser-checkpoint deadline; a rerun will follow when the workflow finishes. Vercel previews failed before building because the repository did not contain the requested fork reference.

A review subagent found no confirmed correctness defect. The remaining coverage limitation is that tracker tests do not drive the AppKit paste or surface-attach methods directly. The prompt-input stubs stay in package test targets only; they are needed to link tests without starting Ghostty and are not a runtime workaround.

Changelog

Added: optional shell-prompt selection with keyboard gestures, copy, cut, and selection replacement.

Validation (earlier head)

  • Ghostty: eleven promptInput Zig tests ran in build-ghosttykit.yml before packaging at b93ab4222 (run 36319683313: 84/84 with the filter vs 74 for the single-test pacer filter), which also published the xcframework; its checksum is pinned. This PR adds that test step to the workflow.
  • CI on e8af053: macOS compile admission, app-host unit tests (changed suites) and CLI product tests passed. swift-package-tests passed every package including CmuxTerminalCore (the "Terminal prompt selection resolver" suite, 23 tests), CmuxTerminal and CmuxCloudTui. The first attempt failed only in CmuxSimulator ("Closing the parent pipe writer delivers output through EOF", a package this PR doesn't touch); the rerun passed.
  • Calling the exports straight from GhosttyTerminalView compiled on some runners and failed on others with the new declarations missing. The app sees Ghostty's C API through the ghostty.h bridging header, and a seeded DerivedData's bridging PCH (regenerated in 0.06 s) predates the submodule bump. Moving the calls into CmuxTerminalCore fixed it; the seeding gap itself will bite the next Ghostty header change that app code uses directly.
  • Local guards (scripts/ci/guards-local.sh, 66 steps) pass on the head.
  • Two review passes by subagents. Fixed: right prompts and zle's erase spaces counted as input (the two Ghostty follow-ups), a whitespace-only Cut writing an empty clipboard and trimmed Cut text, Cmd+A/Cmd+X jumping ahead of a pending paste, Shift-arrows stealing an output selection, non-Latin layouts.

Dogfood

CI dogfood tour run 36736813041 passed on the pre-catch-up head 1cf4acb. The tour shows typed prompt input, Shift+Left selecting world, Cmd+A selecting only the input, and typing replacing the selection. The latest catch-up merges main through b3d644b; the prompt-selection code and tour are unchanged. The package tests exercise tracker invalidation, not the AppKit paste or attach paths. Checks to run in zsh with shell integration and the setting on:

  1. Type echo hello world, Cmd+A: only the input highlights, not the prompt or output. pbpaste unchanged.
  2. Shift+Left ×5 from the end: world highlights; Shift+Right ×2 shrinks it; Cmd+Shift+Left extends to the start.
  3. Cmd+C, then pbpaste shows exactly the highlighted text.
  4. Cmd+A, Cmd+X: input empties, pbpaste has it; select one space and Cmd+X: the clipboard holds a space, never empty.
  5. Select part of the input and type x: the selection is replaced; Backspace and Delete remove a selection.
  6. Left/Right with a selection: collapses without moving past the end; with zsh-autosuggestions showing a suggestion, Cmd+A then Right doesn't accept it.
  7. With RPROMPT='%~': Cmd+A and Cmd+Shift+Right never select the right prompt; type git status, Backspace to git, Shift+Right selects nothing past git, and no edit deletes unselected characters.
  8. Empty prompt, Cmd+A: selects everything as before.
  9. In vim and less: Cmd+A, Shift+arrows, typing behave exactly as with the setting off.
  10. Setting off: Cmd+A selects all, Shift+arrows unchanged.
  11. Mouse-select output, then Shift+Left: Ghostty's selection adjusts; the prompt isn't touched.
  12. Record a full-screen video of 1–7.

🤖 Generated with Claude Code

Screenshots

The cropped frames below come from the passing CI dogfood tour run 36736813041.

typed shell line

Shift+Left selection

Cmd+A select all

Typing replaces selection

Please check copy/paste on the dev-build link. This PR is from teamleaderleo/cmux, so a dev-build link is unavailable because that label only works for branches in manaflow-ai/cmux.

The PR is caught up through main at b3d644ba87324ef330080fda68db5b7f61b6fcc8; the final branch head is e406d4d8009cd17c022d3ed90825e4bc4e47e278.

teamleaderleo and others added 3 commits September 26, 2026 11:14
Pure decision logic for Layer 2 of manaflow-ai#13915: given the shell input under the
cursor (caret stops, caret, input selection) it resolves Select All,
Shift/Cmd+Shift+arrow extension, Cut, Delete and typed text into a select,
clear, or arrow+backspace edit, and passes everything through when there is
no prompt state. Wiring waits on the Ghostty prompt-input export.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 8 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 35d56c5b-8024-4621-9704-aa19ac70d6c5

📥 Commits

Reviewing files that changed from the base of the PR and between ea6e02b and d1176dd.

⛔ Files ignored due to path filters (1)
  • Packages/macOS/CmuxFoundation/Sources/CmuxFoundation/ConfigValidation/CmuxConfigSchema.generated.swift is excluded by !**/*.generated.*
📒 Files selected for processing (28)
  • .github/workflows/build-ghosttykit.yml
  • Packages/macOS/CmuxSettings/Sources/CmuxSettings/Keys/TerminalCatalogSection.swift
  • Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Navigation/CuratedSettingEntry+Default.swift
  • Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Sections/TerminalSection.swift
  • Packages/macOS/CmuxSettingsUI/Tests/CmuxSettingsUITests/SettingsRowAnchorResolutionTests.swift
  • Packages/macOS/CmuxTerminal/Tests/GhosttyRuntimeTestStubs/GhosttyRuntimeTestStubs.c
  • Packages/macOS/CmuxTerminal/Tests/GhosttyRuntimeTestStubs/include/GhosttyRuntimeTestStubs.h
  • Packages/macOS/CmuxTerminalCore/Sources/CmuxTerminalCore/Interop/TerminalPromptInputSnapshot+Ghostty.swift
  • Packages/macOS/CmuxTerminalCore/Sources/CmuxTerminalCore/Interop/TerminalPromptSelection+Ghostty.swift
  • Packages/macOS/CmuxTerminalCore/Sources/CmuxTerminalCore/TextEditing/TerminalPromptSelection.swift
  • Packages/macOS/CmuxTerminalCore/Sources/CmuxTerminalCore/TextEditing/TerminalTextEditingKeyResolution.swift
  • Packages/macOS/CmuxTerminalCore/Tests/CmuxTerminalCoreTests/TextEditing/TerminalPromptSelectionTests.swift
  • Packages/macOS/CmuxTerminalCore/Tests/GhosttyRuntimeTestStubs/GhosttyRuntimeTestStubs.c
  • Packages/macOS/CmuxTerminalCore/Tests/GhosttyRuntimeTestStubs/include/GhosttyRuntimeTestStubs.h
  • Resources/Localizable.xcstrings
  • Sources/CmuxSettingsFileStore+SupportedPaths.swift
  • Sources/CmuxSettingsJSONPathSupport.swift
  • Sources/GhosttyNSView+PreparedImageTransfer.swift
  • Sources/GhosttyNSView+TerminalCustomUpload.swift
  • Sources/GhosttyTerminalView.swift
  • Sources/SettingsSearchAliases.swift
  • Sources/SettingsSearchIndex.swift
  • docs/ghostty-fork.md
  • dogfood/scenarios/prompt-selection-tour.json
  • ghostty
  • scripts/ghosttykit-checksums.txt
  • skills/cmux-settings/references/all-keys.md
  • web/data/cmux.schema.json
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


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.

@github-actions

Copy link
Copy Markdown
Contributor

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

teamleaderleo and others added 12 commits September 27, 2026 03:00
At the end of a zsh buffer Right accepts an autosuggestion, and the
suggestion's cells read as input, so Cmd+A there selects it too. Collapsing
now moves the caret left onto the edge when needed but never right.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…nal view

Off by default. At a shell prompt, Cmd+A selects only the command being
typed, Shift+Left/Right and Cmd+Shift+Left/Right extend, Cmd+X cuts through
the normal copy path, and typing, Backspace, or Delete replace the selection
by replaying arrow and Backspace keys through Ghostty's key path. Without a
held selection only Shift+arrows reach the resolver, so ordinary typing pays
one nil check.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…mpt-aware-selection

# Conflicts:
#	Packages/macOS/CmuxSettingsUI/Sources/CmuxSettingsUI/Sections/TerminalSection.swift
#	Sources/CmuxSettingsFileStore+SupportedPaths.swift
#	skills/cmux-settings/references/all-keys.md
#	web/data/cmux.schema.json
manaflow-ai/ghostty#235 adds ghostty_surface_prompt_input and
ghostty_surface_select_prompt_input. build-ghosttykit.yml runs their Zig
tests before packaging, and docs/ghostty-fork.md records the change.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…tions, non-Latin layouts

Cut writes the selection's exact untrimmed text, so a whitespace-only
selection no longer copies an empty string and pasting restores what was
deleted. Cmd+A/Cmd+X wait behind an in-flight clipboard read, Shift-arrows
leave a selection outside the input to Ghostty's adjust_selection, and the
key match uses the layout-normalized characters.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
manaflow-ai/ghostty#237 ends the prompt input at the first empty cell at or
after the cursor, so RPROMPT cells are no longer caret stops that an edit
could delete past.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
manaflow-ai/ghostty#238 drops a run of spaces at or after the cursor that
reaches the end of the input. With RPROMPT shown zle erases deleted text by
writing spaces, which counted as caret stops past the buffer.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

CI failure attribution

CI failed on e47cb17547 (run 36712416773 attempt 2): 1 code.

Job Verdict Why
macos / app-host unit tests (changed suites) code a test failed
Matched log lines
macos / app-host unit tests (changed suites): ✘ Test "Click, menu and drop keep their Desktop split across refresh and reconnect" recorded an issue with 1 argument entryPoint → .click at CloudDesktopGraphOpenTests.swift:17:6: Time limit was exceeded: 60.000 seconds

Not re-run automatically: macos / app-host unit tests (changed suites) is not a machine failure.

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.

@teamleaderleo teamleaderleo changed the title Add prompt-aware selection resolver (Layer 2 of #13915) Prompt-aware text selection at the shell prompt (terminal.promptSelection) Sep 27, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

/catch-up

@github-actions

Copy link
Copy Markdown
Contributor

Catch-up only runs on branches in this repository for now, so I left this one alone. A maintainer can merge main in by hand.

teamleaderleo and others added 2 commits September 27, 2026 07:26
Catch-up merge by scripts/ci/catch_up_pr.py (RFC manaflow-ai#14631).
Merged by scripts/merge-main.sh: origin/main at e1f1cb2, the newest commit with green CI fast guards (2 newer skipped).

Resolved generated files:
- Resources/Localizable.xcstrings: xcstrings key-level union

Catch-up-previous-head: f195582
Catch-up-base: e1f1cb2
…odule

The app target sees Ghostty's C API through the ghostty.h bridging header,
whose precompiled header CI reuses from a seeded DerivedData even after the
submodule header changes, so the new declarations were missing there. The
CmuxTerminalCore wrappers compile against GhosttyKit's own module and keep
the C calls behind the terminal core's interop seam.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@teamleaderleo
teamleaderleo force-pushed the feat/prompt-aware-selection branch from 83876e9 to 7762400 Compare September 27, 2026 16:05
teamleaderleo and others added 3 commits September 27, 2026 09:07
Catch-up merge by scripts/ci/catch_up_pr.py (RFC manaflow-ai#14631).
Merged by scripts/merge-main.sh: origin/main at de22b47, the newest commit with green CI fast guards (1 newer skipped).

Resolved generated files:
- Resources/Localizable.xcstrings: xcstrings key-level union
- Packages/macOS/CmuxFoundation/Sources/CmuxFoundation/ConfigValidation/CmuxConfigSchema.generated.swift: generate-cmux-config-schema.py, regenerated from the merged schema

Catch-up-previous-head: 7762400
Catch-up-base: de22b47
Catch-up merge by scripts/ci/catch_up_pr.py (RFC manaflow-ai#14631).
Merged by scripts/merge-main.sh: origin/main at badf9f6.

Resolved conflicts:
- Resources/Localizable.xcstrings: xcstrings key-level union

Catch-up-previous-head: 94e3c29
Catch-up-base: badf9f6
SwiftPM cannot link GhosttyKit, so the package tests satisfy the link with
weak stubs; CmuxTerminalCore now references ghostty_surface_prompt_input,
ghostty_surface_select_prompt_input and ghostty_surface_has_selection.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Cross-model review (Codex gpt-5.6-sol)

  • Packages/macOS/CmuxTerminalCore/Sources/CmuxTerminalCore/TextEditing/TerminalPromptSelection.swift:288-291 — after Shift+arrow collapses a selection, the empty tracked anchor is retained, but paste paths and attachSurface neither clear it nor bind it to an input/surface generation. Collapse a selection, paste enough text to move the caret, then Shift+Left: the old in-range anchor is trusted and selection starts at the stale offset; reattaching to another prompt can do the same cross-surface. Invalidate on non-selection input and surface replacement (or generation-tag it), with collapse→paste and collapse→reattach tests.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 30, 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 Author

Review: stale tracked prompt-selection anchors survived collapse followed by paste or surface replacement. Fixed: 70c339a. Left: prompt-input symbol stubs remain test-only link stubs; Ghostty points at e1b8bf5f4, which includes the merged Ghostty changes.

@teamleaderleo
teamleaderleo marked this pull request as ready for review September 30, 2026 08:23
@teamleaderleo
teamleaderleo enabled auto-merge (squash) September 30, 2026 08:23
teamleaderleo and others added 2 commits September 30, 2026 03:05
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Catch-up merge by scripts/ci/catch_up_pr.py (RFC manaflow-ai#14631).
Merged by scripts/merge-main.sh: origin/main at ecba57a.

Catch-up-previous-head: 9fff5d7
Catch-up-base: ecba57a
@cursor

cursor Bot commented Sep 30, 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.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@teamleaderleo teamleaderleo added the needs a call Finished and held for a team design or product decision (see #13742 and the gallery in #15427) label Sep 30, 2026
teamleaderleo and others added 8 commits September 30, 2026 04:32
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Catch-up merge by scripts/ci/catch_up_pr.py (RFC manaflow-ai#14631).
Merged by scripts/merge-main.sh: origin/main at 40a636e.

Resolved conflicts:
- Resources/Localizable.xcstrings: xcstrings key-level union

Catch-up-previous-head: ea178e7
Catch-up-base: 40a636e

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Auto-merge is off for now: copy and paste at the prompt can't be shown in a screenshot, so this waits for a hands-on check on a dev build before it merges.

teamleaderleo and others added 5 commits September 30, 2026 09:10
Merge-main commit by scripts/merge-main.sh.\nMerged by scripts/merge-main.sh: origin/main at e709b69.\n\nResolved conflicts:\n- Resources/Localizable.xcstrings: xcstrings key-level union\n- Packages/macOS/CmuxFoundation/Sources/CmuxFoundation/ConfigValidation/CmuxConfigSchema.generated.swift: generate-cmux-config-schema.py, regenerated from the merged schema (both sides changed the schema)\n\nMerge-main-previous-head: 1cf4acb\nMerge-main-base: e709b69\n\nCo-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Resolved docs/ghostty-fork.md by preserving the prompt-input selection history and current main Ghostty history.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merge-main commit by scripts/merge-main.sh.
Merged by scripts/merge-main.sh: origin/main at b3d644b.

Resolved conflicts:
- Resources/Localizable.xcstrings: xcstrings key-level union

Merge-main-previous-head: 342613a
Merge-main-base: b3d644b

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merge-main commit by scripts/merge-main.sh.
Merged by scripts/merge-main.sh: origin/main at ea6e02b.

Resolved conflicts:
- Resources/Localizable.xcstrings: xcstrings key-level union
- Packages/macOS/CmuxFoundation/Sources/CmuxFoundation/ConfigValidation/CmuxConfigSchema.generated.swift: generate-cmux-config-schema.py, regenerated from the merged schema (both sides changed the schema)

Merge-main-previous-head: e406d4d
Merge-main-base: ea6e02b
Keep the Ghostty submodule at the prompt-selection fork commit while retaining main for the unchanged Bonsplit gitlink.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Pending Ghostty dependency confirmation and hands-on prompt copy/paste dogfood before merging. — Oolong g1 🌾

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

needs a call Finished and held for a team design or product decision (see #13742 and the gallery in #15427)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants