目的
参加者の行のライフサイクル操作を、文字から記号の表示へ変える。併せて 終了 の確認を、ボタンの armed 状態から webview 内のダイアログへ移す。
Master の指示(2026-08-24):
開始→▶️ 終了→❌ 編集→⚙️ のラベル表示に変えられる?これは表示だけでいいやつね。
ワンクリックしたら[モーダル]だっけ?[ポップアップ]で本当に終了しますか?を出せばいいんじゃない?
前提
いまの形
三つとも src/main.ts で textContent に文字を入れている。いずれも title を既に持っており、アカウント名を含む説明が出る。
| 操作 |
位置 |
いまの表示 |
いまの title |
| 開始 |
startButton(866行) |
開始 |
{name} のセッションを開始する / 起動中は {name} を起動しています |
| 編集 |
editButton(880行) |
編集 |
{name} の設定 |
| 終了 |
endButton(1168行) |
終了 / armed で 本当に終了 |
{name} のセッションを終了する / armed で もう一度押すと {name} のセッションを終了します。 |
window.confirm を断った記録は二層ある
docs/0-requirements.md:406 と src/main.ts の endButton のコメントに、モーダルを採らなかった理由が二つ書かれている。混ぜて読まないこと。
- ホスト依存の失敗。
window.confirm はホストが答えなかった場合の失敗の向きがどちらも誤りになる——答えを待たない実装ではボタンが黙って死に、既定を肯定と読む実装では一度のクリックで落ちる。
- 状態の置き場所。 ボタン自身がどちらの状態にいるかを表示する形を選び、モーダルが別の場所でそれを言う形を採らなかった。
An arm state held on this side has neither failure, and the button says which state it is in rather than a modal saying it elsewhere.
決まったこと
開始 → ▶️
編集 → ⚙️
終了 → ❌
終了 の確認はダイアログで出す(Master、2026-08-24)。1 クリックでダイアログが開き、そこで「本当に終了しますか?」に答える。
受け入れた代償
上記 2(状態はボタン自身が表示する)を手放す。Master は (a) ❌ のまま色で伝える案・(c) armed のとき文字へ戻す案を含む三択を見た上で、ダイアログを選んだ。決着済みとして扱い、実装時に蒸し返さない。
上記 1 は手放さない。window.confirm は使わない。 #account-dialog と同じく webview 内の <dialog> で持つ。ホストが答えないという失敗の形がそもそも起きない。
この決定が連れてくるもの
armed の機構が丸ごと不要になる。src/main.ts の armedEnd / armedTimer / armedAt / END_SETTLE_MS / armEnd / disarmEnd、showView からの disarmEnd() 呼び出し、src/styles.css:530 の .end.armed。
とくに END_SETTLE_MS(400ms)は、その存在理由ごと消える。src/main.ts:329 がこう書いている——
The armed button is wider than the resting one and grows under the pointer
armed でボタンが広がるためポインタの下に伸び、resting 側を狙ったクリックが armed に当たる。それを捨てるための窓であった。❌ 固定でボタンの幅が動かなくなり、確認が別の面へ出るなら、この前提が無い。
docs/0-requirements.md:315(armed 時の横幅がパネル 16.5rem の中で本人の行の名前を押し出す件)も同じ理由で解消する。
実装の形
未決だった三点を、着手にあたって次のとおり決めた。
制約
window.confirm を使わない。 webview 内の <dialog> で持つ。上記 1 は生きている。
- 押した先で起きることを変えない。 変えるのは確認の出し方だけ。
title を落とさない。 記号だけの表示になるため、アクセシブルな名前として aria-label を併せて持たせる。記号は読み上げに耐えない。
対象ファイル
index.html — 確認ダイアログ
src/main.ts — startButton / editButton / endButton、armed 機構の撤去
src/styles.css — 記号表示に伴う幅・字送り、.end.armed の撤去
docs/0-requirements.md — 行の操作の記述、armed の記述(315行)、window.confirm の節(406行。window.confirm を使わないことと、<dialog> で確認を出すことは別であるため、書き分けが要る)
関連
目的
参加者の行のライフサイクル操作を、文字から記号の表示へ変える。併せて
終了の確認を、ボタンの armed 状態から webview 内のダイアログへ移す。Master の指示(2026-08-24):
前提
いまの形
三つとも
src/main.tsでtextContentに文字を入れている。いずれもtitleを既に持っており、アカウント名を含む説明が出る。titlestartButton(866行)開始{name} のセッションを開始する/ 起動中は{name} を起動していますeditButton(880行)編集{name} の設定endButton(1168行)終了/ armed で本当に終了{name} のセッションを終了する/ armed でもう一度押すと {name} のセッションを終了します。window.confirmを断った記録は二層あるdocs/0-requirements.md:406とsrc/main.tsのendButtonのコメントに、モーダルを採らなかった理由が二つ書かれている。混ぜて読まないこと。window.confirmはホストが答えなかった場合の失敗の向きがどちらも誤りになる——答えを待たない実装ではボタンが黙って死に、既定を肯定と読む実装では一度のクリックで落ちる。決まったこと
開始→編集→ ⚙️終了→ ❌終了の確認はダイアログで出す(Master、2026-08-24)。1 クリックでダイアログが開き、そこで「本当に終了しますか?」に答える。受け入れた代償
上記 2(状態はボタン自身が表示する)を手放す。Master は (a) ❌ のまま色で伝える案・(c) armed のとき文字へ戻す案を含む三択を見た上で、ダイアログを選んだ。決着済みとして扱い、実装時に蒸し返さない。
上記 1 は手放さない。
window.confirmは使わない。#account-dialogと同じく webview 内の<dialog>で持つ。ホストが答えないという失敗の形がそもそも起きない。この決定が連れてくるもの
armed の機構が丸ごと不要になる。
src/main.tsのarmedEnd/armedTimer/armedAt/END_SETTLE_MS/armEnd/disarmEnd、showViewからのdisarmEnd()呼び出し、src/styles.css:530の.end.armed。とくに
END_SETTLE_MS(400ms)は、その存在理由ごと消える。src/main.ts:329がこう書いている——armed でボタンが広がるためポインタの下に伸び、resting 側を狙ったクリックが armed に当たる。それを捨てるための窓であった。❌ 固定でボタンの幅が動かなくなり、確認が別の面へ出るなら、この前提が無い。
docs/0-requirements.md:315(armed 時の横幅がパネル 16.5rem の中で本人の行の名前を押し出す件)も同じ理由で解消する。実装の形
未決だった三点を、着手にあたって次のとおり決めた。
#account-dialogを流用しない。あれはアカウントの編集フォーム(.field/.preview/.launch/.actions)であり、確認とは中身が別物である。一枚の<dialog>に二役を持たせると、開くたびにどちらの姿で開くかの分岐を抱えることになる。確認だけを持つ小さな<dialog>を別に置く。#participants .memberの三つのボタン(.start/.edit/.end、src/styles.css:482)に固定の寸法を与え、記号はその中で中央に置く。.endが armed で広がっていた可変幅は、ここで消える。削除に触れなくても単独で出荷できるため、sibling issue の litmus に従った。制約
window.confirmを使わない。 webview 内の<dialog>で持つ。上記 1 は生きている。titleを落とさない。 記号だけの表示になるため、アクセシブルな名前としてaria-labelを併せて持たせる。記号は読み上げに耐えない。対象ファイル
index.html— 確認ダイアログsrc/main.ts—startButton/editButton/endButton、armed 機構の撤去src/styles.css— 記号表示に伴う幅・字送り、.end.armedの撤去docs/0-requirements.md— 行の操作の記述、armed の記述(315行)、window.confirmの節(406行。window.confirmを使わないことと、<dialog>で確認を出すことは別であるため、書き分けが要る)関連
window.confirmを採らなかった判断。削除の 2 クリックを揃えるか。本 issue から切り出した。