4.13.0
Highlights
Browsing files stops taking the whole screen, a file's path can be put where you are typing, every keyboard shortcut is finally listed, and a splitter drag no longer gets swallowed by an embedded preview.
- "Browse files in the app" opens the pane, not the full-screen view (#1910, #1911) — the path menu now opens the file pane beside the enlarged terminal, enlarging the cell first if the grid is tiled. A header button you wrote yourself (
"run": "open"withopen.files) still opens the full-screen view, deliberately: a button can carry any path, the pane can only be rooted at the enlarged terminal's directory. - Right-click a tree row to insert its path at the terminal's cursor (#1859, #1912) — Insert relative path / Insert absolute path, landing in the sentence you are already typing.
- Settings lists every keyboard shortcut, bound or not (#1858, #1892, #1894) — read-only on purpose;
keymapis written by themulmoterminal-keysskill, reached from a Set up shortcuts… button that says what the agent does that the screen cannot. Action labels are translated. - A splitter drag is no longer eaten by an iframe (#1899, #1907) — the drag now captures the pointer, so events reach the separator whatever the cursor passes over. Three more endings were closed with it:
pointercancel,lostpointercapture, and a second press on the same bar. Worth recording: the separator tracks the pointer 1:1, so a slow drag never reaches the iframe at all — it takes a fast one, a width already at its floor, or a preview sitting flush against the bar. - The server serves
::1as well as127.0.0.1(#1893, #1903) —localhostresolves to both, and the address the launcher printed was not always the one the browser reached.
Smaller fixes
- Copy button on a rendered code block (#1895, #1908) —
CopyCodeBlockdropped theclassit was passed, so the button lost its styling under a fragment root. - Collision warning names the right winner (#1901, #1906) — with
copyand asendbinding on one keystroke,copyacts only while text is selected, sosendis what fires when nothing is. - Header buttons and chips replace, not merge (#1896, #1904) — the config API replaces the whole array; the
mulmoterminal-headerskill said "partial merge" and users lost buttons they already had. questionPaneEnabledis documented (#1897, #1905) — it existed in the UI, the skills and the coverage test, and in no guide page.browserUrlstays on localhost for two reasons (#1900, #1909) — both written down, with what to do when sign-in will not complete.- Two grid specs stopped making real requests (#1913, #1916) — they mounted components without mocking
fetch; the guard is now a shared helper.
Setup guide: Files beside the terminal, and a path you can insert (日本語) — written at release time, with screenshots.
📦 npm: mulmoterminal@4.13.0
What's Changed
- feat: キー列送信を「知っている人しか辿り着けない」状態から出す (#1858) by @isamu in #1892
- i18n: キーボードショートカット一覧のアクションのラベルを翻訳する (#1894) by @isamu in #1902
- fix: -header skill の指示どおりに書くと既存の buttons / chips が消える (#1896) by @isamu in #1904
- fix: copy と send がキーで衝突したとき、勝者は 1 つに決まらない (#1901) by @isamu in #1906
- docs: questionPaneEnabled を設定ガイドに書く (#1897) by @isamu in #1905
- fix(server): サーバ自身が
::1も serve して、localhost の宛先を一意にする (#1893) by @isamu in #1903 - fix(ui): CopyCodeBlock が渡された class をボタンに届ける (#1895) by @isamu in #1908
- docs(cli): browserUrl が localhost 固定な理由は 2 つある —— Firebase の承認済みドメイン (#1900) by @isamu in #1909
- feat: パスメニューの "Browse files in the app" は全画面ではなく右ペインで開く (#1910) by @isamu in #1911
- feat: ファイルペインのツリー行を右クリックしてパスをターミナルに挿入する (#1859) by @isamu in #1912
- fix: capture the pointer while dragging a splitter (#1899) by @isamu in #1907
- test: gridOpenFiles の spec が実リクエストを 3 本出していたので mock する by @isamu in #1913
- feat: 9 本目のテンプレート magazine — 記事ごとの URL を持つ共有アプリ by @snakajima in #1914
- test: 残り 2 つの grid spec の mock 漏れを塞ぎ、ガードを共有ヘルパに切り出す by @isamu in #1916
Full Changelog: 4.12.0...4.13.0