Harness Intelligence Wiki
SpecsCLIIssue 49 Stale Control Plane Stable Baseline

Implementation Notes: Issue 49 Stale Control Plane Stable Baseline

Implementation Notes: Issue 49 Stale Control Plane Stable Baseline

Summary

Stable baseline resolution now checks the latest published stable release before accepting control-plane metadata when the release source is reachable. If the control plane reports a different stable version than the published stable release path, the CLI materializes and uses the published stable baseline as canonical. This applies to both default stable resolution and explicit stable refresh.

Changes

  • apps/cli/src/baseline/resolve.ts separates latest stable release lookup from baseline materialization so stable resolution can compare control-plane metadata against the release source.
  • apps/cli/src/baseline/resolve.test.ts covers stale or different control-plane metadata plus a published stable release for refresh and default stable paths.
  • Root docs and the scaffolding runbook explain that stable resolution verifies control-plane freshness before writing.

Validation Evidence

  • bun --cwd apps/cli test src/baseline/resolve.test.ts
  • bun --cwd apps/cli test src/baseline/resolve.test.ts with default-stable mismatched control-plane regression
  • bun --cwd apps/cli test src/baseline/resolve.test.ts src/update/run.test.ts
  • bun run check
  • git diff --check
  • bun run apps/cli/src/index.ts update --check --baseline stable --refresh-baseline --json

Manual Review Checklist

CheckResultEvidence
Stale control-plane stable metadata fixedPassRefresh and default-stable regressions resolve the published stable release instead of mismatched control plane metadata.
Bundled fallback semantics preservedPassExisting baseline and update tests remain in the required validation set.
Operator guidance updatedPassRoot docs and the CLI scaffolding runbook describe stable freshness verification.
Traevolution reconciliation remains out of scopePassThis change fixes Harness resolver behavior only.

On this page