A structured local activation now accepts continuation messages, but its terminal predicate checked only delegated children. A correction accepted during the model request could therefore remain in either Inbox queue while the earlier response committed structured_output. The loop later consumed the correction, but the terminal tool guard prevented revising the captured value, so callers could receive the obsolete answer as completed work. Require both Inbox queues to be empty as well as all owned children to be released before staging a structured result. Keep input admission closed from that synchronous staging point through authoritative result policy, including the enclosing PTC result. Derive this admission state from the existing staged, pending, and captured records instead of introducing a second lifecycle controller. Failed results delete their stage and reopen input; successful capture keeps the existing terminal behavior. Caller-owned delivery, complete final text, descendant ownership, and cold resume remain unchanged. Add deterministic barriers for accepted steering and queued input, and for Native/PTC post-execute acceptance and rejection. All six new cases failed against the unchanged runtime for stale results or incorrectly accepted late input, then passed with the fix. Extend the authored headless structured scenario to reject answer 41, consume a parent correction, and commit 42. Its two own schema sidecars also need the current master bash/edit/write definitions: retaining their previous definitions fails verifyHeaders on this pinned base. Update the owning bilingual result-admission documentation. Validation: - pnpm run build:native-system - pnpm exec vitest run packages/subagent/subagent/tests/structured.spec.ts packages/subagent/subagent/tests/continuation.spec.ts packages/subagent/subagent/tests/external-activation.spec.ts (214 passed) - pnpm run test:snapshot:refresh snapshots/session/headless.snapshot.ts -t subagent-structured-parent - pnpm run test:snapshot snapshots/session/headless.snapshot.ts -t subagent-structured-parent (1 selected scenario passed) - pnpm run test:docs (21 gates passed) - pnpm run doc-sync (42 gates passed) - pnpm run lint completed its host build; after correcting test deferred generic types, pnpm run lint:contracts-ready passed - git diff --check
description, kind
| description | kind |
|---|---|
| The test-support group map: keyless test harnesses, LLM mock and replay servers, and Loader smoke helpers for developers writing and running repository tests. | package-group |
packages/test-support
English | 中文
Summary
The test-support group gives repository tests deterministic, keyless ways to exercise the real product. It includes Loader application harnesses, session-log snapshot adapters, a replay LLM plugin, and a scriptable OpenAI-compatible fault server. Each package is support-tier infrastructure; a package moves out of this group when it gains a product contract and product consumers.
Table of Contents
Packages
| Package | Role |
|---|---|
session-snapshot |
Provides session-log snapshot support and protocol adapters for profile-driven tests |
agent-loop-testkit |
Provides the shared prerequisite services for tests that exercise the concrete AgentLoop |
client-runtime |
Provides the jsdom slot test bench for browser feature specs |
remote-mock |
Provides the endpoint-named Typert Remote mock and the Connection carrier face whole-client specs install |
loader-smoke |
Boots Loader-composed applications and drives fixture turns for smoke tests |
llm-mock-server |
Provides a scriptable OpenAI-compatible fault server for recovery tests |
llm-replay |
Replays recorded model streams for keyless tests and demos |
Related documentation
- Testing policy — the keyless snapshot tier these harnesses serve and when it is required.
- Package groups — how support groups relate to the product groups.
Dev Note
Working context for maintainers — click to expand
None.