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.
Contributor
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. You can add or adjust custom eligibility rules. Learn more. |
…task-bind-default
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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