feat(glasspane): runtime-aware ingestion so zot panes parse precisely (Sam & Claude) #29

Merged
clawdie merged 1 commit from feat/glasspane-zot-runtime-ingest into main 2026-06-13 10:53:45 +02:00
Owner

The daemon already spawns agents and streams stdout JSONL into the glasspane
(cmd_spawn_agent: take_stdout + attach_pane + stream_agent_stdout_to_glasspane),
but the streaming ingestor was Pi-only — zot panes were only incidentally
correct (shared lifecycle names) and dropped zot's tool/streaming events to the
default arm.

  • PiJsonlIngestor: add a runtime field; ingest_line_at normalizes via
    zot_event_type for Zot panes (tool_use_* -> tool_execution_*, response
    success:false -> error, response/usage -> skipped), raw type for Pi/Local.
  • SupervisedPane::new_with_runtime + PaneSupervisor::attach_pane_with_runtime
    (existing new/attach_pane_at delegate with Pi — no behavior change).
  • socket.rs cmd_spawn_agent: derive runtime from the binary basename
    (zot -> Zot, else Pi) and attach the pane with it. The stdout streamer is
    unchanged — it now ingests with the pane's runtime.

Tests: 34 pass incl. a new runtime-aware test feeding RAW zot lines (tool_use_*,
turn_end) through PaneSupervisor.ingest_line_at -> Working mid tool-loop, Done at
turn_end. clippy -D warnings clean.

Completes the daemon spawn -> glasspane wiring for zot (ADR migration step).

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

The daemon already spawns agents and streams stdout JSONL into the glasspane (cmd_spawn_agent: take_stdout + attach_pane + stream_agent_stdout_to_glasspane), but the streaming ingestor was Pi-only — zot panes were only *incidentally* correct (shared lifecycle names) and dropped zot's tool/streaming events to the default arm. - PiJsonlIngestor: add a `runtime` field; ingest_line_at normalizes via zot_event_type for Zot panes (tool_use_* -> tool_execution_*, response success:false -> error, response/usage -> skipped), raw type for Pi/Local. - SupervisedPane::new_with_runtime + PaneSupervisor::attach_pane_with_runtime (existing new/attach_pane_at delegate with Pi — no behavior change). - socket.rs cmd_spawn_agent: derive runtime from the binary basename (`zot` -> Zot, else Pi) and attach the pane with it. The stdout streamer is unchanged — it now ingests with the pane's runtime. Tests: 34 pass incl. a new runtime-aware test feeding RAW zot lines (tool_use_*, turn_end) through PaneSupervisor.ingest_line_at -> Working mid tool-loop, Done at turn_end. clippy -D warnings clean. Completes the daemon spawn -> glasspane wiring for zot (ADR migration step). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
clawdie added 1 commit 2026-06-13 10:53:34 +02:00
feat(glasspane): runtime-aware ingestion so zot panes parse precisely (Sam & Claude)
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
6c6420ff2a
The daemon already spawns agents and streams stdout JSONL into the glasspane
(cmd_spawn_agent: take_stdout + attach_pane + stream_agent_stdout_to_glasspane),
but the streaming ingestor was Pi-only — zot panes were only *incidentally*
correct (shared lifecycle names) and dropped zot's tool/streaming events to the
default arm.

- PiJsonlIngestor: add a `runtime` field; ingest_line_at normalizes via
  zot_event_type for Zot panes (tool_use_* -> tool_execution_*, response
  success:false -> error, response/usage -> skipped), raw type for Pi/Local.
- SupervisedPane::new_with_runtime + PaneSupervisor::attach_pane_with_runtime
  (existing new/attach_pane_at delegate with Pi — no behavior change).
- socket.rs cmd_spawn_agent: derive runtime from the binary basename
  (`zot` -> Zot, else Pi) and attach the pane with it. The stdout streamer is
  unchanged — it now ingests with the pane's runtime.

Tests: 34 pass incl. a new runtime-aware test feeding RAW zot lines (tool_use_*,
turn_end) through PaneSupervisor.ingest_line_at -> Working mid tool-loop, Done at
turn_end. clippy -D warnings clean.

Completes the daemon spawn -> glasspane wiring for zot (ADR migration step).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
clawdie merged commit 604f1c8088 into main 2026-06-13 10:53:45 +02:00
clawdie deleted branch feat/glasspane-zot-runtime-ingest 2026-06-13 10:53:45 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: clawdie/colibri#29
No description provided.