--- status: resolved claimed-by: "019fc05b-7c70-7d68-af2b-89e9b6b17950" claimed-at: "2026-08-01T22:44:20-04:00" resolved-at: "2026-08-01T22:56:57-04:00" parent: "[[094-pi-subagent-result-delivery-spec-task|Pi subagent result delivery specification]]" blocked-by: - "[[096-pi-subagent-labeled-work-items-implementation|Pi subagent labeled work items]]" tags: - ticket/implementation --- # Pi subagent child activity capture ## Question Capture structured child RPC or session activity in the subagent runner and supervisor so last-activity summaries and read-only inspection can be driven from current-session state. ## What to build The child runner and supervisor should retain structured current-session activity events instead of only a coarse last event name. The captured model should support concise last-activity summaries for status/list/widget output and preserve enough message and tool lifecycle information to render a basic Pi-like child transcript later. Existing final-result collection through `get_last_assistant_text` should continue to work. ## Acceptance criteria - [x] Child records retain structured activity events from RPC or session data. - [x] Activity capture includes enough message and tool lifecycle data to reconstruct a basic Pi-like child transcript. - [x] Status or list output can expose a concise current activity summary without dumping transcript bodies. - [x] Final result completion through `get_last_assistant_text` still works. - [x] Tests cover event capture, ordering where relevant, and state updates. ## Implementation Notes Use the existing RPC event stream as the first feed. Do not assume an embeddable promptless `InteractiveMode` exists. Implemented on branch `subagent-labels` in commit `ede3c05 feat(pi): capture subagent activity events`. The RPC runner now forwards structured event payloads, the supervisor retains full current-session activity events behind `Supervisor.activity`, and status/list/widget surfaces expose summary-only `currentActivity` and `activityHistory` data. Verification passed with `nix shell nixpkgs#nodejs_24 nixpkgs#tsx -c tsx --test modules/agents/pi/extensions/subagents/supervisor.test.ts modules/agents/pi/extensions/subagents/runner.test.ts modules/agents/pi/extensions/subagents/ui.test.ts modules/agents/pi/extensions/subagents/config.test.ts` and `nix flake check`. Review found no blocking findings. A non-blocking risk note remains that full activity retention is unbounded in process memory for the current session.