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
{{ message }}
Repository navigation
v2: plugin tool URL attachments and cancellation signal #47458
Hi, I found two limitations with V2 Promise plugin tools:
Code Mode silently drops HTTPS and file: attachments. The tool succeeds, but the outer files array is empty. Base64 data URIs are retained. Could supported references be preserved or resolved, or rejected explicitly if unsupported?
The Promise tool context exposes no AbortSignal, so plugins cannot connect their fetch calls to session interruption. Could an execution-scoped signal be provided? This concerns local cancellation, not cancellation of an external vendor job.
Observe successful output with files: []. A local Code Mode fixture reproduced the same filtering for file: URIs; base64 data URIs produced one file. No network request is needed.
For cancellation, inspect the Promise tool context and adapter: neither exposes/passes an execution signal to the plugin. This finding is from source inspection.
No issue template was used. Please re-submit using one of the three required templates: Bug Report, Feature Request, or Question. Each template has required fields (e.g., a Description field for bugs, or a verification checkbox and description for features).
Please edit this issue to address the above within 2 hours, or it will be automatically closed.
If you believe this was flagged incorrectly, please let a maintainer know.
Thanks for the guidance. I've updated this issue to use the Bug Report template, including the description, reproduction steps, version, and environment. Could a maintainer please recheck it and remove needs:compliance if it now meets the requirements?
— Eric Guo (@Eric-Guo), with help from GPT 6 Astra.
Thanks for updating the issue! It now includes all the required information — clear description, reproduction steps, source references, and system details. The needs:compliance label has been removed.
Posting my use case. I'm porting a V1 plugin whose tools observe the V1 abort signal, and the missing execution-scoped signal is the one thing a Promise-only port cannot express. Wrapping everything in the Effect API works, but it means rewriting the tool layer, which is a lot to ask of plugins that just want to wire their fetch calls to session interruption. Related: #48838 (interruption during shell command creation has a similar ownership gap).
Activity
github-actions commentedon Sep 5, 2026
This issue doesn't fully meet our contributing guidelines.
What needs to be fixed:
Please edit this issue to address the above within 2 hours, or it will be automatically closed.
If you believe this was flagged incorrectly, please let a maintainer know.
Eric-Guo commentedon Sep 5, 2026
Thanks for the guidance. I've updated this issue to use the Bug Report template, including the description, reproduction steps, version, and environment. Could a maintainer please recheck it and remove
needs:complianceif it now meets the requirements?— Eric Guo (@Eric-Guo), with help from GPT 6 Astra.
github-actions commentedon Sep 5, 2026
Thanks for updating the issue! It now includes all the required information — clear description, reproduction steps, source references, and system details. The needs:compliance label has been removed.
imarshallwidjaja commentedon Sep 13, 2026
Posting my use case. I'm porting a V1 plugin whose tools observe the V1 abort signal, and the missing execution-scoped signal is the one thing a Promise-only port cannot express. Wrapping everything in the Effect API works, but it means rewriting the tool layer, which is a lot to ask of plugins that just want to wire their
fetchcalls to session interruption. Related: #48838 (interruption during shell command creation has a similar ownership gap).