Bridge sessions.send: additive keys and wait params #344

Open
opened 2026-09-22 14:37:30 +09:00 by natsukium · 0 comments
Owner

Parent: #326 item 3 (bridge = explicitly smaller session-automation surface).

sessions.send on the bridge takes session, text, raw only. The CLI's --key <chord> and --wait [--timeout] have no bridge counterpart. The old op_send comment said a chord needs the session's live keyboard modes on the client; that is false: InputMsg::Key is admitted on an attached Ops link and the daemon encodes it against the modes it owns (felis.proto arm key = 10, session_task.rs). The omission is surface policy, and both are additive optional params under the v:1 rule, so they were not added blind before the freeze.

Scope

  • keys: [<chord>, …] on sessions.send: same chord grammar as --key (parse_chord_arg), same InputMsg::Key after the text, same 32-byte cap and invalid_request refusal.
  • wait: true / timeout: <secs> on sessions.send: the CLI's prompt-mark wait; the result gains exit_code as send --wait does. Needs the bridge's per-session link to subscribe before the input is injected, as cmd_send does.
  • felis-bridge-v1.schema.json regenerated (additive), cli.md bridge op table, skills/felis bridge bullet, golden conversations.

Do this when a bridge client needs it; nothing in the tree does today.

Parent: #326 item 3 (bridge = explicitly smaller session-automation surface). `sessions.send` on the bridge takes `session`, `text`, `raw` only. The CLI's `--key <chord>` and `--wait [--timeout]` have no bridge counterpart. The old `op_send` comment said a chord needs the session's live keyboard modes on the client; that is false: `InputMsg::Key` is admitted on an attached Ops link and the daemon encodes it against the modes it owns (`felis.proto` arm `key = 10`, `session_task.rs`). The omission is surface policy, and both are additive optional params under the `v:1` rule, so they were not added blind before the freeze. ## Scope - `keys: [<chord>, …]` on `sessions.send`: same chord grammar as `--key` (`parse_chord_arg`), same `InputMsg::Key` after the text, same 32-byte cap and `invalid_request` refusal. - `wait: true` / `timeout: <secs>` on `sessions.send`: the CLI's prompt-mark wait; the result gains `exit_code` as `send --wait` does. Needs the bridge's per-session link to subscribe before the input is injected, as `cmd_send` does. - `felis-bridge-v1.schema.json` regenerated (additive), `cli.md` bridge op table, `skills/felis` bridge bullet, golden conversations. Do this when a bridge client needs it; nothing in the tree does today.
Commenting is not possible because the repository is archived.
No description provided.