feat(ui): collapse either sidebar from a header toggle (config.rs, index.html, main.ts, styles.css, docs) - #122
Merged
Conversation
…dex.html, main.ts, styles.css, docs) 部屋を挟む二つの面(左の「トピック」、右の「アカウント」)を、ヘッダのボタンからそれぞれ畳めるようにする。会話面を広く使いたいときに閉じられる。 - 左のボタンはヘッダ左端、アプリ名「Pullcept」が出ていた位置に置く。あの語は押しても何も起きず、その窓を見ている者に対してその窓が何かを言うだけだった。語は残さず置き換える(Master 判断)。右のボタンはヘッダ右端であり、どちらも自分が畳む列の上に立つ。 - アイコンは縦線の入った角丸の四角であり、縦線は自分が畳む面の側に立つ。二つのボタンは同じ図形を持ち、鏡像にしているのは CSS の一行である(決定4)。 - 畳んだ面は幅 0 で、細い帯は残さない(決定2)。開く手はヘッダに常に在るため、道標としての帯は要らない。 - 面は隠すだけであり、描画の元になる出来事(名簿、席、トピックの索引)は届き続ける。右の面を閉じている間にセッションが落ちても、開けばそう出ている(制約)。 - 開閉の状態は `config.json` の `panels` に残す(決定1)。この欄を持たない既存の設定は両方とも開いた状態として読む——それがこの欄より前のすべての画面が出していた割り付けである。押すたびに書くのは、行儀よく閉じなかった一回で割り付けを失わないためである。 - `Ctrl+B` は左の面だけを開閉する(決定3、AI 判断6)。端末に焦点がある間はこのキーを受け取らない(AI 判断5)——`attachCustomKeyEventHandler` は `Ctrl+V` 以外すべてに `true` を返すため、止めなければ面が畳まれると同時にシェルへ `Ctrl+B` が渡る。端末ペインはセッションのものである(#84)。 - ボタンの読み上げ名は状態で変えず、開閉は `aria-expanded` が言う。`#toggle-diagnostics` と同じ形である。 - `save_config` は設定を丸ごと書くため、アカウントと開閉状態を一本の `saveConfig` から書く。片方しか知らない保存が二本あれば、走るたびにもう片方を落とす。 要求仕様に「サイドバーの開閉」の節と、実機未確認の項目を追加した。 Closes #118 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
smileygames
commented
Aug 28, 2026
smileygames
left a comment
Member
Author
There was a problem hiding this comment.
AI セルフレビュー(execution_mode = auto、#118 に対して)。
受け入れ基準
本文の決定と AI 判断を一つずつ diff で確認した。すべて満たしている。
- 決定1(
config.jsonに保持)—PanelStateをAppConfigに#[serde(default)]で追加。既存のconfig.jsonは欄を持たないが、両方開いた状態として読まれる。既存設定の読み込みは壊れない。 - 決定2(幅 0、帯を残さない)—
#history[hidden], #participants[hidden] { display: none }。両パネルが持つdisplay: flexは UA のhidden規則を上回るため、明示が要るという判断は既存の#diagnostics[hidden]と同じ形で正しい。 - 決定3 / AI 判断6(
Ctrl+Bは左のみ)—windowのkeydownで左だけを開閉。 - 決定4(同じ柄の鏡像)— 二つのボタンが同一の SVG を持ち、鏡像は
#titlebar #toggle-participants svg { transform: scaleX(-1) }の一行のみ。フォールバック(左右同一アイコン)に落ちていない。 - AI 判断5(端末に焦点がある間はキーを譲る)—
terminalEl.contains(document.activeElement)でpreventDefaultの前に return。term.open(host)のhostは#terminalの子であるため、xterm の textarea に焦点がある状態をこの判定が実際に捕まえる。実装として成立している。 - 制約(畳んでも失われない)—
hiddenのみで、購読も描画元のイベントも切っていない。 - 制約(既存の開閉ボタンの作法)— 両ボタンが
aria-expanded/aria-label/titleを持ち、aria-controlsは実在する id を指す。読み上げ名を状態で変えていない点も#toggle-diagnosticsと揃っている。 - ヘッダ左端の
Pullceptは置換済みで、#titlebar .titleの CSS 規則も残っていない。
逸脱
なし。変更は 5 ファイル(docs/0-requirements.md / index.html / src-tauri/src/config.rs / src/main.ts / src/styles.css)で、本文の target files の範囲内。ビルド生成物の混入なし。
saveAccounts → saveConfig への改名と全 4 呼出箇所の追従は、本文に無いが必要な変更である。save_config が AppConfig を丸ごと書くため、片方の欄しか知らない保存が二本あれば互いを落とす。取りこぼしが無いことを grep で確認した。
CI
check / CI ともに success(19cbb0b)。mergeStateStatus = CLEAN。
未確認として残るもの
アイコンの見た目は誰も見ていない。実装者はブラウザ枠が描画を返さなかったため DOM 越しに寸法を測っており(両ボタン 26.4×26.4、端末 と同じ上端、縦線位置は左 0.43 / 右 0.57 で鏡像を確認)、スクリーンショットは取れていない。docs/0-requirements.md の未実装節に実機未確認として記録済み。実機確認はマージの門ではないため、これを理由に止めない。
次: 自己レビュー通過につき、auto モードの直接マージへ進む。
This was referenced Aug 28, 2026
Closed
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.
Closes #118
左右のサイドバーをヘッダのボタンからそれぞれ畳めるようにした。左のボタンはアプリ名「Pullcept」が出ていた位置に置き換え、右のボタンは
端末の並びに置いた。畳んだ面は幅 0 で、状態はconfig.jsonのpanelsに残る。Ctrl+Bは左の面だけを開閉し、端末に焦点がある間はキーを端末へ譲る。アイコンは縦線の入った角丸の四角であり、二つのボタンが同じ図形を持ち、鏡像にしているのは CSS の一行である。要求仕様に「サイドバーの開閉」の節と、実機未確認の項目を追加した。