Repository navigation
refuse unknown helper answers and keep the process host up under bursts - #451
Merged
Merged
Conversation
Answering a helper under a question id that no pending question has failed with the asker's one-question refusal, so the parent model was told to "ask one question per turn". It now fails `TaskControlRefused` with reason `unknown-question` and its own pinned text pointing at `task_status`. `harnessCodeOf` gives `TaskMissing`, `TaskConflict` and each task control reason a code of its own (`TAGGED_REASON_CODES`), so a process-host `answer` refusal carries a `frameworkCode`. The Tasks kit's answer check catches the old behaviour. The stdio peer no longer fails a writer at once when every pending slot is taken: it waits for a free slot for at most `writeTimeoutMs`, and disposal wakes waiting writers with `Closed`. In full event mode an event whose content is not JSON is sent as its labelled projection instead of stopping the connection. The real subprocess journey now checks that a steer reaches the running turn's next model call and pins how each runtime exits after the parent closes stdout; the protocol reference states that Bun reports such writes as successful. LangSmith export gains `workspaceId` for keys linked to several workspaces (LangSmith's `X-Tenant-Id`) and names an LLM run's priced model in `langsmith.metadata.ls_model_name`; the protocol option documents that LangSmith documents protobuf. Every package's model-facing text table cites the lines that hold each text and its pin again.
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.
What
answer_task(andTasks.answer) under a question id that no pending question has now failsTaskControlRefusedwith reasonunknown-questionand its own pinned text, which points the parent attask_status; before, it got the child's "ask one question per turn" refusal.harnessCodeOfgivesTaskMissing,TaskConflictand each task control reason a code of its own (TAGGED_REASON_CODES), so a process-hostanswerrefusal now carries aframeworkCode. The Tasks kit'sanswercheck catches the old behaviour.@xandreed/process-host: a writer that finds every pending slot taken waits for a free one for at mostwriteTimeoutMsinstead of failing at once withCapacity(which stopped the whole host); peer disposal wakes waiting writers and reportsClosed. TheProcessPeerkit'swriter-capacitycheck now requires the wait, with a self-test of a peer that refuses at once.EPIPE); Bun 1.3 reports the write as successful and exits 0. The protocol reference states this precisely.workspaceIdselects the workspace of a key linked to several (sent as LangSmith's documentedX-Tenant-Id). LLM runs carrylangsmith.metadata.ls_model_name(response model, else request model, never over a host-set value), the metadata LangSmith prices by. Theprotocoloption documents that LangSmith documents protobuf only.AGENTS.md"Model-facing text" table cites the lines that hold each text and its pin again (plugin-tasks, plugin-agent-loop, plugin-models, plugin-tool-discovery, plugin-workspace, core, sdk), after earlier changes moved them.TaskControlRefused.reasongainsunknown-question;TAGGED_CODESgainsTaskMissingandTaskConflict; seven new task codes. No stored shape changes.Checks
bun run typecheck: passbun test: 3666 pass, 5 fail under shared machine load (timeouts in foundry gate fixtures, a media-store kit, a sessions kit and a step-loop kit, all outside this change); each passes when re-run alonebun run foundry demo,build:packages,verify:packages(Node 24 and Bun, including the new process-host journey keys),docs:generate(no diff),bun run --cwd packages/website check: pass