Skip to content

fix: ルール名の打ち直し中のタブイベントとの競合でグループの改名がスキップされるのを直す - #113

Merged
wire2c7 merged 1 commit into
developfrom
fix/110-rename-race-with-tab-event
Oct 29, 2026
Merged

wire2c7 merged 1 commit into
developfrom
fix/110-rename-race-with-tab-event

Conversation

@wire2c7

@wire2c7 wire2c7 commented Oct 29, 2026

Copy link
Copy Markdown
Owner

概要

ルールの名前(グループ名)を変えたとき、まれに実際のタブグループの名前が変わらないまま残る不具合を直す。

関連Issue

Closes #110

関連ADR

なし

変更内容

  • regroupTab(entrypoints/background/grouping.ts)がタブイベントの判定し直しのたびに titlesStore へ書いていた currentTitles を titlesForNewRules(utils/grouping/rule-change.ts)に置き換えた
  • currentTitles は有効なルールのタイトルを常にルールの今の名前で上書きしていたため、ルール名の変更の反映(applyRuleChange)がまだ実行されていない間にタブイベントが先に発火すると、記録だけが新しい名前に先回りしてしまい、後から来る反映処理が「変更済み」と誤認して実際のグループの改名を永久にスキップしてしまっていた
  • titlesForNewRules はまだ記録に無いルールの分だけタイトルを足し、記録済みのルールのタイトルは上書きしない。Issue ルールの変更のデバウンス中に作られたグループの名前・色が反映されない #36 が防ぎたかった「タブイベントが先にグループを作った場合に記録から漏れる」ケースはそのまま救い、競合でスキップされるケースだけを止める
  • 回帰防止のテストを追加(entrypoints/background/grouping.test.ts・utils/grouping/titles-for-new-rules.test.ts)

確認方法

  1. pnpm test で単体テストが通ることを確認(entrypoints/background/grouping.test.ts の新しいテストは、修正前のコードに戻すと失敗する)
  2. nix develop .#e2e --command bash -c 'pnpm build' の後、taskset -c 0 pnpm exec playwright test -c e2e --workers=1 -g "グループ名を打ち直す|ほかのルールの名前を通って打ち直す|名前を入れ替える" --repeat-each=40 を実行し、Issue本文の再現手順(1コアに制限した環境で高頻度に失敗する)が解消していることを確認(実行済み: 120件×3回、全件成功)

チェックリスト

  • PRタイトルとコミットメッセージが Conventional Commits に従っている
  • nix flake check と prek run --all-files が通る
  • 必要に応じてドキュメント(README.md / AGENTS.md)を更新した(今回は不要)
  • 設計判断を含む場合は docs/adr/ に ADR を追加した(今回は不要)

regroupTab はタブイベントの判定し直しのたびに、titlesStore へ「ルールが今持つべきタイトル」
(currentTitles)を記録していた。この記録は有効なルールのタイトルを常にルールの今の名前で
上書きするため、ルール名の変更の反映(applyRuleChange)がまだ実行されていない間にタブイベントが
先に発火すると、記録だけが新しい名前に先回りしてしまい、後から来る反映処理が「変更済み」と
誤認して実際のグループの改名を永久にスキップしてしまっていた。

currentTitles を titlesForNewRules に置き換え、まだ記録に無いルールの分だけタイトルを足し、
記録済みのルールのタイトルは上書きしないようにした。Issue #36 が防ぎたかった「タブイベントが
先にグループを作った場合に記録から漏れる」ケースはそのまま救い、競合でスキップされるケースだけを止める。

Closes #110

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@wire2c7
wire2c7 merged commit 880db1b into develop Oct 29, 2026
3 checks passed
@wire2c7
wire2c7 deleted the fix/110-rename-race-with-tab-event branch October 29, 2026 09:13
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