perf(hauler): reduce CI setup and scoped status overhead - #345
Conversation
🦋 Changeset detectedLatest commit: 76e1e41 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
Independent review PASS for A separate reviewer used a clean detached checkout. The scoped-capacity regression now proves a restricted PR1 worker keeps queued PR2 eligible, while preserving active ownership. Both heavy-cap enabled and disabled scheduler cases verify ordering and handback. Validation: manager/ownership 30/30; full Action suite 65 passed and one Docker probe skipped (the separate real Docker boundary run passed 4/4); scheduler/platform config 23/23; artifact validation passed. The real generated CLI returned one relevant lane for the exact ticket. Parent full |
Why
Real TraceDecay use showed redundant queued CI successors, repeated toolchain installation, and about 185 KB returned for a single-ticket status query. Reduce those costs while preserving exact-head verdicts and isolated PR execution.
Scope
GitHub planning verifies live native worker jobs and their remaining capacity before requesting successors. Early failed product checks remain owned until the other tasks finish, and dead workers remain recoverable. Workers accept a strict GHCR digest, publish sanitized snapshot timings and numeric JUnit totals on Checks, and persist each snapshot before selecting another.
Local status applies filters in SQL before limits, returns relevant lanes and direct blockers, and includes global telemetry only with
--metrics. Queue previews retain total counts. Dashboard telemetry, older daemon compatibility, and newest-activelast/logbehavior stay intact. The scheduler reselects queued work after a permit becomes available, releasing the old heavy claim before admitting the replacement.Generated plugin artifacts and a minor Changeset are included.
Tradeoffs
Per-lane GitHub concurrency remains the serialization boundary. Artifact upload still follows worker drain; sanitized Checks data is available during the drain. This does not add an artifact SDK, an idle runner wait, or an arbitrary PR debounce.
Verification
pnpm checkpasses artifact freshness, typecheck, diagnostics, Action tests, 1,339 unit/integration tests, route tests, browser tests, and artifact validation.