feat(cli): animate anyr update with from→to and channel - #41
Merged
Conversation
duyet
marked this pull request as ready for review
September 3, 2026 06:09
Contributor
anyr size and startupStartup is wall time for a cold Size budget:
Budget check: ok raw timings[
{
"asset": "anyr-darwin-arm64",
"kind": "native",
"path": "/Users/runner/work/cli/cli/anyr-darwin-arm64",
"bytes": 2884904,
"size": "2.8 MiB",
"version": "0.1.11 (built 2026-09-03 08:29:50)",
"target": "aarch64-apple-darwin",
"os": "macos-latest",
"startup_version": {
"n": 21,
"min_ms": 4.22,
"median_ms": 4.71,
"p95_ms": 5.01,
"mean_ms": 4.82
},
"startup_help": {
"n": 21,
"min_ms": 3.71,
"median_ms": 4.15,
"p95_ms": 6.62,
"mean_ms": 4.53
}
},
{
"asset": "anyr-darwin-x86_64",
"kind": "native",
"path": "/Users/runner/work/cli/cli/anyr-darwin-x86_64",
"bytes": 3083168,
"size": "2.9 MiB",
"version": "0.1.11 (built 2026-09-03 08:30:09)",
"target": "x86_64-apple-darwin",
"os": "macos-latest",
"startup_version": {
"n": 21,
"min_ms": 34.42,
"median_ms": 39.38,
"p95_ms": 43.46,
"mean_ms": 39.57
},
"startup_help": {
"n": 21,
"min_ms": 30.72,
"median_ms": 36.56,
"p95_ms": 39.86,
"mean_ms": 37.13
}
},
{
"asset": "anyr-linux-arm64",
"kind": "native",
"path": "/home/runner/work/cli/cli/anyr-linux-arm64",
"bytes": 2823208,
"size": "2.7 MiB",
"version": "0.1.11 (built 2026-09-03 08:29:27)",
"target": "aarch64-unknown-linux-gnu",
"os": "ubuntu-24.04-arm",
"startup_version": {
"n": 21,
"min_ms": 0.66,
"median_ms": 0.7,
"p95_ms": 0.79,
"mean_ms": 0.71
},
"startup_help": {
"n": 21,
"min_ms": 0.66,
"median_ms": 0.68,
"p95_ms": 0.75,
"mean_ms": 0.69
}
},
{
"asset": "anyr-linux-x86_64",
"kind": "native",
"path": "/home/runner/work/cli/cli/anyr-linux-x86_64",
"bytes": 3180720,
"size": "3.0 MiB",
"version": "0.1.11 (built 2026-09-03 08:29:24)",
"target": "x86_64-unknown-linux-gnu",
"os": "ubuntu-latest",
"startup_version": {
"n": 21,
"min_ms": 1.01,
"median_ms": 1.03,
"p95_ms": 1.09,
"mean_ms": 1.04
},
"startup_help": {
"n": 21,
"min_ms": 0.94,
"median_ms": 0.97,
"p95_ms": 1.02,
"mean_ms": 0.98
}
},
{
"asset": "anyr-windows-x86_64.exe",
"kind": "native",
"path": "D:\\a\\cli\\cli\\anyr-windows-x86_64.exe",
"bytes": 2634240,
"size": "2.5 MiB",
"version": "0.1.11 (built 2026-09-03T08:30:23Z)",
"target": "x86_64-pc-windows-msvc",
"os": "windows-latest",
"startup_version": {
"n": 21,
"min_ms": 8.47,
"median_ms": 8.66,
"p95_ms": 9.84,
"mean_ms": 8.85
},
"startup_help": {
"n": 21,
"min_ms": 8.47,
"median_ms": 8.62,
"p95_ms": 8.77,
"mean_ms": 8.63
}
},
{
"asset": "anyr.wasm",
"kind": "wasm",
"path": "/home/runner/work/cli/cli/target/wasm-pkg/anyr_cli_bg.wasm",
"bytes": 180443,
"size": "176.2 KiB",
"version": "wasm",
"target": "wasm32-unknown-unknown",
"os": ""
}
] |
Closes #38. Show a ticking spinner while installing, print current → target version plus the configured channel, then a checkmark success line and "Run anyr to start using the new version." Co-authored-by: Duyet Le <me@duyet.net> Co-authored-by: duyetbot <bot@duyet.net>
Record isolated control-anyr artifacts for #38: from→to + channel copy, success hint, and a PTY transcript with changing spinner frames. Co-authored-by: Duyet Le <me@duyet.net> Co-authored-by: duyetbot <bot@duyet.net>
cursor
Bot
force-pushed
the
cursor/update-progress-ux-57d7
branch
from
September 3, 2026 08:27
594ca8c to
f3535f6
Compare
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.
Closes #38.
Rebased onto
mainafter #39 (97d3370). TUI tickets are untouched. This PR still only changesanyr updateprogress UX.anyr updatenow matches the interaction Duyet asked for: a spinner that actually ticks, current → target version plus the configured channel, then a checkmark success line and the restart hint.Versions in the snippet above are format examples from help. The binary prints the real running version and the selected GitHub tag. No invented model ids.
What changed
src/spinner.rs: braille frames advance on a timer (\rrewrite). Consecutive frames are distinct; a TTY spinner waits for a minimum number of ticks before succeeding, so a frozen[loading icon]cannot happen.Updating vX -> vY (<channel> channel), then✔ Updated to vY(orWould update towhen a fixture/--dry-runskips the replace).--checkkeeps the labeled current/latest/channel report.Verification
Driven with verify-anyr (
control-anyr launch/doctor/cli) plus the in-repo suite.anyr update(fixture)Updating vX -> vY (<channel> channel)then✔ Would update to vYandRun anyr to start using the new version.update_spinner_animates_on_tty,update_prints_from_to_channel_and_successArtifacts:
.cursor/skills/verify-anyr/artifacts/update-progress/cargo test --locked --lib --test cli: passed after rebase.Checklist