feat(agents-api): admit active self-hosted text inputs - #616
Merged
Merged
Conversation
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.
Self-hosted Sessions accept text messages during an active Turn. Previously every new message reached the idle reservation gate and active work returned 409. The existing Session transaction now recovers original receipts first, appends a new batch to the active Turn, or retains idle preparation when no Turn is active.
Active input creates no Turn or reservation. The change reuses canonical batches, existing input indexing and native delivery. Matching retries after completion or during later work retain their original target. Pending reservations keep their gate/deadline, and mixed events remain unsupported. No schema/query, daemon/native protocol, dependency, product or model-loop change.
Validation: fixed SDK/raw HTTP with real PostgreSQL reproduces baseline 409 and passes candidate 204; controlled atomic batches, concurrent retries, rollback, scoped access and original receipt behavior pass. The prepared Worker test observes ordered steering frames and acknowledgements. Both forced Session-lock orders pass: active input retains its Turn and blocks stale completion; completion first reserves new work for preparation. Relevant focused race/client regressions passed (71.6 s). OpenAPI regenerated and the new SDK fixture is selected in CI. Controlled execution observations are synthetic.
Final validation at e0c29c3: isolated build, official-client suite, full make check (393.5 s) and applicable CI passed. Real MiniMax acceptance completed four Turns: two self-hosted Turns prove unpredictable active text, exactly one native Accepted receipt and matching application cursor, remote command/file effects, cold continuation and safe old-input retry; two none Turns prove restart/key-rotation regression. SDK/raw live observations match 92 payloads and query recovery passed. Fresh independent full-diff review found no actionable issues; heavy/native results were inspected from retained evidence, not rerun by the reviewer.
Scope and limitations: text-only active batches on the supported Codex self-hosted profile. HTTP 204 acknowledges durable admission, not native application. Mixed events, broader content, complete tool-set/Usage/cancellation/crash recovery, remote file resources and other placements remain required separate tasks. No complete compatibility claim.
Task: ENV-PUBLIC-STEER-001 under ATOM-007. Requirements, full-board assessment, source/attempt/check evidence and delivery records are retained under ~/.parsar/remediation/20260915/environment-public-steering on zju_a100_2. Protocol parents remain open.