Skip to content

fix: 出力圧縮でソース内の絶対パスを保持する - #4

Merged
owayo merged 4 commits into
mainfrom
fix/hooks-audit-20261015
Oct 15, 2026
Merged

owayo merged 4 commits into
mainfrom
fix/hooks-audit-20261015

Conversation

@owayo

@owayo owayo commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

フック出力のパス短縮が診断内のソースコードにも適用され、cp /work/project/input /work/project/output が cp input output に変わっていました。行番号付きのソース抜粋とformatterの差分行・文脈行で再現し、修正前に追加した2件の回帰テストが失敗することを確認しました。

ソース行を共通接頭辞の算出と置換から除外し、診断情報だけを短縮します。unified diffの文脈判定は正規化とパス短縮で共有しました。公開APIの変更はありません。

  • ソース抜粋、unified diff、接頭辞の算出範囲、移行処理の進捗表示、CRLF・空行の境界を確認する5件のテストを追加。出力正規化の単体検証244件が成功しました。
  • 6種類のエージェントのHooks仕様を確認。Claude CodeのFileChangedはformatter自身の変更でも再発火するため、保存後フックにはPostToolUseを使う方針を英語・日本語の統合ドキュメントに補足しました。
  • READMEの英語・日本語版とAGENTS.mdに、ソース内の絶対パスを保持する規則を反映しました。設定ガイドでは、正常終了した子のパイプを孫プロセスが保持する場合も成功状態を返す既存の挙動に説明を合わせました。
  • depup --install --include-pinnedでthiserrorの要求バージョンを2.0.21へ更新しました。Cargo.lockは既に同じ版を解決しています。

ASTによる差分レビュー、影響分析、未使用コードの確認、差分の空白検査、公開前スクラブを実施しました。既存の公開APIの変更や未解決の影響は検出されていません。最終コミットのCI全8件が成功しました。Linux・macOSでformat、clippy、全テストを両パーサー構成で実行し、Windowsでも両構成のテストが成功しています。配布用6ターゲットのリリースビルドも成功しました。

owayo added 2 commits October 15, 2026 14:42
依存関係の更新ツールで公開後の経過期間と脆弱性情報を確認し、
thiserrorの要求バージョンを2.0.20から2.0.21へ更新する。
メジャー更新とRustツールチェーンの変更はない。
Cargo.lockは既に2.0.21を解決しているため変更しない。
診断ヘッダー用の共通パス短縮がソース抜粋にも適用され、
cp /work/project/input /work/project/outputをcp input outputへ
書き換えていた。formatterの追加・削除行と文脈行でも同じ問題を再現した。

行番号付きソース抜粋と差分行をパスの抽出・置換の両方から除外し、
診断情報だけを短縮する。unified diffの文脈判定は正規化とパス短縮で
共有し、異なる判定経路によるコードの破壊を防ぐ。

ソース抜粋、unified diff、共通接頭辞の算出範囲、移行処理の進捗表示を
検証する4件のテストを追加した。修正前はパス保持の2件が失敗し、
修正後は出力正規化の243件すべてが成功する。

英語・日本語のREADMEとエージェント向け規約を更新する。
Hooks仕様の確認に基づき、FileChangedの再発火によるループを避けるため
保存後のformatterはPostToolUseへ登録することを統合ドキュメントに補足する。
@owayo owayo self-assigned this Oct 15, 2026
owayo added 2 commits October 15, 2026 14:45
子プロセスが成功した後に孫プロセスだけが出力パイプを保持する場合、
実装は排出猶予後に残ったプロセスグループを停止し、取得済みの出力と
成功状態を返している。従来の説明は一律にタイムアウトとしてブロックする
内容だったため、実装と既存テストに合わせて修正する。

AGENTS.mdと英語・日本語の設定ガイドで、直接の子が成功した場合と
失敗した場合の報告を区別する。実行時の挙動は変更しない。
unified diffのファイルヘッダーと、SQLコメントを削除したソース行は
どちらも「--- パス」の形になるため、絶対パスを保持する挙動を固定する。
出力の形式だけから両者を決めつけて短縮し、コードを変えてしまうことを防ぐ。

CRLF入力の差分ブロックが空行で終了した後は、診断ヘッダーの
パス短縮が再び有効になることも同じテストで確認する。
@owayo
owayo merged commit 173797b into main Oct 15, 2026
8 checks passed
@owayo
owayo deleted the fix/hooks-audit-20261015 branch October 15, 2026 06:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant