Add an "update available" notice (install-method aware)#79
Merged
Conversation
A best-effort, cached, non-blocking "update available" notice (npm update-notifier / Vercel style): renders from cache on stderr for human TTY runs, refreshes via a detached GitHub-releases check, and shows the upgrade command matching the detected install method (brew/pipx/uv). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bumps the version (pyproject.toml + aai_cli/__init__.py) by one minor increment (X.Y.Z -> X.(Y+1).0). Complements cut_release.sh, which tags whatever version main already holds. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Wire update_check.maybe_notify into run_command's success path; register the hidden _update-check command with an examples epilog; cover the notice's render/fetch/gating paths (incl. install-method detection) end to end. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add scripts/bump_minor.sh to check.sh's shellcheck list so the release helper is covered like cut_release.sh. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
alexkroman
enabled auto-merge (squash)
June 11, 2026 22:47
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add an unobtrusive "update available" notice in the npm
update-notifier/ Vercel style. When a newer release exists, the next human, interactive run prints a small bordered box on stderr after the command finishes, with the upgrade command matching how the CLI was installed.config.tomlcache (zero latency). The cache is refreshed by a detachedassembly _update-checkprocess (≤ once/day), reusing the exact detached-spawn pattern fromtelemetry.py./releases/latest→tag_name) — the PyPI name is squatted, and releases ship as git tags/bottles.releases/latestexcludes pre-releases.brew upgrade assembly/pipx upgrade assembly/uv tool upgrade assembly(or a docs hint when unknown).--json, non-TTY (piped/redirected),CI,AAI_NO_UPDATE_CHECK, or when not actually behind — so pipelines and agents stay clean.packagingas a direct dependency (already resolved transitively) for robust version compare.Also includes
scripts/bump_minor.sh(a release helper that bumps the minor version, complementingcut_release.sh).Test Plan
./scripts/check.sh→All checks passed.aai_cli/update_check.pyat 100% coverage; diff-cover 100% on changed lines# pragma: no mutate)--json_update-checkcommand runs and is absent from--help🤖 Generated with Claude Code