Skip to content

fix: keep 1.11 enabled, prune flags and state pull behaviour - #177

Merged
caballeto merged 3 commits into
mainfrom
fix/compat-1-11
Oct 26, 2026
Merged

caballeto merged 3 commits into
mainfrom
fix/compat-1-11

Conversation

@caballeto

Copy link
Copy Markdown
Member

Summary

Unreleased 1.12 must not break anything a 1.11.0 user relies on. This PR restores three 1.11 behaviours.

  • enabled: on monitors (and defaults.monitors.enabled) is accepted again, as it was in 1.11.
    • Create sends it only when it is set. Update sends enabled ?? null, and null keeps the current value.
    • When enabled is absent, deploy never touches the pause state.
    • The diff snapshot includes enabled, as it did in 1.11.
    • No warning and no error.
  • deploy --prune-org-cli / --prune-all and plan --prune-all are visible again, with their 1.11 descriptions.
    • Both flags imply --prune and widen the scope through classifyDeleteScope:
      • in state → state
      • CLI/Git-owned monitor of another project → org-cli
      • monitor owned by another tool → org-all
      • non-monitor resource not in state → org-cli
    • Plain --prune keeps main's behaviour: .devhelm/state.json plus this project's own monitors.
    • removedPruneFlag is removed.
  • state pull with project: is scoped to the project, as on main. Without project: it pulls every monitor (the 1.11 behaviour) and prints no warning.
  • Copy updates: the CHANGELOG 1.12 section, the monitors pause description, the monitors export fidelity note, the plan overlay line and the synthetics skill no longer say enabled is refused.

Tests

npm run lint, npm run typecheck and npm test all pass locally: 63 files, 1250 tests.

New or updated tests:

  • zod accepts enabled
  • transform sends enabled only when it is set, and null on update when it is absent
  • the differ plans an enabled change
  • pruneAll and pruneOrgCli scopes
  • state pull scope with and without project:

Self-review

One Sonnet pass found no P0s. I fixed P1 #1: the plan overlay line said "not changed by deploy", which is wrong now. Follow-ups I left:

  • plain --prune now also deletes this project's own monitors that are not in state. This is main's behaviour, kept on purpose, and the CHANGELOG says so.
  • state pull without project: puts every org monitor into state. This is 1.11 behaviour.
  • state pull has no command-level test.

🤖 Generated with Claude Code

caballeto and others added 3 commits October 26, 2026 14:23
Restore what 1.11.0 users rely on:
- monitors accept enabled in devhelm.yml (and defaults.monitors); sent on
  create only when set, sent as enabled ?? null on update
- deploy --prune-org-cli / --prune-all and plan --prune-all widen the
  delete scope as in 1.11; plain --prune also covers this project's own
  monitors
- state pull scopes monitors to project: only when the config sets it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@caballeto
caballeto merged commit c9263cc into main Oct 26, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant