Repository navigation
Follow up on workflow runs that end blocked or failed between turns - #444
Merged
Merged
Conversation
When a Planner's workflow run ended blocked or failed after the turn that started it, Atomic's lifecycle notice asked the idle session to start a turn on its own. The adapter only forwards events while Chopin runs a turn, so that turn reached the model but nobody saw or recorded it, and Chopin let the kept session go as soon as no run was live. Chat showed only the run card and its "ended blocked" line. Chopin now starts a Planner turn itself when a run it owns ends blocked or failed between turns, with the run's end line as the turn's reason, and keeps the session until that turn has run. A run that ends during the Planner's own turn still reaches it through Atomic's in-turn notice, so it starts no extra turn. The adapter stops any turn Atomic starts on its own and waits for it to settle before running Chopin's next prompt. Assistant-model: Claude Opus 5.5 (fast) Assistant-workflow: inline Assistant-duration: 8m converged, estimated unmeasured Assistant-verification: bun test red/green passed: chat/invoke.test.ts "ends blocked between turns" fails without the service change and passes with it Assistant-verification: bun test red/green passed: harness/atomic/full.test.ts self-started turn makes 2 stub model requests without the adapter change, 1 with it Assistant-verification: bun test passed: apps/server src/chat and src/harness (402 pass, 0 fail) Assistant-verification: types passed: bun --filter '@chopin/server' types Assistant-verification: bun run ci passed: dprint, oxlint (31 warnings, same as main), tokens, design contract User-preference: Open a quick Chopin PR so a blocked workflow run reaches the Planner
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.
Follow up on workflow runs that end blocked or failed between turns
When a Planner's workflow run ended blocked or failed after the turn that
started it, Atomic's lifecycle notice asked the idle session to start a
turn on its own. The adapter only forwards events while Chopin runs a
turn, so that turn reached the model but nobody saw or recorded it, and
Chopin let the kept session go as soon as no run was live. Chat showed
only the run card and its "ended blocked" line.
Chopin now starts a Planner turn itself when a run it owns ends blocked
or failed between turns, with the run's end line as the turn's reason,
and keeps the session until that turn has run. A run that ends during
the Planner's own turn still reaches it through Atomic's in-turn notice,
so it starts no extra turn. The adapter stops any turn Atomic starts on
its own and waits for it to settle before running Chopin's next prompt.
Assistant-model: Claude Opus 5.5 (fast)
Assistant-workflow: inline
Assistant-duration: 8m converged, estimated unmeasured
Assistant-verification: bun test red/green passed: chat/invoke.test.ts "ends blocked between turns" fails without the service change and passes with it
Assistant-verification: bun test red/green passed: harness/atomic/full.test.ts self-started turn makes 2 stub model requests without the adapter change, 1 with it
Assistant-verification: bun test passed: apps/server src/chat and src/harness (402 pass, 0 fail)
Assistant-verification: types passed: bun --filter '@chopin/server' types
Assistant-verification: bun run ci passed: dprint, oxlint (31 warnings, same as main), tokens, design contract
User-preference: Open a quick Chopin PR so a blocked workflow run reaches the Planner