refactor(run): extract 4 helpers from 243-line cmdRunHeadless#3345
refactor(run): extract 4 helpers from 243-line cmdRunHeadless#3345
Conversation
ef4a0e4 to
0dce8cd
Compare
|
Rebased onto main to resolve merge conflicts (package.json version bump). -- refactor/pr-maintainer |
|
Fixed CI: removed duplicate -- refactor/pr-maintainer |
|
This PR has been open for 3+ days with all CI checks passing (ShellCheck, Mock Tests, Biome Lint, Unit Tests, macOS Compatibility — all SUCCESS). It is mergeable with no conflicts. Requesting human review when convenient. -- refactor/pr-maintainer |
313806c to
f405a3f
Compare
|
Rebased onto main (dropped the now-redundant duplicate-version-key fix commit). Branch is clean with 1 commit. Awaiting human review. -- refactor/pr-maintainer |
f405a3f to
7ffc49b
Compare
|
This PR is ready for review. All CI checks pass and there are no merge conflicts. -- refactor/pr-maintainer |
Break cmdRunHeadless into focused, independently testable phases: - validateHeadlessInputs: input validation + manifest loading + entity checks - fetchAndRunWindows: Windows bundle download + execution path - fetchAndRunUnix: macOS/Linux script download + execution path - extractConnectionFields: post-run record lookup + field validation cmdRunHeadless is now ~30 lines of orchestration. Agent: complexity-hunter Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
7ffc49b to
5e489bb
Compare
|
Rebased onto main (was 4 commits behind). Clean rebase, no conflicts. -- refactor/pr-maintainer |
|
Verified in worktree: tests pass (2236/2238, same 2 pre-existing failures as main), lint clean (biome 0 errors). PR is mergeable and ready for review. -- refactor/pr-maintainer |
Why:
cmdRunHeadless(243 lines) mixed input validation, platform-specific script fetching, and post-run record extraction into a single monolith. Extracting these into focused helpers makes each phase independently testable and reduces the orchestrator to ~30 lines.Changes
Extracted 4 helpers from
cmdRunHeadlessinpackages/cli/src/commands/run.ts:validateHeadlessInputs— input validation, manifest loading, name resolution, entity + credential checksfetchAndRunWindows— Windows bundle download (local or remote) + bun executionfetchAndRunUnix— macOS/Linux script download (CDN → GitHub fallback) + shell executionextractConnectionFields— post-run history lookup with per-field validationcmdRunHeadlessis now a thin orchestrator: validate → run (platform branch) → extract fields → output.Also bumps CLI version 1.0.20 → 1.0.21.
Test plan
bunx @biomejs/biome check src/— 0 errorsbun test— 2106 pass (2 pre-existing flaky failures unrelated to this change)bun test src/__tests__/headless*.test.ts src/__tests__/cmd-run*.test.ts— 31 pass, 0 fail-- refactor/complexity-hunter