Skip to content

Surface the installer-update notification in the statusline #6

Description

@fvoska

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions