Skip to content

fix: age の通知と mise の excludes の警告を 1 回だけ、進捗バーを避けて出す - #135

Merged
owayo merged 1 commit into
mainfrom
fix/issue-108-notices-once
Nov 6, 2026
Merged

owayo merged 1 commit into
mainfrom
fix/issue-108-notices-once

Conversation

@owayo

@owayo owayo commented Nov 6, 2026

Copy link
Copy Markdown
Owner

概要

age の設定の通知 (⚠ --age ignored: project's minimumReleaseAge ...) と、mise の minimum_release_age_excludes の警告が、マニフェストの数だけ繰り返し表示されていました。進捗バーの表示中に、バーを避けずに出力されていました。同じ通知と警告は実行全体で 1 回だけ、進捗バーと混ざらないように出します。

原因

orchestrator.rs の build_filter_for が通知と警告を出しており、check の段階はこの関数をマニフェストごとに呼びます。進捗バーはその前に始まっているので、出力がバーの描画と混ざっていました。AGENTS.md は「バー表示中の警告は Progress::suspend で包む」としています。

変更内容

  • build_filter_for は通知を出さずに、UpdateFilter と一緒に返す。age の解決 (orchestrator/age.rs) の emit_notice は通知の文字列を返す notices に、mise の excludes の警告も文字列を返す mise_age_excludes_warning にした。
  • check の段階は、まだ出していない通知だけを (unseen_notices)、Progress::suspend で進捗バーを避けて出す。同じ通知は実行全体で 1 回だけ出し、ディレクトリごとに違う通知 (別の設定ファイルの値など) はそれぞれ出す。
  • AGENTS.md に書いた。

検証

  • 回帰テスト: orchestrator::tests::filter_notices_are_returned_once_instead_of_printed_per_manifest (build_filter_for が age の通知を出さずに返し、同じ通知は 2 回目から出さない。新しい関数を使うので、修正前のコードではコンパイルできない)
  • 手元での修正前後の比較: 3 パッケージの pnpm workspace (ルートに minimumReleaseAge: 14400) に depup --age 2w --dry-run を実行し、--age ignored の通知が修正前は 4 回 (ルートと各パッケージ)、修正後は 1 回出ることを確かめた
  • cargo fmt --all -- --check: pass
  • cargo clippy --locked --all-targets -- -D warnings: pass
  • cargo test --locked (Windows): pass

Closes #108

🤖 Generated with Claude Code

age の設定の通知 (⚠ --age ignored: project's minimumReleaseAge ...) と、
mise の minimum_release_age_excludes の警告が、マニフェストの数だけ繰り返し
表示されていた。進捗バーの表示中に、バーを避けずに出力されていた。ルートに
minimumReleaseAge を持つ pnpm workspace で depup --age 2w --dry-run を実行
すると、パッケージの数だけ ⚠ --age ignored... が出ていた。

orchestrator.rs の build_filter_for が通知と警告を出しており、check の段階は
この関数をマニフェストごとに呼ぶ。進捗バーはその前に始まっているので、出力
がバーの描画と混ざっていた。

- build_filter_for は通知を出さずに、UpdateFilter と一緒に返す。age の解決
  (orchestrator/age.rs) の emit_notice は通知の文字列を返す notices に、
  mise の excludes の警告も文字列を返す mise_age_excludes_warning にした。
- check の段階は、まだ出していない通知だけを (unseen_notices)、
  Progress::suspend で進捗バーを避けて出す。同じ通知は実行全体で 1 回だけ
  出し、ディレクトリごとに違う通知 (別の設定ファイルの値など) はそれぞれ出す。
- AGENTS.md に書いた。

テスト: build_filter_for が age の通知を出さずに返し、同じ通知は 2 回目から
出さないこと。手元で、3 パッケージの pnpm workspace に depup --age 2w
--dry-run を実行し、修正前は通知が 4 回、修正後は 1 回出ることを確かめた。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@owayo owayo self-assigned this Nov 6, 2026
@coderabbitai

coderabbitai Bot commented Nov 6, 2026

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 6828b869-88a5-4e96-9e38-785388ca6a69
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@owayo
owayo merged commit 17d30a7 into main Nov 6, 2026
8 checks passed
@owayo
owayo deleted the fix/issue-108-notices-once branch November 6, 2026 12:29
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.

age の通知と mise の excludes の警告がマニフェストの数だけ表示され、進捗バーと混ざる

1 participant