You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-up from PR #16 (Pi 0.80.8 spawn runtime compatibility). These behaviors predate that compatibility repair and should be addressed separately from its renderer, thinking-reporting, and compatibility-script fixes.
Replace or constrain name-only inheritance so a documented inherited tool is present in the actual child registry with the intended implementation.
Prevent same-name rediscovery from silently substituting different child semantics.
Explicitly omit or diagnose unsupported source channels.
Update README wording to distinguish allowed names, actual registry entries, and semantic inheritance.
Add real-child integration tests for SDK-only, inline/dynamic, additional-path, and same-name collision cases.
Cancellation reason preservation
When signal cancellation occurs and prompt() resolves without assistant text, return an aborted outcome with the supplied reason before applying the generic no-output fallback.
Add regressions for cancellation with no text, cancellation after partial text, genuinely empty non-cancelled output, and existing stale/error precedence.
Acceptance criteria
Every tool documented as inherited executes the intended parent-visible implementation in a real child session.
Unsupported tool sources are explicitly excluded or diagnosed rather than silently allowlisted.
Parent overrides cannot silently become same-named builtins or rediscovered extensions in the child.
Empty-output signal cancellation preserves outcome: "aborted" and the cancellation reason.
Non-cancelled empty output and stale/error precedence retain their current behavior.
Non-goals
Serializing arbitrary closures or extension state without an explicit support decision.
Redesigning cleanup-error observability.
Handling hypothetical future rejection from Pi's currently non-rejecting AgentSession.abort().
Context
Follow-up from PR #16 (
Pi 0.80.8 spawn runtime compatibility). These behaviors predate that compatibility repair and should be addressed separately from its renderer, thinking-reporting, and compatibility-script fixes.Scope
Executable tool inheritance
customTools, inline/dynamic extension factories, CLI/additional extension paths, and custom resource-loader state.Cancellation reason preservation
prompt()resolves without assistant text, return an aborted outcome with the supplied reason before applying the generic no-output fallback.Acceptance criteria
outcome: "aborted"and the cancellation reason.Non-goals
AgentSession.abort().