Skip to content

feat: Round-2 improvement plans (007-026)#8

Open
SumeraMartin wants to merge 36 commits into
developfrom
feat/claude-orchestration
Open

feat: Round-2 improvement plans (007-026)#8
SumeraMartin wants to merge 36 commits into
developfrom
feat/claude-orchestration

Conversation

@SumeraMartin

Copy link
Copy Markdown
Member

Summary

Implements all 20 Round-2 improvement plans (007-026), each landed as its own commit behind the bun run check gate.

  • One commit per plan, disjoint file footprints grouped into waves.
  • Every plans/README.md Round-2 row is DONE.

Gate status

The full consolidated bun run check gate is green end-to-end (Round-6 result, exit 0, ran to completion with no lint short-circuit):

  • lint: 754 files clean
  • typecheck: clean
  • unit + mocked-integration: 1988 pass
  • real-tmux: 496 pass / 8 skip
  • e2e: 73 pass
  • two-pane (all categories, including lifecycle): pass
  • check:migration: 38 pass

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.

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant