Repository navigation
Conversation
hilander
requested review from
Andrey Markin (Mark-Life),
Olga Lavrichenko (OLavrik),
artyomxx,
danyaberezun and
Rinat S (rsolmano)
as code owners
November 14, 2026 12:55
…etBrains#1370) * feat(web): run tab layout actions from the palette and chords Tab menu availability moves into one pure tabActions source that the context menu and a new Active tab palette group both read. New chords: Mod+Alt+W closes the active tab (Mod+W stays desktop-owned and display-only), Mod+\ splits right, Ctrl+Alt+Left/Right (Ctrl+Cmd on macOS) moves the tab to the adjacent group. Shift+F10 / Menu opens tab and rail menus. Chords can be platform-specific or display-only, and no Alt chord matches under AltGraph. * feat(web): navigate the sidebar trees with the keyboard Files, Changes, Specs, Chats and Projects share one DOM-driven tree model: one Tab stop per tree on the current row, arrows, Home/End, type-ahead, Enter and Mod+Enter, Shift+F10 for every row menu, Delete through the existing confirmations and F2 for project and workspace rename. The current row carries data-focus-default, so F6 and the focus chords land on it. * fix(web): land a focus chord on the loaded tree, not the toolbar above its skeleton * fix(web): land on the tree's current row and keep tree markup valid A remembered treeitem or tab that stopped being its roving container's tab stop no longer wins the landing. Pointer-only row controls inside a tree are aria-hidden. The AltGraph guard applies only off Apple, where Firefox reports Option as AltGraph. * fix(web): let Mod+Alt+W dismiss an open layer before closing the tab
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
ThinkRail's desktop Monaco source editor provided standard Monaco navigation only. Vim-oriented users lacked familiar motions, Visual selection, marks, jump history, and search while reviewing source files.
The source editor is intentionally read-only, so the feature must not turn source files into editable buffers.
Approach
Add a renderer-local, opt-in Vim controller around the existing desktop Monaco editor. Keep Vim disabled by default, preserve standard Monaco behavior while disabled, and expose only a narrow public hook so the web shell can toggle the focused editor from the command palette without coupling the renderer to shell internals.
The supported command set follows the high-value navigation subset documented by Vim and available in compact Linux Vim builds such as Debian
vim.tiny. Mutation operators, registers, clipboard, Ex commands, undo/redo, macros, terminal behavior, and mobile Pierre rendering remain out of scope because the source surface is read-only.Changes
gg/G,H/M/L,zt/zz/zb, page movement, counts, marks, and jump history./,?,n,Shift+N,*, and#search behavior.CHANGELOG.md, and durable spec updates.Screenshots
Before: desktop Monaco source editor on the base branch, Vim control absent.
After: same scenario and viewport with the Vim control enabled.
Related issues
Closes #1373
Checklist
bun run lint,bun run typecheck,bun run test—bun run lintand targeted package typechecks pass; rootbun run typecheckis blocked by installed Nodev22.23.2while the repository requires>=22.23.4;bun run testhas unrelated baseline/environment failures (one UI IME scan, one web focus-indicator scan, and five server git/process tests).bun run e2e)SPEC.md/ top-level specs updated to reflect any boundary, contract, or behavior change