Background
The stack-essentials plugin ships a SessionStart hook (plugins/stack-essentials/hooks/check-rules-updates.mjs) that checks whether infinum/ai (and any private overlays added via --extend) has advanced past the SHA recorded at your last installer run. When it has, the hook emits a systemMessage banner at session start telling you to re-run the installer:
[infinum/ai] A newer version is available for: infinum-ai. Re-run to apply:
pnpm dlx --allow-build=infinum-ai github:infinum/ai
This exists because plugins auto-update through the marketplace, but the bundled rules and other things the installer sets up have no auto-update mechanism — so a nudge to re-run the installer is the next best thing.
Problem
The SessionStart systemMessage banner is easy to miss: it renders once at session start, isn't especially prominent, and scrolls out of view as the session goes on.
Proposed improvement
Surface the same "update available → re-run the installer" signal in the Claude Code statusline, which is persistent and always visible, instead of (or in addition to) the one-shot session-start banner.
Pointers
- Check logic + banner:
plugins/stack-essentials/hooks/check-rules-updates.mjs
- Hook registration:
plugins/stack-essentials/hooks/hooks.json
- Cached update state (24h TTL):
~/.claude/infinum/.update-check.json
- Recorded baseline SHA(s) per source:
~/.claude/infinum/.manifest.json
Considerations
- The statusline is user-configurable, so this needs to coexist gracefully with a statusline the user has already set up rather than clobbering it.
- Keep the existing behaviour: cached for 24h (at most one
git ls-remote per machine per day), silent when up-to-date or offline, and respecting the INFINUM_STACK_SKIP_UPDATE_CHECK=1 opt-out.
Contributions welcome — this is up for grabs.
Background
The
stack-essentialsplugin ships aSessionStarthook (plugins/stack-essentials/hooks/check-rules-updates.mjs) that checks whetherinfinum/ai(and any private overlays added via--extend) has advanced past the SHA recorded at your last installer run. When it has, the hook emits asystemMessagebanner at session start telling you to re-run the installer:This exists because plugins auto-update through the marketplace, but the bundled rules and other things the installer sets up have no auto-update mechanism — so a nudge to re-run the installer is the next best thing.
Problem
The
SessionStartsystemMessagebanner is easy to miss: it renders once at session start, isn't especially prominent, and scrolls out of view as the session goes on.Proposed improvement
Surface the same "update available → re-run the installer" signal in the Claude Code statusline, which is persistent and always visible, instead of (or in addition to) the one-shot session-start banner.
Pointers
plugins/stack-essentials/hooks/check-rules-updates.mjsplugins/stack-essentials/hooks/hooks.json~/.claude/infinum/.update-check.json~/.claude/infinum/.manifest.jsonConsiderations
git ls-remoteper machine per day), silent when up-to-date or offline, and respecting theINFINUM_STACK_SKIP_UPDATE_CHECK=1opt-out.Contributions welcome — this is up for grabs.