Files
msd-core/docs/features/update-banner-opt-in.md
Jakub Zych a9a7a328e6 refactor: hard-fork GSD -> MSD (Make Software Done)
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.
2026-10-06 01:47:40 +02:00

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)