Skip to content

feat(room): tell a busy seat what the other seats are doing #412

Closed as not planned

Description

@liplus-lin-lay

目的

同じ部屋の席が、同じ投稿に同時に動き始めて同じ調べ物をし、片方が say_to_room で弾かれて黙る、という無駄を減らす。動いている席に、ほかの席の今の様子を一行だけ届け、相手がもう動いていることを作業の途中で分かるようにする。

前提

  • 席の様子はアプリの中にもうある。Claude Code の席は hook(crates/mcp-config/src/hook_activity.rs、feat(status): show tool use, subagents and permission waits for Claude Code seats from hooks #331)、app-server 方式の Codex の席は app-server の知らせ(crates/mcp-config/src/codex/activity.rs)から読み、どちらも同じ seat-activity 事象として画面へ送っている(src-tauri/src/hook_activity.rs:170・:206、src-tauri/src/codex_app_server.rs:192)。
  • 投稿は、アプリが席の端末へ打ち込んで届けている。channel の push は使っていない(sidecar/src/index.ts:15-28、spec(room): deliver every post through the terminal with a role on the label, and retire the channel #195)。作業中の席には、打ち込まれた行が道具と道具のあいだで届く。
  • 2026-10-14 の夜の部屋では、Lin と Lay がほぼ同じ文を同時に書き、何度も弾かれた。高くついていたのは、二人で同じ実物を開きに行く調べ物のほうだった(部屋の会話)。

決めたこと(Master、2026-10-14)

  • 部屋の記録には残さない。その席の端末にだけ打ち込む一行にする。

  • 一行目の札の形([pullcept] {JSON})を崩さず、role で投稿と分ける。投稿ではないので message_id は付けず、last_seen には使わない。

    [pullcept] {"role":"status","seats":{"Lay":"writing","Lin":"delegating"}}
    
  • 言葉は英語。idle / thinking / writing / tool / delegating / permission / limited(画面の札の 待機・考え中・出力中・ツール・委任中・許可待ち・制限中 に対応)。

  • 最低限から試す。「どの投稿に対して」「どちらが先に動いたか」は今回は入れない。

制約

  • 送るのは、受け取る席が動いている間だけ。何もしていない席に打ち込むと、それだけで一ターン始まってしまう。
  • 送るのは、ほかの席の様子が変わったときだけ。毎回送ると、受け取る側の文脈が埋まる。
  • 許可待ちの席には打ち込まない。今の預かり(crates/mcp-config/src/prompt_hold.rs)と同じ扱いにする。
  • 自分の席の様子は載せない。

試すときに見ること

  • ほぼ同時に動き始めた二席が、お互いに「相手が動いている」を見て、二人とも黙ることがあるか。起きたら、動き始めの時刻を足す。
  • 席が動いている間に打ち込んだ一行が、ターンの終わりまで読まれずに残り、次のターンを始めてしまうことがあるか。

対象のファイル(見込み)

  • src-tauri/src/hook_activity.rs・src-tauri/src/codex_app_server.rs(様子の変化を受けて打ち込む)
  • crates/mcp-config(一行の組み立てとテスト)
  • sidecar/src/index.ts(部屋の instructions に role: status の意味を足す)
  • docs/1-room.md・docs/4-status.md

— Claude Lin

Activity

  1. added
    enhancement新機能・改善要望
    ready本文が実装開始できる形まで収束している状態。ただし更新は継続可能
    in-progress着手中、実装または検証が進行中
    on Oct 13, 2026
  2. added
    review-pending実装フェーズ終了、orchestration (review / merge / close) 待ち
    and removed
    in-progress着手中、実装または検証が進行中
    on Oct 13, 2026
  3. liplus-lin-lay commented on Oct 14, 2026

    @liplus-lin-lay
    MemberAuthor

    閉じる理由:#413 で入れた形(様子の一行を席の端末へ打ち込む)は、待機中の席を起こして、席どうしで起こし合う輪になったため #414 で取り消した(2026-10-14 06:56 の実機)。そのあと「返信の前に順番を予約する」案も検討したが、Master の判断(2026-10-14)で今の形を続ける。今の「投稿のときに下書きを預かって弾く」形のほうが単純で、二席が重ねて調べることにも実際に効き目がある。コストはかかるが、それを受け入れる。

    作り直すときの条件:待っている席には何も打ち込まないこと。

    — Claude Lin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancement新機能・改善要望ready本文が実装開始できる形まで収束している状態。ただし更新は継続可能review-pending実装フェーズ終了、orchestration (review / merge / close) 待ち

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions