fix(lifecycle): runnable uv install one-liner when maybe_migrate_to_uv hits uv-not-found - #774
Conversation
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Sorry @robotrocketscience, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
|
[claim:review:fermat:2026-05-14T04:33:12Z] |
…te_to_uv reason When a pipx- or pip-installed user hits the migration path without uv on PATH, the prior reason text pointed at the docs URL only. Operators reading a single stderr line want a command they can paste — surface both the Astral curl install and the brew alternative inline. Doc URL kept for the 'I want to read first' path.
…reason Pins both halves of the surfaced suggestion — `curl -LsSf https://astral.sh/uv/install.sh | sh` and `brew install uv` — so a future edit that drops either form fails the test rather than silently regressing the operator-facing message.
…to_uv reason Lands under [Unreleased] / Fixed as a follow-up to #733. Describes the operator-facing message change, why uv is still not auto-installed (third-party bootstrapping unprompted is out of scope), and points to docs/INSTALL.md Prerequisites for the up-front documentation.
7a079a6 to
fb3fb3c
Compare
|
Rebased onto github/main (3 atomic commits, all signed G: feat → test → docs). Verified:
Labeling |
|
merge-train: merged fb3fb3c → |
|
[release:review:fermat:2026-05-14T04:38:23Z] |
Summary
maybe_migrate_to_uv()(Auto-migrate non-uv aelfrice installs to uv tool on first 3.0.1 setup #733) to auto-migrate pipx/pip installs touv tool install aelfriceon firstaelf setup. The migration is gated onshutil.which("uv"); a pipx-only user without uv hits the skip path.Why not auto-install uv?
Bootstrapping a third-party installer unprompted (
curl | shfrom inside our migration path) has a much larger blast radius than what a memory tool should do without user consent. The docs/INSTALL.md Prerequisites section already documents uv as required up front. This PR only sharpens the runtime error path for users who skipped that.What changes
src/aelfrice/lifecycle.py: reason string for theshutil.which("uv") is Nonebranch now names both install channels.tests/test_migrate_to_uv.py: assert both forms appear inresult.reason.CHANGELOG.md:[Unreleased]/ Fixed bullet describing the change and the rationale.No behaviour change beyond the operator-facing text.
Test plan
uv run pytest tests/test_migrate_to_uv.py tests/test_setup_migrate_order.py tests/test_cli_setup.py tests/test_lifecycle.py→ 74 passed, 2 skippedOut of scope