Conversation
- aqua で管理していた CLI ツールを mise の aqua backend に移行 - Go は mise の core backend を使用 - zsh 設定から aqua 関連の PATH/環境変数を削除 - Chezmoi スクリプトから aqua インストール処理を削除 - CI を mise ベースに変更 - Renovate から aqua-renovate-config を削除 - ドキュメントを更新
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6375ce3c18
ℹ️ 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".
.github/workflows/ci.yaml
Outdated
| - name: Install mise tools | ||
| run: | | ||
| aqua version | ||
| aqua install --test | ||
| cd dot_config/mise | ||
| mise install | ||
|
|
There was a problem hiding this comment.
GitHub Actions で cd dot_config/mise && mise install を実行していますが、MISE_GLOBAL_CONFIG_FILE を渡していないため runner はデフォルトの ~/.config/mise/config.toml しか探さず、リポジトリ内の dot_config/mise/config.toml で定義している gh/fzf/rg/jq/starship/direnv/nvim/go などの CLI がインストール対象になりません(.mise.toml 8-16 行には node/pnpm/go-jsonnet/go-task しか定義されていません)。その後のバージョン確認ステップでこれらのコマンドが存在せず CI が必ず失敗するため、mise install 実行前に MISE_GLOBAL_CONFIG_FILE=dot_config/mise/config.toml を指定するなど設定ファイルを読み込ませる必要があります。
Useful? React with 👍 / 👎.
- aws-cli: aqua → ubi backend に変更(PKG 形式の問題) - gopls: aqua → go backend に変更(go_install 非サポート) - 1password/cli: aqua → vfox backend に変更(404 エラー) - path-setup.tmpl から不要な MISE_GLOBAL_CONFIG_FILE を削除
- 1password/cli: vfox → aqua に戻し、バージョンを v2.32.0 に修正 - aws-cli: ubi → aqua に戻す - gopls: go backend を使用(aqua が go_install 非サポートのため) - path-setup.tmpl から不要な MISE_GLOBAL_CONFIG_FILE を削除
mise の aqua backend では一部ツールの checksum が取得できないため、 それらのツールのみ aqua CLI で直接管理する構成に変更。 - aqua CLI 管理: aws-cli, 1password/cli, zoxide - mise 管理: その他全ての CLI ツール、ランタイム、npm パッケージ - aqua CLI 自体は mise (github:aquaproj/aqua) でインストール
bash スクリプトは zshenv を読まないため、path-setup.tmpl に AQUA_GLOBAL_CONFIG が必要
- CI: mise shim が設定ファイルを見つけられるよう MISE_CONFIG_FILE を設定 - Ghostty: Shift+Return で改行を送信するよう keybind を追加
- mise-action に cache_key_prefix を追加 - aqua ツール用の actions/cache を追加 - aqua.yaml と checksums に基づくキャッシュキー
- actions/cache を v5.0.1 に更新(Node.js 24 対応) - aqua キャッシュキーに runner.arch を追加 - install: false の理由をコメントで明記
mise-action のキャッシュは dot_config/mise/ をパターン検出しないため、 actions/cache で明示的にキャッシュする
actions/cache を別途使う代わりに、mise-action の cache_key で カスタムハッシュを指定
- actions/cache を mise-action の前に配置 - mise-action は install: true(デフォルト)で cache: false - キャッシュ復元後に mise install が実行され、既存ツールはスキップ
actions/cache の別ステップではなく、mise-action の cache_key で カスタムキャッシュキーを指定
## 問題 Ghostty / VSCode で dotfiles ディレクトリを開くと以下のエラーが発生: ``` mise ERROR no tasks defined in ~/repos/github.com/tak848/dotfiles. Are you in a project directory? error: unexpected argument '--zsh' found error: unexpected argument '--completion' found ``` ## 根本原因 ### 1. 残骸 shim PR #322 (`89aa3f1`, Jan 5) で zoxide を mise → aqua CLI に移行した際、 `~/.local/share/mise/shims/zoxide` と `~/.local/share/mise/installs/aqua-ajeetdsouza-zoxide/0.9.8/` が残った。 `mise reshim` は「インストール済みの全ツール」から shim を生成するため、インストールディレクトリが残っている限り shim が再生成され続けていた。 → `mise uninstall aqua:ajeetdsouza/zoxide@0.9.8` で別途解消済み ### 2. mise v2026.2.10 の "Shims as PATH fallback" 変更 [PR jdx/mise#8106](jdx/mise#8106) により、`auto_install`(`not_found_auto_install`)有効時、 `mise activate zsh` が shims ディレクトリを PATH から除去しなくなった。 この変更の意図: - サブシェルで未インストールツールの auto-install が発動しない問題の修正 - mise 未インストールでもシステムの同名コマンドが誤って使われる問題の修正 **v2026.2.9 以前**: `mise activate zsh` は `.zprofile` の `mise activate zsh --shims` で追加された shims を PATH から明示的に除去していた **v2026.2.10 以降**: shims が PATH にフォールバックとして残る `diff <(mise-2026.2.9 activate zsh) <(mise-2026.2.11 activate zsh)` で確認: v2026.2.9 にあった shims 除去の `export PATH=...` 行が v2026.2.11 で削除されている。 ### エラー発生の流れ ``` .zprofile: mise activate zsh --shims → PATH に shims を追加 .zshrc: mise activate zsh v2026.2.9以前 → shims を PATH から除去 → zoxide は aqua バイナリに解決 ✅ v2026.2.10以降 → shims が PATH に残る → 残骸 shim が aqua より先にヒット ❌ .zshrc: eval "$(zoxide init zsh)" → ~/.local/share/mise/shims/zoxide(残骸 shim)が実行される → shim → bootstrap → exec mise init zsh → "init" はサブコマンドでなく experimental=true でタスク名として解釈 → "no tasks defined" エラー ``` ### shims フォールバックの設計上の問題 `mise reshim` は config で active でないインストール済みツール全ての shim も生成する。 v2026.2.10 以降、activate 時に shims が PATH フォールバックとして残る仕様になったため、 mise 管理から別ツール管理に移行したツールで古い shim が本物のバイナリより先にヒットし得る。 ## 修正 `.mise.toml` の `auto_install` を `true` → `false` に変更。 - `auto_install = false` にすることで shims フォールバックが無効化され、従来の shims 除去挙動に戻る - グローバル config (`~/.config/mise/config.toml`) も `auto_install = false` であり、プロジェクト config のみ `true` だった ## 検証 `MISE_AUTO_INSTALL=false mise activate zsh` の出力で shims 除去行の復活を確認済み。 `zsh -l -i -c 'exit' 2>&1` → mise エラーなし ## 関連リンク - [mise v2026.2.10 リリースノート](https://github.com/jdx/mise/releases/tag/v2026.2.10) - [PR jdx/mise#8106: feat(activate): add shims directory as fallback when auto-install is enabled](jdx/mise#8106) - PR #322: zoxide を mise → aqua CLI に移行 --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Summary
アーキテクチャ
変更内容
追加・修正
dot_config/mise/config.toml: aqua CLI + CLI ツール追加.mise.toml: aqua CLI 追加(リポジトリ作業用)dot_config/aquaproj-aqua/: checksum 取得不可ツールのみ管理削除
Test plan
mise install && aqua installで全ツールがインストールされることを確認