Conversation
`LaunchWizardState::apply_hydration` が Runtime confirmation や custom agent cache refresh の経路で `apply_preferred_agent_profile()` を再実行し、 ユーザーが Settings step で明示的に選んだ `agent_id` を前回 Launch agent (preferred agent) で上書きしていた。SPEC-2014 FR-024 / FR-025 / FR-026 (2026-05-11 Local User Agent Preferences) の plan は preferred agent identity を wizard 初期化と明示的 agent 切替時のみ適用すると規定しており、hydration 経路で 再適用するとは記述されていない。 `apply_hydration` 内の `apply_preferred_agent_profile()` 呼び出しを `restore_agent_draft_or_defaults()` に置き換え、現在選択 agent の per-agent draft / previous profile だけを refresh するようにする。 `apply_preferred_agent_profile` 自体は constructor 経由 (initial open) と `set_agent_id` 経由の明示的切替で利用するため残し、関数 doc コメントに constructor-only と明示。 SPEC-2014 に新 phase `2026-05-15 Wizard Hydration Preserves User-Selected Agent` を追加し、US-24 / FR-054..FR-056 / SC-029..SC-030 を spec / plan / tasks に反映。RED test 2 件 (apply_runtime_context / custom agent cache refresh path) と既存の hydration_refresh_preserves_open_wizard_agent_settings test を併走させ、hydration 経路で agent identity が保持されることを固定する。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix(launch-wizard): preserve user-selected agent across hydration
プロジェクトタブのラベル (.project-tab-label) は `<span>` で テキストを保持しており、`.project-tab` に user-select 指定が 無いため browser default の `text` が継承され、ラベル領域を mousedown するとわずかなマウスのブレで text-selection drag として処理され click event が発火しなかった。アイコン (dot) や close ボタンは選択対象テキストが無い / button 要素 default で user-select: none のため影響を受けず、結果として「ラベル だけクリックが効かない、連打で稀に切り替わる」症状を生んでいた。 `.project-tab` 親要素に `user-select: none` を 1 行追加し、 label / dot / close 全子要素へ継承させる。タブ内テキストは ドラッグ選択できなくなるが、project_root は title 属性で 提示済みで UX 上の損失はない。 回帰防止のため project-tab-style.test.mjs を追加し、CSS rule から user-select 指定が失われた場合に test が落ちるよう assert。 package.json test:frontend-unit に新規 test を登録。 Closes #2744 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…t default swallows click) Closes #2746 `.split-button-menu-recent-row` と `.recent-project-row` は `<button>` だが 子要素として `<span class="...title">` と `<span class="...meta">` を持つ。 これらの span は user-select 指定がないため WebKit (wry GUI) で `user-select: auto` を継承し、わずかな pointer のブレで browser がテキスト 選択ドラッグと判定して click を swallow していた。dropdown は閉じず、 プロジェクトも開かない症状になっていた。 Issue #2744 が同じ root cause pattern を `.project-tab` で確定済みのため、 両 selector に `user-select: none` を 1 行ずつ追加して mirror する。回帰防止 test (crates/gwt/web/__tests__/recent-row-style.test.mjs) を新規追加し、 CSS rule に `user-select: none` が含まれることを assert する。 検証: pnpm test:frontend-unit (468 pass) / pnpm test:frontend-smoke (17 pass) / cargo test -p gwt --lib (637 pass) / cargo clippy -p gwt --all-targets --all-features -- -D warnings / cargo fmt --check / curl で配信される app.css が `user-select: none` を含むことを確認。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix(gui): make full project tab clickable by disabling text selection
…ce full path on hover Refs #2746 PR #2748 の user-select fix で click は通るようになったが、E2E 検証で 2 つの follow-up を発見: 1. Recent 行の hover 背景が dropdown 右端を 27px はみ出していた。原因は `.split-button-menu-recent` の grid が implicit `auto` track で、長い meta path に合わせて column 幅が膨らんでいたこと。`grid-template-columns: minmax(0, 1fr)` で column を menu 内側に固定し、`.split-button-menu-recent-row` に `min-width: 0` を追加して flex column の min-content 既定を解除した。 これで meta span の `text-overflow: ellipsis` が実際に発火する。 2. meta が ellipsis されると、どのディレクトリか判別できなくなった。各 Recent 行に `title="${kind} · ${path}"` を付け、native hover/focus tooltip で full path を提示する。dropdown 側 (`renderRecentProjectsIntoMenu`) と picker overlay 側 (`renderRecentProjects`) の両方に適用。 回帰防止: `crates/gwt/web/__tests__/recent-row-style.test.mjs` に 4 件の assertion を追加 (grid-template-columns / min-width / 両 renderer の row.title 代入を string match で検査、計 6 tests pass)。 検証: pnpm test:frontend-unit (471 pass) / pnpm test:frontend-smoke (17 pass) / cargo fmt --check / 実 browser (target/debug/gwt @ Playwright MCP) で Recent 行が menu 内に収まり、meta が ellipsis され、row.title が `${kind} · ${path}` に設定されることを確認。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
# Conflicts: # package.json
fix(gui): Open Project Recent click does not open project (user-select default swallows click)
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (8)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: daffc22d32
ℹ️ 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".
| if refreshed_previous_profiles && self.launch_path != LaunchWizardLaunchPath::QuickStart { | ||
| self.apply_preferred_agent_profile(); | ||
| self.restore_agent_draft_or_defaults(); |
There was a problem hiding this comment.
Preserve preferred agent on first hydration
apply_hydration now calls restore_agent_draft_or_defaults() instead of apply_preferred_agent_profile(), which means the preferred agent identity is never applied when the wizard is opened via open_loading and profiles arrive asynchronously. In that common path, agent_id is first set to the first detected agent, so refreshing previous_profiles no longer switches to the user's saved preferred agent unless they manually reselect it, regressing initial launch defaults for users with a non-default preference.
Useful? React with 👍 / 👎.
Summary
このリリースは GUI と Launch Wizard 周りの不具合修正 4 件を含む patch リリースです。Open Project の Recent ドロップダウンクリック動作、プロジェクトタブのクリック領域、Launch Wizard でのエージェント選択保持を改善しました。
Changes
Bug Fixes
Version
v9.36.1 (previous: v9.36.0)
Closing Issues
Closes #2744
Related Issues / Links