Repository navigation
fix(installer): pass --prerelease=allow on every uv install path - #1353
Conversation
basic-memory 0.23 pins fastmcp==4.0.0b1, and no stable FastMCP 4 exists on PyPI. uv only accepts pre-releases of transitive dependencies when told to, so `uv tool install basic-memory` and `uvx basic-memory` silently resolve to 0.22.1 — the last release without a pre-release dependency — and `bm hook install`'s `uvx "basic-memory>=0.23.2"` launcher fails to resolve at all on a cold cache. Add the flag everywhere we run or document a uv install: - `bm hook install` launcher fallback (uvx / uv tool run) - the auto-update `uv tool upgrade` command and its manual hint - Hermes and OpenClaw bootstrap installs and their setup script - MCP registry manifest (server.json) and the Codex plugin .mcp.json - README, llms-install.md, SECURITY.md, plugin docs and skills, and the release runbook The Claude Code / Codex hook scripts already declare the fastmcp pre-release as a direct dependency and are unaffected. Fixes #1338 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017STCpbNsYjZgUdftxgEAZ4 Signed-off-by: phernandez <paul@basicmachines.co>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4cdfae6bae
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Codex review on the --prerelease=allow change: uv applies the flag to basic-memory itself, so with a beta on PyPI every documented install and `bm update` would pick it up instead of the stable release. uv has no narrower opt-in that works on the versions in the field (a direct `--with fastmcp==…` pin only resolves on uv >= 0.12; 0.8.x still requires --prerelease=allow), so keep the stable channel stable by policy: `just beta` refuses while pyproject pins a pre-release, with an explicit override, and the release docs say why. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017STCpbNsYjZgUdftxgEAZ4 Signed-off-by: phernandez <paul@basicmachines.co>
|
@codex review |
|
Codex Review: Didn't find any major issues. What shall we delve into next? Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 908c7d5e70
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
With every documented install passing --prerelease=allow (required by the FastMCP pre-release pin), uv also allows pre-releases of basic-memory itself, and the `.devN` builds dev-release.yml published for each main commit outranked the stable release: a clean `uv tool install basic-memory --prerelease=allow` installed 0.23.3.dev4 while `bm --version` still printed 0.23.2. Nothing depends on those artifacts — the cloud pins a git rev and the docs never advertised them — so retire the workflow; unreleased main is installable from git. The dev versions already on PyPI must be yanked separately; uv skips yanked versions unless they are pinned explicitly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017STCpbNsYjZgUdftxgEAZ4 Signed-off-by: phernandez <paul@basicmachines.co>
|
@codex review |
|
Codex Review: Didn't find any major issues. Keep it up! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Fixes #1338.
Problem
0.23.x pins
fastmcp==4.0.0b1and there is no stable FastMCP 4 on PyPI (latest stable 3.4.7; newest beta 4.0.0b5). uv accepts a pre-release of a transitive dependency only with--prerelease=allow, so on a cold cache:uvx basic-memoryuvx "basic-memory>=0.23.2"(thebm hook installfallback launcher)So every MCP-config example, both harness bootstraps,
bm update'suv tool upgrade, and the hook launcher were quietly running the previous release or breaking.Fix
We're staying on the FastMCP 4 beta, so this adds
--prerelease=allowon every uv path we control:bm hook installlauncher (hook.py), auto-update command + hint (auto_update.py), Hermes bootstrap (integrations/hermes/__init__.py), OpenClaw bootstrap (index.ts) andsetup-bm.shserver.json(MCP registry, validated against the 2025-12-11 schema),plugins/codex/.mcp.jsonllms-install.md,SECURITY.md, plugin getting-started/skills, OpenClaw README/SECURITY, Hermes README, release runbookThe Claude Code / Codex hook scripts already declare
fastmcp==4.0.0b1as a direct dependency and needed no change.Keeping the stable channel stable (Codex review)
--prerelease=allowalso allows pre-releases of basic-memory itself, and there is no narrower opt-in that works on the uv versions in the field (--with fastmcp==…only resolves on uv ≥ 0.12;if-necessary/explicitfall back to 0.22.1). Two things were exposed and are handled here:just betanow refuses whilepyproject.tomlpins a FastMCP pre-release (explicitBASIC_MEMORY_ALLOW_BETA_WITH_PRERELEASE_DEPS=1override); documented in AGENTS.md and the beta runbook.dev-release.ymlpublished a.devNbuild to PyPI for everymaincommit, and a cleanuv tool install basic-memory --prerelease=allowreally installed 0.23.3.dev4 (whilebm --versionstill printed 0.23.2, since the in-code version only changes at release). Nothing consumes those artifacts (cloud pins a git rev; docs never advertised them), so the workflow is removed. Follow-up outside this PR: yank0.23.3.dev1–dev7(and any dev build published before this merges) on PyPI — uv skips yanked versions unless pinned explicitly.Verification
uvx --prerelease=allow "basic-memory>=0.23.2" --versionon an emptyUV_CACHE_DIRresolves (the launcher form that previously failed)tests/cli/test_hook_command.py,test_auto_update.py,test_update_command.py— 146 passed;ty checkcleanjust package-check-claude-code,package-check-codex,package-check-hermes(269 passed),package-check-openclaw(typecheck, biome, build, bun tests, npm pack) — all passjust --listparses with the new beta guardFollow-up outside this repo: the install pages on docs.basicmemory.com need the same flag.
🤖 Generated with Claude Code
https://claude.ai/code/session_017STCpbNsYjZgUdftxgEAZ4