Repository navigation
Deliver waited-on lifecycle notifications to root and child Claude runs - #106
warp-agent-staging[bot] wants to merge 1 commit into
Conversation
|
This PR was generated with Warp. Comment |
|
This PR was generated with Warp, requested by @seemeroland. Comment |
There was a problem hiding this comment.
Overview
Root and child hooks separate read-only waited-on notifications from mailbox messages and avoid synthetic mailbox acknowledgments. Examined design, correctness, standards, complexity, naming, comments, test value/coverage, and security; no outstanding source findings.
Verdict
Checks: shell syntax pass, tests 46/46 pass, CI green, visual proof n/a.
Found: 0 critical, 0 important, 0 suggestions, 0 nits. Approve the source change; land after #105 and before the client plugin minimum increases.
Responding as eng-factory-slim: Open session · View in factory
## Description Add the additive `WAITED_ON` lifecycle type and `waited_on` detail. The sender identifies the waiting run, independently of parent/child direction. Regenerate checked-in Go bindings. ## Justification Support recipient-owned `run_waited_on` events so both native and third-party agents can learn that another run is waiting for them. Part of warpdotdev/warp-server#21004. ## Sensitive Fields - [x] No sensitive string fields are added. ## Testing Go generation and generated-package tests, Rust build/tests, npm ci, and TypeScript generation pass. Generation used protoc 29.3 and the repository-pinned Go plugin; Rust has no unit tests. ## Related changes and landing order Protocol: #413; server formatting: warpdotdev/warp-server#21731 (after #21020); Claude hooks: warpdotdev/claude-code-warp#106 (after #105); Codex hooks: warpdotdev/codex-warp#11 (after #10); client: warpdotdev/warp#16809 (after both plugin releases). ## Historical parent-stack UI evidence The automated appendix below belongs to earlier web-timeline work in the parent task, not proof of this notification change. New client computer-use verification was explicitly declined. <!-- warp:pr-description-artifacts start --> <!-- oz:computer-use-videos start --> <details> <summary>Computer-use video recordings (8)</summary> [](https://platform.staging.warp.dev/artifacts/01a18f3a-54ae-7ef6-8c52-1ec3c29e5d7b) **Factory Waiting run: open, history, resume, target link**: Opens the seeded Waiting run in the Factory MSW app, inspects history, resumes via mocked state, and follows the target link. [](https://platform.staging.warp.dev/artifacts/01a18f3c-3b2f-768d-b2b2-11f4eb8c173f) **Oz Waiting run: history, resume, target link**: Opens the seeded Waiting run in the Oz MSW app, expands lifecycle history, resumes via mocked state, and follows the target run link. [](https://platform.staging.warp.dev/artifacts/01a18f42-cbb7-7d7c-a007-cf651e9e0681) **Factory waiting trace to resumed trace**: Opens the Waiting Factory trace, inspects the waiting segment tooltip and wait target, mutates the MSW fixture to resumed state, observes separated work segments, and follows the target link. [](https://platform.staging.warp.dev/artifacts/01a1a96a-e113-705f-8b31-b2f6de652e9a) **Factory, Oz and debugger waiting/resumed flows**: Navigating Factory and Oz MSW run pages for waiting and resumed states, expanding timelines, then clicking a target link in the debugger. [](https://platform.staging.warp.dev/artifacts/01a1a96d-dc40-755d-8f3f-956700dfa919) **Factory MSW waiting and resumed traces**: Loads Factory MSW, opens run-msw-idle-gap (waiting on two targets), inspects links and trace, then navigates to run-msw-debugging (resumed working). [](https://platform.staging.warp.dev/artifacts/01a1a96f-af19-7b5a-b641-2c4d9c222e11) **Factory resumed trace tooltips and waiting footer**: Reloads factory.html, navigates client-side to run-msw-debugging, hovers trace segments, and checks footer links, then run-msw-idle-gap. [](https://platform.staging.warp.dev/artifacts/01a1a971-b9a2-779a-97fa-306ec44a9ae7) **Waiting and resumed run traces**: Full reload of Factory MSW entry, client-side navigation to the debugging run and the idle-gap waiting run, showing footer links and trace, then the resumed trace. [](https://platform.staging.warp.dev/artifacts/01a1cd25-cf66-76c6-9ad0-437aefff1c77) **Waiting timeline in Agents app and debugger**: Seeds MSW state for a waiting run, inspects Agents timeline and target links, then the debugger waiting-parent page and child-beta navigation. </details> <!-- oz:computer-use-videos end --> <!-- oz:computer-use-screenshots start --> <details> <summary>Computer-use screenshots (10)</summary>  run-msw-debugging after reload+client nav: single Coding agent Active segment, plain Follow up footer  run-msw-idle-gap: Waiting segment, Idle for 2d 9h gap, footer with child-alpha and child-beta links  Resumed run trace: short historical Waiting segment (1m→2m) at top and long current Active segment after idle gap  Waiting run footer "Waiting for child-alpha and child-beta agents…" with child-beta target (/runs/child-beta?tab=agents&from=parent) in status bar; alpha target is /runs/child-alpha?tab=agents&from=parent  Agents run-msw-1 collapsed timeline: "Agent waiting" with full sentence and two underlined links; Status badge Waiting  Debugger waiting-parent Timeline: Agent waiting event with yellow marker and child-alpha/child-beta links  Debugger child-beta timeline: INPROGRESS run with retained Agent working → Agent waiting → Agent working history  Collapsed Agent waiting row with orange circular pause marker and "waiting for messages from child-alpha, child-beta" sentence  Collapsed Agent blocked row: orange rounded-square-in-circle marker, "The run needs attention before it can continue."  Final state: collapsed Agent waiting row with orange pause marker and child-alpha/child-beta links </details> <!-- oz:computer-use-screenshots end --> <!-- warp:pr-description-artifacts end --> --------- Co-authored-by: warp-agent-staging[bot] <240773466+warp-agent-staging[bot]@users.noreply.github.com>



Description
Activate coordination hooks for Oz-backed root and child runs. Render
run_waited_onrecords as read-only status without parent authority, skip mailbox delivery acknowledgments for synthetic records, and preserve ordinary messages. Reconnects do not restage consumed event sequences. Support current driver-managed listener environment names while retaining legacy aliases.Stacked above #105; preserves its wait skill and bumps the platform plugin from 1.1.4 to 1.1.5. Do not land before that layer. Tracks warpdotdev/warp-server#21004.
Testing
Complete lifecycle hook suite: 46 assertions pass, including root delivery, read-only formatting, synthetic-ack exclusion, ordinary acknowledgments, reconnect/cursor behavior, managed roots, and inert non-Oz sessions. Shell syntax and diff-check pass. Client GUI verification was declined.
Related changes and landing order
Protocol: warpdotdev/warp-proto-apis#413; server formatting: https://github.com/warpdotdev/warp-server/pull/21731 (after #21020); Claude hooks: #106 (after #105); Codex hooks: warpdotdev/codex-warp#11 (after #10); client: warpdotdev/warp#16809 (after both plugin releases).
Historical parent-stack UI evidence
The automated appendix below belongs to earlier web-timeline work in the parent task, not proof of this notification change. New client computer-use verification was explicitly declined.
Computer-use video recordings (8)
Factory Waiting run: open, history, resume, target link: Opens the seeded Waiting run in the Factory MSW app, inspects history, resumes via mocked state, and follows the target link.
Oz Waiting run: history, resume, target link: Opens the seeded Waiting run in the Oz MSW app, expands lifecycle history, resumes via mocked state, and follows the target run link.
Factory waiting trace to resumed trace: Opens the Waiting Factory trace, inspects the waiting segment tooltip and wait target, mutates the MSW fixture to resumed state, observes separated work segments, and follows the target link.
Factory, Oz and debugger waiting/resumed flows: Navigating Factory and Oz MSW run pages for waiting and resumed states, expanding timelines, then clicking a target link in the debugger.
Factory MSW waiting and resumed traces: Loads Factory MSW, opens run-msw-idle-gap (waiting on two targets), inspects links and trace, then navigates to run-msw-debugging (resumed working).
Factory resumed trace tooltips and waiting footer: Reloads factory.html, navigates client-side to run-msw-debugging, hovers trace segments, and checks footer links, then run-msw-idle-gap.
Waiting and resumed run traces: Full reload of Factory MSW entry, client-side navigation to the debugging run and the idle-gap waiting run, showing footer links and trace, then the resumed trace.
Waiting timeline in Agents app and debugger: Seeds MSW state for a waiting run, inspects Agents timeline and target links, then the debugger waiting-parent page and child-beta navigation.
Computer-use screenshots (10)
run-msw-debugging after reload+client nav: single Coding agent Active segment, plain Follow up footer
run-msw-idle-gap: Waiting segment, Idle for 2d 9h gap, footer with child-alpha and child-beta links
Resumed run trace: short historical Waiting segment (1m→2m) at top and long current Active segment after idle gap
Waiting run footer "Waiting for child-alpha and child-beta agents…" with child-beta target (/runs/child-beta?tab=agents&from=parent) in status bar; alpha target is /runs/child-alpha?tab=agents&from=parent
Agents run-msw-1 collapsed timeline: "Agent waiting" with full sentence and two underlined links; Status badge Waiting
Debugger waiting-parent Timeline: Agent waiting event with yellow marker and child-alpha/child-beta links
Debugger child-beta timeline: INPROGRESS run with retained Agent working → Agent waiting → Agent working history
Collapsed Agent waiting row with orange circular pause marker and "waiting for messages from child-alpha, child-beta" sentence
Collapsed Agent blocked row: orange rounded-square-in-circle marker, "The run needs attention before it can continue."
Final state: collapsed Agent waiting row with orange pause marker and child-alpha/child-beta links