chore(setup): standalone Dolt を mise/aqua 経由で v2.2.0 に固定 - #65
Open
gotomts wants to merge 1 commit into
Open
Conversation
beads の server / shared-server モードは PATH 上の standalone `dolt` を
exec.LookPath で解決する。beads 公式は 2.2.0 を pin しており、2.3.0/2.3.1 は
CALL DOLT_RESET('--hard') が新規 DB の数 % で恒久破損する回帰を持つ
(upstream 実測: 2.2.0 0/60、2.3.0 3/60、2.3.1 3/100)。
Homebrew formula は任意バージョンの pin を表現できず (`dolt@2.2` のような
versioned formula は存在しない)、nix-darwin の homebrew.brews にも version
フィールドが無い。宣言的に版を固定できる経路が mise だけなので、Tier 2 の
setup/languages.zsh に `aqua:dolthub/dolt@2.2.0` を追加し、この例外を
AGENTS.md の「Homebrew パッケージ管理」に明文化する。
`beads` formula が依存として引き込む dolt 2.3.x は削除しない (beads の依存
なので zap 対象外)。PATH 先頭を mise が取ることで実行体だけを 2.2.0 に寄せる。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
やったこと
Beads の server / shared-server モードが使う standalone
doltCLI を、公式が pin する v2.2.0 に固定した。setup/languages.zsh(Tier 2)にmise::pin aqua:dolthub/dolt 2.2.0を追加。既存のmise install→mise use --globalの正規経路をそのまま使うmise::pinの引数名をlang→toolに一般化(backend 接頭辞付き指定を渡せることをコメントで明示)AGENTS.md「Homebrew パッケージ管理」に、バージョン固定が必要な CLI だけは mise で供給するという例外を明文化なぜ mise なのか
Homebrew formula は任意バージョンの pin を表現できない(homebrew-core に
dolt@2.2のような versioned formula は無く、versioned_formulaeは空)。nix-darwin のhomebrew.brewsにも version フィールドが無い(name/args/conflicts_with/restart_service/start_service/linkのみ)。宣言的に版を固定できる経路が mise しか無いため、この 1 点だけ「CLI は Homebrew」の原則から外す。なぜ v2.2.0 なのか
Beads 公式(
docs/architecture/dolt.md・scripts/ci/install-dolt.sh)が 2.2.0 を pin している。2.3.0 / 2.3.1 はCALL DOLT_RESET('--hard')が新規作成 DB の数 % で恒久破損する回帰を持つ。upstream の実測値: 2.1.8 0/40、2.2.0 0/60、2.3.0 3/60、2.3.1 3/100。補足
Homebrew の依存 Dolt は削除しない
homebrew-core の
beadsformula はdepends_on "dolt"(版指定なし)を持つため、/opt/homebrew/bin/dolt(現在 2.3.1)が依存として存在する。これは削除しない:brew bundle cleanup(defaultrole の zap)はkept_formulae + recursive_dependenciesを保持するので、beads の依存である dolt は元々 zap 対象外beads自体の依存が壊れる固定するのは runtime の優先実行体だけ。beads は
exec.LookPath("dolt")で解決するので、どちらが動くかは PATH 順序だけで決まる:dolt sql-serverを spawn する経路):zshenvのmise activate --shimsが~/.local/share/mise/shimsを PATH 先頭に置く。brew shellenvはそもそも走らないzshrcのmise activate zshがbrew shellenvより後に走り、PATH 先頭を取り返すなお
BEADS_DOLT_BINによる明示指定は upstream main には存在するが、Homebrew で入る beads 1.2.2 のバイナリには含まれておらず(stringsで 0 件)、かつ managed proxied-server mode 限定。現時点で使える梃子は PATH のみ。変更しなかったもの
homebrew.nixのbeads/dolt、Beadbox、zshrc、zshenv、生成物、グローバル Claude / Hermes 設定、各リポジトリの.beads/は未変更。未実施の実機適用
このブランチは宣言だけで、実機にはまだ何も適用していない。 マージ後に以下が必要:
mise use --global aqua:dolthub/dolt@2.2.0の実行自体は本 PR では未実行(実機変更のため)。mise ls-remote aqua:dolthub/doltで 2.2.0 が解決可能なこと、aqua-registry のpkgs/dolthub/dolt/registry.yamlが darwin/arm64 とsemver(">= 0.40.29")を満たすことは確認済み。既知のギャップ
新テストは
zshrc/zshenvの PATH 順序も検証するが、setup-check.ymlの trigger paths はsetup/**のみ。zshrc単独の変更では CI が回らない。workflow の paths 拡張は本 PR のスコープ外としたので、別途判断が要る。動作確認方法
新テスト 2 件:
languages.zsh pins the standalone dolt CLI to 2.2.0 globally via mise's aqua backend—
mise install/mise use --globalの両方にaqua:dolthub/dolt@2.2.0が出ること、dolthub/dolt@2.3が出ないことを stub 経由で確認the shell config keeps mise ahead of Homebrew on PATH, so the pinned dolt is the one beads runs—
zshenvの shims activation の存在と、zshrcでmise activateがbrew shellenvより後の行にあることを確認ミューテーション確認済み: pin を
2.3.1に書き換えるとテスト 1 がnot okになる。🤖 Generated with Claude Code