Mechanical rename produced by scripts/msd-rename.cjs: gsd/Gsd/GSD -> msd/Msd/MSD across contents and paths, upstream package/repo coordinates -> @golem15/msd-core and golem15com/msd-core. Deep links into upstream history, sibling upstream packages, the GSD-2 import feature, CHANGELOG.md and .changeset/ are kept as-is. Hand edits on top: MSD block-letter banner and logos, LICENSE copyright line, package/plugin identity, regenerated lockfile, install-tree fixtures, derived registries and benchmark baseline; migration checksum baseline re-locked (MSD keeps its own install state, so no install had applied the old sums); sort-order and regex-escaped expectations in tests adjusted.
22 lines
955 B
Markdown
22 lines
955 B
Markdown
---
|
|
id: 128
|
|
title: Update Banner Opt-In
|
|
group: v1.41.0 Features
|
|
---
|
|
|
|
**Purpose:** Surface update availability to users who have declined or bypassed the MSD statusline, without requiring the statusline.
|
|
|
|
**Behavior:**
|
|
- At install time, if the installer detects no MSD statusline, it offers an opt-in `SessionStart` hook.
|
|
- The hook reads the existing `~/.cache/msd/msd-update-check.json` cache — the same cache used by the statusline — and prints a banner only when an update is available.
|
|
- Silent when up-to-date.
|
|
- Failure diagnostics rate-limited to once per 24 h.
|
|
- Cleanly removed by `npx @golem15/msd-core --uninstall`.
|
|
|
|
**Requirements:**
|
|
- REQ-BANNER-01: Banner does not install without explicit opt-in.
|
|
- REQ-BANNER-02: No additional network requests — reuses the existing background update-check cache.
|
|
- REQ-BANNER-03: Uninstall path removes the banner hook.
|
|
|
|
**Reference issue:** [#2795](https://github.com/open-gsd/gsd-core/pull/2795)
|