arcade-mcp/libs/tests/cli
Eric Gustin d31a81ef3f
Add background update check & notification for arcade CLI (#800)
## Summary
- On every CLI command invocation (except `update`/`upgrade`/`mcp`), a
detached subprocess checks PyPI for newer versions (throttled to once
per 4 hours) and caches the result at `~/.arcade/update_cache.json`
- On the next invocation, if a newer version is known, a yellow
one-liner notification is printed suggesting `arcade update`
- Respects `ARCADE_DISABLE_AUTOUPDATE=1` environment variable to opt out
entirely


<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Adds a background PyPI version check that spawns detached subprocesses
and may print update notifications on most CLI invocations; mistakes
could impact CLI reliability or corrupt MCP stdio output (mitigated by
explicit command exclusions).
> 
> **Overview**
> Adds `arcade update` (and hidden `arcade upgrade` alias) to
self-upgrade the `arcade-mcp` CLI by detecting the original install
method (`uv tool`, `pipx`, `uv pip`, or `pip`) and running the
appropriate upgrade command.
> 
> Introduces a **throttled background update check** on most CLI
invocations: a detached subprocess queries PyPI, writes
`~/.arcade/update_cache.json`, and on subsequent runs prints a one-line
notification when a newer version is cached; this is disabled via
`ARCADE_DISABLE_AUTOUPDATE=1` and explicitly skipped for
`update`/`upgrade`/`mcp` to avoid MCP stdio output corruption.
> 
> Bumps the package version to `1.13.0`, adds a `packaging` dependency,
and includes comprehensive tests covering PyPI/yanked/prerelease
handling, install-method detection, caching, and callback integration.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
2d9646ecc2211e8cfecd6e4901d14b1f5b7bb306. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 11:30:55 -07:00
..
deploy Fix deploy timeout and improve error messages (#770) 2026-03-06 10:03:48 -03:00
usage [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
test_authn_callback.py [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
test_capture_formatters.py Fixing bug with multiple providers + stats for multiple runs (#752) 2026-02-09 14:25:28 -03:00
test_configure.py Improve .env discovery (#737) 2026-02-25 23:20:28 -08:00
test_console_encoding.py [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
test_cross_platform.py [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
test_dashboard.py [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
test_display.py [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
test_eval_paths.py [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
test_evals_runner.py Fixing bug with multiple providers + stats for multiple runs (#752) 2026-02-09 14:25:28 -03:00
test_formatter_edge_cases.py Fixing bug with multiple providers + stats for multiple runs (#752) 2026-02-09 14:25:28 -03:00
test_formatters.py Fixing bug with multiple providers + stats for multiple runs (#752) 2026-02-09 14:25:28 -03:00
test_main_evals.py Fixing bug with multiple providers + stats for multiple runs (#752) 2026-02-09 14:25:28 -03:00
test_new_cli.py Update arcade new --full (#805) 2026-03-27 14:22:32 -07:00
test_secret.py [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
test_server_logs.py [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
test_show.py MCP Local (#563) 2025-09-25 15:28:15 -07:00
test_stdio_signal.py [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
test_update.py Add background update check & notification for arcade CLI (#800) 2026-04-02 11:30:55 -07:00
test_utils.py feat: Support multiple orgs & projects in Arcade CLI (#717) 2025-12-11 12:58:55 -08:00
test_utils_multi_provider.py [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
test_windows_subprocess.py Left over fixes for Windows Papercut PR (#781) 2026-02-26 13:24:15 -03:00