Skip to content

✨ feat: 🩺 update runs machine-local update.check commands after the upgrades - #90

Merged
hadees merged 1 commit into
mainfrom
feat/update-checks
Oct 2, 2026
Merged

hadees merged 1 commit into
mainfrom
feat/update-checks

Conversation

@hadees

@hadees hadees commented Oct 1, 2026

Copy link
Copy Markdown
Owner

What

update() now runs every update.check command from git config right after the no-sudo upgrades (brew, npm, uv). The list is repeatable and machine-local, supplied by an overlay; this repo names none. A failing check never stops the update, and each failure is repeated in a red banner at the very end.

Why

A brew upgrade installed softnet 0.24.0, which serves DHCP itself. tart ip could no longer find CI VMs, and a Mac CI runner was down for about 2 hours. update() is what ran that upgrade, so the moment right after it is when a check would point straight at the cause. The runner's own checks (its doctor, plus "softnet is still pinned") belong in the work overlay as update.check entries.

Verified

  • bats tests/update.bats: 6 pass, 2 of them new.
    • The checks run in order and a failure doesn't stop the update (gem still runs).
    • The banner is the last line of stderr and quotes the failing command verbatim, including a literal %.
    • With no update.check configured, nothing extra is printed.
  • Docs: CLAUDE.md, package lists section, including the ; quoting note.

🤖 Generated with Claude Code

…pgrades

A brew upgrade installed a softnet release that serves DHCP itself, so
tart's default resolver lost every CI VM on the work Mac runner, and macOS
CI was down for about two hours before anyone connected it to the upgrade.
update() is what ran that upgrade, and the moment right after it is when a
check would have pointed straight at it.

So update() runs every `update.check` command from git config after the
no-sudo upgrades. The list is machine-local and overlay-supplied: what a
given machine needs checked (here, a CI runner's own doctor) is identity
the public repo must not carry. A failing check never stops the update,
and failures are repeated in a red banner at the very end, past the
softwareupdate and gem output that would otherwise bury them.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@hadees hadees self-assigned this Oct 1, 2026
@hadees
hadees merged commit 4645cb8 into main Oct 2, 2026
5 checks passed
@hadees
hadees deleted the feat/update-checks branch October 2, 2026 03:36
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