feat: Round-2 improvement plans (007-026)#8
Open
SumeraMartin wants to merge 36 commits into
Open
Conversation
Squashes planning, implementation, fixes, tests, docs, and learnings.
…r on teardown Stopping the controller before the inner teardown's quiescent() drain made queued live-source registrations hit the stopped guard and never enter the pane map, so their per-source tmux sessions were never reaped (flaky U4). Also bound the ink-app interactive suite's real-timer budget at 20s and guard inner teardown with finally so killSession runs even if a steps-view tailer fails to stop. Claude-Session: https://claude.ai/code/session_01UnFVD3wbJ2AUAFnTyxQSt6
The follow loop's terminal predicate enumerated completed and crashed but not failed, so following a failed run polled forever. Inverted to treat everything except running as terminal so new statuses cannot regress it. Implements plan 007. Claude-Session: https://claude.ai/code/session_01UnFVD3wbJ2AUAFnTyxQSt6
…ned path The StepError thrown when recovery gives up or declines now appends the original runner failure (labeled) instead of dropping it, so a human can see why the step actually died. extractStackTrace now skips every line of a multi-line message so the appended error does not leak into stackTrace and get rendered twice. Implements plan 009. Claude-Session: https://claude.ai/code/session_01UnFVD3wbJ2AUAFnTyxQSt6
ConfigSchema and its nested prompts/cmux objects are now .strict(), so a typo like defalutMode fails the load with the offending key named instead of being silently ignored. Implements plan 019. Claude-Session: https://claude.ai/code/session_01UnFVD3wbJ2AUAFnTyxQSt6
…with no args ClaudeOptions and CodexOptions now extend an internal RunnerOptionsBase (model, flags), and codex() defaults its options like claude() already did, so the two builders have symmetric call shapes. Implements plan 022. Claude-Session: https://claude.ai/code/session_01UnFVD3wbJ2AUAFnTyxQSt6
Symptom, cause, and fix for the eight most common error classes (login, codex version, empty JSON schema, config load, step-name collision, subworkflow depth, prompt files, tmux requirements), linked from the Guide sidebar and the debugging page. Implements plan 025. Claude-Session: https://claude.ai/code/session_01UnFVD3wbJ2AUAFnTyxQSt6
The recovery loop's fail branch now records a 'failed-fast' entry in the recovery log (class, attempt, checkpoint) so declined classifications survive into state.json, and the workflow logs a recovery-fail-fast event with category and exit code. Implements plan 010. Claude-Session: https://claude.ai/code/session_01UnFVD3wbJ2AUAFnTyxQSt6
The abort path read the stderr tail before the stream had settled, so the persisted tail could miss the process's final output. Implements plan 013. Claude-Session: https://claude.ai/code/session_01UnFVD3wbJ2AUAFnTyxQSt6
The byte-identical truncation, formatting, and JSON-reading helpers in the two format-event modules now live in a runner-internal transcript-format-utils module. numberField stays per-runner because the two signatures genuinely diverge. Implements plan 014. Claude-Session: https://claude.ai/code/session_01UnFVD3wbJ2AUAFnTyxQSt6
orch <command> --help now prints command-specific usage from a COMMAND_HELP table covering every registered command, and orch --version prints the package version. Implements plan 017. Claude-Session: https://claude.ai/code/session_01UnFVD3wbJ2AUAFnTyxQSt6
ClaudeOptions gains permissions: 'bypass', expanded to the permission-mode flags on every argv path (autonomous, interactive, resume, fork), and the init scaffold uses it instead of raw flags. Implements plan 021. Claude-Session: https://claude.ai/code/session_01UnFVD3wbJ2AUAFnTyxQSt6
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
Implements all 20 Round-2 improvement plans (007-026), each landed as its own commit behind the
bun run checkgate.plans/README.mdRound-2 row is DONE.Gate status
The full consolidated
bun run checkgate is green end-to-end (Round-6 result, exit 0, ran to completion with no lint short-circuit):Zero real failures; known flakes did not appear.
Plans landed
007, 008, 009, 010, 011, 012, 013, 014, 015, 016, 017, 018, 019, 020, 021, 022, 023, 024, 025, 026.