Repository navigation
Conversation
…o their thread Since pingdotgg#15219 an omitted bindToCurrentThread binds only in the calling thread's own project; the field description and the orchestration instructions now say so.
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a narrowly scoped guidance and schema-description correction with tests; the scheduler’s actual default behavior and implementation are unchanged. Its only runtime effect is improving agent instructions for cross-project scheduling, with no new capability or production-side effect. No code changes detected at You can add or adjust custom eligibility rules. Learn more. |
…task-bind-default
|
Note Written by Thanks for this. I'm closing it as part of PR triage. Right now we're only taking focused bug fixes from outside contributors (see Read this first), and this PR is not one. From the review: This changes schedule_task descriptions and agent guidance for cross-project runs without changing scheduling behavior. Guidance changes require prior maintainer agreement. If you think this was a mistake, message me on Twitter at @maria_rcks and I'll take another look. |
Problem
Since #15219,
schedule_taskwithoutbindToCurrentThreadposts runs into the calling thread only when the task is in that thread's own project; anywhere else each run launches a fresh thread, and an explicittrueis rejected. The field's published description and the orchestration instructions still tell agents runs return to this thread by default, so an agent scheduling into another project tells the user results will arrive here, and they don't. Closes #16185.Change
Text only, no behaviour change; in the contracts it is an annotation, and the schema type is unchanged. The field description and its JSDoc in
packages/contracts/src/orchestratorMcp.ts, and the sentence inT3_CODE_ORCHESTRATION_INSTRUCTIONS, now state the defaultscheduleTaskapplies, in the terms theschedule_tasktool description already uses. The instructions constant is shared by every provider's path, so one edit covers them all.The triage also points at #15699 (docs) and #15913 (telemetry), which carry the same older assumption. They are open pull requests of their own, so they are left alone here.
Scope and approval
Triaged bug #16185, confirmed on
mainwith these files named: #16185 (comment)Verification
vp test run apps/server/src/mcp/toolkits/orchestrator/tools.test.ts packages/provider-core/src/server/orchestrationInstructions.test.ts: the two new tests fail onmain(2 failed, 10 passed) and pass with the change (12 passed). One reads the schema throughTool.getJsonSchema(ScheduleTaskTool), which is whatMcpHttpServerserves as the tool'sinputSchema; the other reads the instructions constant.The text agents receive, printed from the same two sources.
Before:
After:
The new text matches
scheduleTaskinapps/server/src/mcp/OrchestratorMcpService.ts:input.bindToCurrentThread ?? (parent !== undefined && parent.thread.projectId === projectId), withinvalid_requestfor an explicittruewithout a calling thread or in another project.vp lintandvp fmt --checkon the four files, and the@t3tools/contractsand server typechecks, pass.Not checked: an agent reading the new text in a running app. Nothing but the text changes.
Claude Opus 5.5 via T3 Code