Repository navigation
Conversation
Owner
Author
|
Optional RPC robustness improvement: validate a present error object and exact integer code before accessing fields. Malformed null/array/string errors or missing/null/bool/float/string/container codes enter the existing unknown/no-resend path when a submission was attempted, not traceback or a false success. Existing supported-code refusal semantics remain. 28 in-memory RPC tests pass on Python 3.9.6 and 3.13.7; default discovery and generation checks pass. No actual app-server/model/TUI/ACK or instant-interrupt setting was exercised. Experimental feature gates remain outstanding; Draft retained, no merge/release/deployment. |
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.
Summary
Add a local-only experimental steering adapter and an opt-in native/synthetic-provider comparison harness. Refs #247; the issue stays open and this PR remains Draft. Existing-owner side-session research is tracked separately in #245/#246.
The adapter connects to a private owning app-server and uses
turn/steerwith an exactexpectedTurnId. It preserves the same turn and never starts/interrupts/resumes a target, changes a feature, answers approvals, falls back or resends. Metadata dry-run does not prove that the expected turn is still active. Acceptance is not consumption or ACK.Malformed/contradictory RPC envelopes, invalid error fields and excessive JSON nesting fail with fixed diagnostics; invalid replies after an attempt remain unknown/no-retry. Ordinary connection-close errors cannot erase independently known submission or the original unknown outcome.
The native harness shares one 45-second active-work budget across startup, RPCs and provider waits. Its watchdog sends TERM then KILL after a 0.2-second grace, keeping the leader unreaped until the watchdog has joined. The version probe has a separate five-second timeout. Cleanup has additional bounded waits; these are application budgets, not guarantees against blocked OS calls.
Only
experiments/codex_steering/changes. Installed runtime, native queue, SSH/Relay, package configuration and operational settings are unchanged.Validation
Historical evidence and remaining gates
experiments/codex_steering/RESULTS.mdpreserves the Codex 0.159.2 native ON/OFF comparison against sourceff6aec96948b70d94983af2641a6b67c94faeff5: four conditions with three repetitions each passed using synthetic SSE responses. ON steering produced a second request before release of the first-response gate; OFF steering and either queue condition waited for release. Steering retained the turn, while queue started a new turn. This historical matrix was not rerun for the current hardening changes and does not establish real-provider ACK or latency.Remaining gates include real-provider/code-mode behavior, existing-owner lifecycle/authorization, current effective feature policy, framing/Reply-To integration, concurrent turn replacement, SSH/Linux/Windows, and any newer native version.
expectedTurnIddoes not prove a session generation or side-UI lifetime. No general-support promotion, merge, publication or operational rollout is included.