Skip to content

fix: make result waits abortable - #159

Merged
tintinweb merged 1 commit into
tintinweb:masterfrom
exoulster:master
Jul 22, 2026
Merged

fix: make result waits abortable#159
tintinweb merged 1 commit into
tintinweb:masterfrom
exoulster:master

Conversation

@exoulster

Copy link
Copy Markdown
Contributor

Closes #158.

Summary

  • race get_subagent_result(wait: true) against the tool-call AbortSignal without forwarding cancellation to the background child
  • leave an aborted wait unconsumed so the child can finish and deliver its normal completion notification
  • make queued waits abortable while preserving successful-wait notification deduplication
  • document the Esc behavior and cover running, queued, notification, child-survival, and listener-cleanup behavior through the registered tool

Verification

  • npm run lint
  • npm run typecheck
  • npm run build
  • npm run test (733 passed, 5 skipped)
  • git diff --check

@tintinweb
tintinweb merged commit 4738533 into tintinweb:master Jul 22, 2026
2 checks passed
15wtyuan pushed a commit to 15wtyuan/pi-subagents that referenced this pull request Jul 24, 2026
Resolved conflicts:
- CHANGELOG.md: keep our [Unreleased] block above upstream's [0.14.3]
- README.md: keep SessionView description, adopt upstream tintinweb#155 ●/○ markers
- src/ui/fleet-list.ts: keep renderFleetBar delegation (dropped inline dup)
- src/ui/fleet-roster.ts: adopt tintinweb#155 ●/○ selected/unselected markers
- src/index.ts: keep resolve() name-lookup + adopt upstream tintinweb#159 abortable signal in get_subagent_result; cancelNudge uses record.id
- test/fleet-list.test.ts: keep SessionView tests, drop obsolete ConversationViewer cursor-follow + steer-composer tests (viewer deleted in Task 9)

Tests: 733 passed / 23 failed (all pre-existing Windows-env artifacts; 0 new regressions).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

get_subagent_result wait ignores cancellation

2 participants