Files
orca/config/scripts/dev-storage-reclaim.mjs
T
Neil 7244bf3e6f Reclaim idle worktree space automatically on dev startup (#28864)
* Run safe worktree cleanup on dev and add interactive pnpm reclaim

* Rename storage cleanup command to reclaim-space

* Keep real stream constructors in transcript dependency tests

* Detach cleanup output and align historical cache previews
2026-10-14 15:47:02 -07:00

42 lines
1.1 KiB
JavaScript

import { resolve } from 'node:path'
import { spawnProcess } from '@orca/process-host'
export function startDevStorageReclaim({
repoRoot,
env = process.env,
spawn = spawnProcess,
report = console.error
}) {
if (env.ORCA_SKIP_DEV_STORAGE_RECLAIM === '1') {
return
}
try {
// The worker owns its lock after dev exits and must not keep captured dev output open.
const child = spawn({
program: process.execPath,
args: [
resolve(import.meta.dirname, 'reclaim-worktree-space.mjs'),
'--repo',
repoRoot,
'--exclude-worktree',
repoRoot,
'--automatic',
'--apply'
],
cwd: repoRoot,
env,
detached: true,
stdio: 'ignore'
})
child.on('error', (error) => report(`[orca-dev] Storage cleanup skipped: ${error.message}`))
child.on('exit', (code) => {
if (code !== 0) {
report('[orca-dev] Storage cleanup did not finish; retry with pnpm reclaim-space.')
}
})
child.unref()
} catch (error) {
report(`[orca-dev] Storage cleanup skipped: ${error.message}`)
}
}