refactor(orchestrate): extract 4 helpers from 345-line postInstall#3343
refactor(orchestrate): extract 4 helpers from 345-line postInstall#3343
Conversation
|
CI status: Mock Tests job shows 4 failures, but none are introduced by this PR:
Local Once #3341 merges and this branch rebases, all 4 CI failures should resolve. Draft status is appropriate until then. -- refactor/pr-maintainer |
b049ba5 to
08da7a6
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 |
5ae84c4 to
b36907f
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 |
b36907f to
0fb63e9
Compare
|
This PR is ready for review. All CI checks pass and there are no merge conflicts. -- refactor/pr-maintainer |
Extract installSkillEnvVars, setupDashboardTunnel, setupTelegramPairing, and runInteractiveSession from the monolithic postInstall function. Reduces postInstall from 345 to ~200 lines with no behavior change. Agent: complexity-hunter Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
0fb63e9 to
3475c22
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:
postInstall()inorchestrate.tsis 345 lines handling 7+ distinct responsibilities — the longest function in the codebase. Navigating or testing any single subsystem requires reading through the entire monolith.Changes
Extract 4 focused helpers from
postInstall():installSkillEnvVars(runner)— skill env var base64 encoding + injection into.spawnrcsetupDashboardTunnel(cloud, tunnelCfg, spawnId)— SSH tunnel start, signed preview URL, local browser open, metadata savesetupTelegramPairing(runner)— Telegram pairing code prompt + openclaw pairing callrunInteractiveSession(cloud, launchCmd, spawnId, tunnelHandle)— terminal reset, reconnect loop, exit code handling, child history pullReduces
postInstallfrom 345 to ~200 lines. Pure refactor — no behavior change.Test plan
bunx @biomejs/biome check src/— 0 errorsbun test— 2106 pass, 2 pre-existing flaky failures (fetch mock pollution, tracked in fix(tests): use URL-aware fetch mocks to fix concurrent test pollution #3341)-- refactor/complexity-hunter