feat(cli): add channel-aware update notifier (#265)

* feat(cli): show cached update notices after commands

* docs(cli): describe update notices

* fix(cli): type update check environment

* fix(cli): decouple update notice display from refresh and harden suppression

Display a cached "update available" notice based solely on the lastNoticeAt
24h throttle, independent of checkedAt refresh freshness, matching the design's
independent display/refresh decisions. Suppress the check unconditionally under
--json, CI, and non-TTY before consulting output-mode preferences, so a
KTX_OUTPUT=pretty override can no longer make CI/non-TTY contexts phone npm.
This commit is contained in:
Andrey Avtomonov 2026-06-06 10:42:10 +02:00 committed by GitHub
parent 377f21acd7
commit 698efdcef8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 1153 additions and 4 deletions

18
pnpm-lock.yaml generated
View file

@ -209,6 +209,9 @@ importers:
react:
specifier: ^19.2.6
version: 19.2.6
semver:
specifier: ^7.8.1
version: 7.8.1
simple-git:
specifier: 3.36.0
version: 3.36.0
@ -243,6 +246,9 @@ importers:
'@types/react':
specifier: ^19.2.15
version: 19.2.15
'@types/semver':
specifier: ^7.7.1
version: 7.7.1
'@vitest/coverage-v8':
specifier: ^4.1.7
version: 4.1.7(vitest@4.1.7)
@ -2501,6 +2507,9 @@ packages:
'@types/readable-stream@4.0.23':
resolution: {integrity: sha512-wwXrtQvbMHxCbBgjHaMGEmImFTQxxpfMOR/ZoQnXxB1woqkUbdLGFDgauo00Py9IudiaqSeiBiulSV9i6XIPig==}
'@types/semver@7.7.1':
resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==}
'@types/triple-beam@1.3.5':
resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
@ -5219,6 +5228,11 @@ packages:
engines: {node: '>=10'}
hasBin: true
semver@7.8.1:
resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==}
engines: {node: '>=10'}
hasBin: true
send@1.2.1:
resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==}
engines: {node: '>= 18'}
@ -8321,6 +8335,8 @@ snapshots:
dependencies:
'@types/node': 24.12.4
'@types/semver@7.7.1': {}
'@types/triple-beam@1.3.5': {}
'@types/unist@2.0.11': {}
@ -11433,6 +11449,8 @@ snapshots:
semver@7.8.0: {}
semver@7.8.1: {}
send@1.2.1:
dependencies:
debug: 4.4.3