目的
左右のサイドバーをそれぞれ畳めるようにする。会話面を広く使いたいとき、パネルを閉じられる。
観測
2026-08-27、Master が注釈付きのスクリーンショットで要望。
ヘッダ左端の Pullcept という文字は、押しても何も起きない。この位置に左サイドバーの開閉ボタンが欲しい (文字の代わりに置く)。
ヘッダ右側、端末 ボタンの並びに右サイドバーの開閉ボタン も欲しい。
アイコンの形は Claude Desktop のサイドバー開閉ボタン(縦線入りの角丸四角)を参照。
前提
2026-08-27 に main(e698ab4)で確認。2026-08-28 に main(4ea2554、#120 マージ後)で再確認し、以下の記述はいずれもそのまま成立する。行番号は再確認時のもの。
index.html:12 の <header id="titlebar"> は <span class="title">Pullcept</span> から始まり、<span class="spacer">、文字サイズの <select>、<button id="toggle-diagnostics">端末</button> と並ぶ。
開閉するパネルは <aside id="history" aria-label="トピック">(左)と <aside id="participants" aria-label="アカウント">(右)。どちらも #body の flex 行に置かれ、width: 16.5rem; flex: none を持つ。
アイコンボタンの前例が既にある。index.html:141 の #diagnostics-close が aria-label と title を持つ形。
#toggle-diagnostics は aria-expanded を持つ。開閉状態を持つボタンの書き方はここに揃っている。
制約
Pullcept の文字は置き換える(Master 判断)。残して隣に足す形ではない。
既存の開閉ボタン(#toggle-diagnostics / #diagnostics-close)の作法に合わせる。aria-expanded / aria-label / title。
畳んだ状態でも、その中で起きたことが失われないこと。右パネルを閉じている間にセッションが落ちても、開けば分かる状態であること。
決定
2026-08-27 に Master が判断。
開閉状態は永続する。 置き場は config.json。閉じたまま次の起動でも閉じている。
畳んだときは幅 0。 細い帯は残さず完全に消す。開くボタンはヘッダに常にあるため、道標としての帯も要らない。
キーボードショートカットは Ctrl+B。
左右のアイコンは同じ柄の鏡像。 それが作れない場合は左右とも同じアイコンで可(Master 明示のフォールバック)。別の絵にはしない。
決定3が開けたこと(実測付き)
2026-08-27 に main(e698ab4)で確認、2026-08-28 に main(4ea2554)で再確認。Ctrl+B は端末と衝突する。行番号は再確認時のもの。
src/main.ts:2577 の attachCustomKeyEventHandler は Ctrl+V 以外すべてに true を返す。つまり端末はそれ以外のキーを自分で処理する。
したがって window に keydown を足すと、端末にフォーカスがある間も発火する。preventDefault しなければサイドバーが開閉しつつシェルにも Ctrl+B が届く 。
Ctrl+B は端末側で意味を持つ(tmux の prefix、readline の backward-char)。
前例は src/main.ts:3180 の文字サイズキー。window + preventDefault で、「入力中でも効くべきキーなので room ではなく window に置く」と理由が書かれている。ただしあの判断の根拠は webview 自身のズームを止めることであり、端末との取り合いではない。
AI 判断(Master はこれを一行で覆せる)
端末にフォーカスがある間、Ctrl+B は端末のものとする。 アプリは受け取らない。
端末ペインはセッションのものである、という fix(session): a running session becomes unmanageable after the webview reloads #84 の設計を優先する。文字サイズキーの前例は webview のズームを止めるための判断であって、セッションからキーを取り上げる根拠にはならない。サイドバーは端末の外にフォーカスがあるときに開閉できれば足りる。
Ctrl+B が開閉するのは左サイドバー。 Master が参照として挙げた Claude Desktop の割り当てに合わせる。右サイドバーには今回ショートカットを与えない。左右で非対称になるが、キーを一つ発明するよりは、要ると分かってから足すほうがよい。
未決
なし。実装に入れる。
関連
feat(history): split the history into topics, resumable from the list #115 / feat(history): split the history into topics, resumable from the list (room_log, room.rs, session.rs, config.rs, sidecar, index.html, main.ts, styles.css, docs) #116 — 左パネルがトピック一覧になった変更。このボタンはその隣に立つ。
docs: record the settled ui direction and what it leaves open #33 — UI の方向。
目的
左右のサイドバーをそれぞれ畳めるようにする。会話面を広く使いたいとき、パネルを閉じられる。
観測
2026-08-27、Master が注釈付きのスクリーンショットで要望。
Pullceptという文字は、押しても何も起きない。この位置に左サイドバーの開閉ボタンが欲しい(文字の代わりに置く)。端末ボタンの並びに右サイドバーの開閉ボタンも欲しい。前提
2026-08-27 に
main(e698ab4)で確認。2026-08-28 にmain(4ea2554、#120 マージ後)で再確認し、以下の記述はいずれもそのまま成立する。行番号は再確認時のもの。index.html:12の<header id="titlebar">は<span class="title">Pullcept</span>から始まり、<span class="spacer">、文字サイズの<select>、<button id="toggle-diagnostics">端末</button>と並ぶ。<aside id="history" aria-label="トピック">(左)と<aside id="participants" aria-label="アカウント">(右)。どちらも#bodyの flex 行に置かれ、width: 16.5rem; flex: noneを持つ。index.html:141の#diagnostics-closeがaria-labelとtitleを持つ形。#toggle-diagnosticsはaria-expandedを持つ。開閉状態を持つボタンの書き方はここに揃っている。制約
Pullceptの文字は置き換える(Master 判断)。残して隣に足す形ではない。#toggle-diagnostics/#diagnostics-close)の作法に合わせる。aria-expanded/aria-label/title。決定
2026-08-27 に Master が判断。
config.json。閉じたまま次の起動でも閉じている。Ctrl+B。決定3が開けたこと(実測付き)
2026-08-27 に
main(e698ab4)で確認、2026-08-28 にmain(4ea2554)で再確認。Ctrl+Bは端末と衝突する。行番号は再確認時のもの。src/main.ts:2577のattachCustomKeyEventHandlerはCtrl+V以外すべてにtrueを返す。つまり端末はそれ以外のキーを自分で処理する。windowにkeydownを足すと、端末にフォーカスがある間も発火する。preventDefaultしなければサイドバーが開閉しつつシェルにもCtrl+Bが届く。Ctrl+Bは端末側で意味を持つ(tmux の prefix、readline の backward-char)。src/main.ts:3180の文字サイズキー。window+preventDefaultで、「入力中でも効くべきキーなので room ではなく window に置く」と理由が書かれている。ただしあの判断の根拠は webview 自身のズームを止めることであり、端末との取り合いではない。AI 判断(Master はこれを一行で覆せる)
Ctrl+Bは端末のものとする。 アプリは受け取らない。端末ペインはセッションのものである、という fix(session): a running session becomes unmanageable after the webview reloads #84 の設計を優先する。文字サイズキーの前例は webview のズームを止めるための判断であって、セッションからキーを取り上げる根拠にはならない。サイドバーは端末の外にフォーカスがあるときに開閉できれば足りる。
Ctrl+Bが開閉するのは左サイドバー。 Master が参照として挙げた Claude Desktop の割り当てに合わせる。右サイドバーには今回ショートカットを与えない。左右で非対称になるが、キーを一つ発明するよりは、要ると分かってから足すほうがよい。未決
なし。実装に入れる。
関連