<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Rust on 大体動かない</title><link>https://daitai.dev/tags/rust/</link><description>Recent content in Rust on 大体動かない</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Sat, 09 May 2026 23:59:17 +0900</lastBuildDate><atom:link href="https://daitai.dev/tags/rust/index.xml" rel="self" type="application/rss+xml"/><item><title>RTK に issue 立ててプルリク作った話</title><link>https://daitai.dev/posts/rtk-pr-1800/</link><pubDate>Sat, 09 May 2026 23:59:17 +0900</pubDate><guid>https://daitai.dev/posts/rtk-pr-1800/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — RTK に立てた issue が1週間放置されたので自分でプルリクを出した。&lt;code&gt;run_in_terminal&lt;/code&gt; の未認識バグを修正し、重複関数を統合。ローカル確認では mise と linuxbrew の PATH 競合に引っかかったが解決し、PR &lt;a href="https://github.com/rtk-ai/rtk/pull/1800"&gt;#1800&lt;/a&gt; を提出した。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://daitai.dev/posts/rtk-copilot-chat/"&gt;前の記事&lt;/a&gt;で「引き続き更新を待つかぁ」と書いたやつの続き。&lt;/p&gt;
&lt;h2 id="1週間待ったけど動きがなかった"&gt;1週間待ったけど動きがなかった&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/rtk-ai/rtk/issues/1425"&gt;Issue #1425&lt;/a&gt; を立てたあと、1週間ほど本体の動向を見ていた。メンテナさんも忙しいだろうし、そんなもんかと思っていたけど、なかなか動きがない…&lt;/p&gt;
&lt;p&gt;うん。待つの飽きた。&lt;/p&gt;
&lt;p&gt;「どうせなら自分でプルリクを出してしまえ」&lt;/p&gt;
&lt;h2 id="リファクタしてからプルリクを作る"&gt;リファクタしてからプルリクを作る&lt;/h2&gt;
&lt;p&gt;ローカルには &lt;code&gt;fix(hooks): VS Code Copilot Chat...&lt;/code&gt; というコミットがすでにあった。ただそのまま出すのは品質的に不安だったので、upstream/develop ベースでブランチを切り直して cherry-pick し、ついでに既存のコードベースのお作法を調査してリファクタも入れた。&lt;/p&gt;
&lt;p&gt;変更の内容は3つ：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;detect_format()&lt;/code&gt; に &lt;code&gt;&amp;quot;run_in_terminal&amp;quot;&lt;/code&gt; を追加&lt;/strong&gt;
VS Code Copilot Chat が渡す &lt;code&gt;tool_name&lt;/code&gt; の値で、これが認識されないとフックが PassThrough になっていた。根本的なバグ修正。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;handle_vscode()&lt;/code&gt; と &lt;code&gt;handle_copilot_cli()&lt;/code&gt; を &lt;code&gt;handle_copilot_rewrite()&lt;/code&gt; に統合&lt;/strong&gt;
ほぼ同じロジックが2関数に分散していたので1つにまとめた。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;VS Code 向けのレスポンスを &lt;code&gt;allow/ask + updatedInput&lt;/code&gt; から &lt;code&gt;deny + suggestion&lt;/code&gt; に変更&lt;/strong&gt;
前の記事で書いた「承認ループ」の回避。Copilot Chat は &lt;code&gt;updatedInput&lt;/code&gt; を承認後に無視するので、Copilot CLI と同じ &lt;code&gt;deny&lt;/code&gt; + reason 方式に統一した（詳細は &lt;a href="https://github.com/rtk-ai/rtk/issues/1425"&gt;#1425&lt;/a&gt;）。&lt;/p&gt;</description></item><item><title>mise + linuxbrew 環境で cargo install したバイナリが VSCode に認識されない問題</title><link>https://daitai.dev/posts/cargo-path/</link><pubDate>Tue, 21 Apr 2026 21:36:42 +0900</pubDate><guid>https://daitai.dev/posts/cargo-path/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — &lt;code&gt;mise&lt;/code&gt; で Rust を管理している環境では &lt;code&gt;.cargo/env&lt;/code&gt; が no-op になる。&lt;code&gt;.profile&lt;/code&gt; で &lt;code&gt;export PATH=&amp;quot;$HOME/.cargo/bin:$PATH&amp;quot;&lt;/code&gt; と無条件に書くのが確実。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://daitai.dev/posts/rtk-copilot-chat/"&gt;前の記事&lt;/a&gt;の &lt;a href="https://github.com/rtk-ai/rtk/issues/1425"&gt;RTK のバグ報告&lt;/a&gt;のために深夜にせこせこやってたんですよ。&lt;/p&gt;
&lt;p&gt;で、&lt;code&gt;cargo install --path .&lt;/code&gt; してローカルのバイナリで確認しようとしたら、Claude Code が旧バイナリを使い続ける。小一時間ハマってイライラしたので記録しておく。&lt;/p&gt;
&lt;h2 id="症状"&gt;症状&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cargo install --path . &lt;span class="c1"&gt;# ローカル fix 済みバイナリをインストール&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;which rtk &lt;span class="c1"&gt;# → /home/linuxbrew/.linuxbrew/bin/rtk ← 旧バイナリ&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;~/.cargo/bin/rtk&lt;/code&gt; のはずが、linuxbrew の rtk が勝っている。&lt;/p&gt;
&lt;p&gt;なにやっても変わらねぇ…&lt;/p&gt;
&lt;h2 id="調査"&gt;調査&lt;/h2&gt;
&lt;h3 id="path-の順序"&gt;PATH の順序&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;1 ~/.local/share/mise/shims
2 /home/linuxbrew/.linuxbrew/bin ← ここで rtk を拾う
...
7 ~/.cargo/bin
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;linuxbrew が &lt;code&gt;.cargo/bin&lt;/code&gt; より前にいるんでよくある単純な PATH 順の問題だろうと甘く見てました。はい。&lt;/p&gt;
&lt;p&gt;そこからはまりまくった。&lt;/p&gt;
&lt;h3 id="bashrc-に追記しても効かない"&gt;.bashrc に追記しても効かない&lt;/h3&gt;
&lt;p&gt;Claude さんのおすすめにより、&lt;code&gt;.bashrc&lt;/code&gt; 末尾に &lt;code&gt;. &amp;quot;$HOME/.cargo/env&amp;quot;&lt;/code&gt; を追記して VSCode を再起動、結果変わらず。そりゃそうだろ。&lt;a href="https://daitai.dev/posts/copilotchat-claudecode-bash/"&gt;前調べた時&lt;/a&gt;って非インタラクティブじゃなかったっけ？&lt;/p&gt;</description></item></channel></rss>