Repository navigation
Run all AI work through YAML workflows - #8
Merged
Merged
Conversation
Route task, review, assessment and question-helper turns through embedded YAML definitions and the pinned agent-workflow executor. Retain native Codex session controls, selected skills and invocation authority through an interactive provider adapter. Keep recovery and uncertain delivery owned by the application ledger. Record private status-only workflow checkpoints, reject invalid structured results without replay, and propagate workflow failures to callers. Preserve Starting during launch and answered-question continuation admission. Map workflow definitions and regression assertions in the maintained specifications.
Reject pending native replies after durable interruption intent, before claiming the request or saving its answer. Provider completion can arrive after the interrupt RPC returns, so the pending flag alone is insufficient. Preserve retained async and textual question recovery. Map the interruption boundary and deterministic barrier regression in the UI and answer flow specifications. The regression fails without the guard; focused race checks and 20 repeated MCP stale-recovery cases pass.
The fallback reaches idle before its final recovery event is journaled. Wait for that completion before measuring the next preparation event count, preserving the existing event assertion. The preparation case passes 100 repeated race-enabled runs, with all 11 surrounding review tests passing.
Expose failed interactive workflow finalization through the existing callback using originating turn/thread identities and a generic diagnostic. Preserve native terminal timing, follow-up admission and ledger recovery. Release execution ownership before diagnostic delivery so shutdown cannot join a callback waiting for its session lock. Exercise late persistence failures, active follow-up, shutdown and private checkpoint serialization with fixture regressions. Map the assertions and completed-turn boundary in the affected flow contracts.
Restore inactive state when admission cannot be saved before dispatch, while retaining an acknowledged active turn when the later save fails. Roll back only still-starting state so terminal outcomes remain intact. Keep the durable answer claim authoritative and never replay a sent turn. Use storage-fault regressions to separate unsent and acknowledged cases. Check journal history so queued notifications cannot hide a false idle transition, and map these assertions into the recovery contracts.
Return setup persistence errors through a deferred-unlock scope before failing the test. Fixture shutdown can then acquire the session mutex on either error path. Preserve the admission and recovery-claim assertions. The admission and storage-failure cases pass 20 repetitions each under the race detector.
Share acknowledgement acceptance across both admission paths. Stop the admission cancellation callback before transferring observation to the retained client, and reject canceled admission or client lifetime before decoding a successful acknowledgement. Never replay native work. Exercise a buffered acknowledgement against an in-progress cancellation callback, successful admission followed by caller cancellation, and client shutdown. Preserve early completion, structured validation and diagnostics.
Give each startup, turn, follow-up and interrupt RPC a fresh ten-second test deadline. Retain the client lifetime separately so caller cancellation and shutdown assertions still exercise the intended ownership transfer. Blocked initialization, thread and turn probes fail locally with cleanup before the package timeout. Preserve the existing behavior assertions.
Validate structured provider output against its YAML-owned schema using the existing schema library. Reject numeric upper limits missed by the pinned executor without repairing output, replaying work or exposing response data. Refuse external schema loading and preserve the executor dependency pin. Exercise independent priority/confidence violations and exact boundaries through the actual provider fixture. Synchronize Close entry in the blocked checkpoint test and verify sensitivity with a private no-drain mutation.
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.
Issue
Only issue investigations used YAML workflows. Regular tasks, PR reviews, priority assessments and question-recovery helpers started model turns directly, leaving their execution contracts in application code.
Fix
Run every model-producing turn through embedded YAML definitions using the pinned agent-workflow Go executor. Move priority and helper response schemas into their workflow definitions, reject invalid results without automatic repair, and propagate workflow failures to callers.
Preserve retained Codex sessions, selected skills, models, modes, sandbox and publishing authority, native questions and approvals, steering, interrupts and restart recovery. Keep launches and answered-question continuations in Starting until their provider turn is acknowledged. Update specification mappings and generated reconciliation records.
Decisions