Conversation
Gemini側のUI変更でハードコードしたXPathセレクターが要素探索に失敗していたため、 ai-services.jsonでメンテナンスしている入力欄・送信ボタン・コピーボタンの セレクターを実行時に取得して使用するようにした。コピー用セレクターが 未取得の場合(旧キャッシュ等)は現行のCSSセレクターにフォールバックする。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
searchUrl入力欄のonBlurでGeminiのMarkdown形式URLを生URLに変換した際、 setValueだけでは古い値に対するzodエラーが残ったままになっていたため、 clearErrorsを呼んでエラー表示をリセットするようにした。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Shows a one-time toast on the options page after a command is created, inviting the user to share it to the Selection Command Hub. Once shown, it is never shown again (hasShownHubShareToast flag), following the same pattern as the existing review-request toast. Closes #443 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EJVeN7n8jzatkUy99SGyhG
コマンドリストのボタン群をシンプル化し、Hubへのリンクは新規コマンド作成時の 種別選択ダイアログ右上にバナー形式で配置。リンクラベルは全言語のmessages.jsonに Option_commandType_hubLinkキーを追加して多言語対応した。
Co-authored-by: ujiro99 <677231+ujiro99@users.noreply.github.com>
初回シェア時、未登録ユーザーもダッシュボード経由でログイン画面にリダイレクトされ 自分で登録画面を探す必要があった。HUB_REGISTEREDフラグをローカルに永続化し、 未登録の場合はサインアップ画面を直接開くように変更。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
onAutoClose was unhandled so the "shown once" flag never persisted when the toast timed out, letting it reappear on the next command. Also adds unit tests for isHubShareable, HubShareToast, and the new-command toast trigger branch in CommandList that were previously uncovered. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Fix/option screen
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…nimation. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…oast. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
コマンド新規作成時、Hubへの共有を誘うToastを表示する
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UaERoKexgDnvXJiXA3LGEB
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #446 +/- ##
==========================================
+ Coverage 39.56% 46.59% +7.02%
==========================================
Files 237 239 +2
Lines 25353 25710 +357
Branches 1886 2057 +171
==========================================
+ Hits 10032 11979 +1947
+ Misses 15321 13731 -1590 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
レビュー結果v1.1.1リリース向けの統合PR(複数コミット・複数機能を含む)を確認しました。全体的に実装は丁寧で、テストカバレッジも新規ロジックに対してよく作り込まれています。重大なバグは見つかりませんでしたが、いくつか気になった点を挙げます。 コード品質・保守性
テスト
セキュリティ
その他(良かった点)
全体として大きな懸念はなく、上記は軽微な改善提案です。マージ判断は開発チームにお任せします。 |
installed / option_screen_opened / hub_screen_opened / folder_create / page_rule_create を新設し、command_add・selection_command はコマンド種別 (search/aiprompt/other)で分岐した新イベントに置き換えた。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
installed / option_screen_opened / hub_screen_opened / folder_create / page_rule_create の分岐ロジックと command_create_*・hub_add_*・ selection_command_* のカテゴリ振り分けを検証するテストを追加。 new_command_hub.tsx はテスト容易性のため NewCommandHubBridge を コンポーネントとして切り出した。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Selection Command Hub側のコマンド実行数集計 (ga4-client.ts)がイベント名 "selection_command" を前提にしており、 search/aiprompt/other への分割は不整合を招くため元に戻す。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Selection Command Hubにログインしたユーザーを識別できるよう、Supabaseセッションから user_idを取得してHubUserとして保存し、GA4のsendEventで自動的にuser_idを送信するように した。あわせてclient_id/user_idの取得をchrome.storage.localへの単一get呼び出しに まとめ、session_idの取得と並列化して無駄なstorageアクセスを削減。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
getCommandCreateEvent/getHubAddEventの構造的重複をジェネリックヘルパー createCategoryEventGetterに統合。あわせてgetCommandAnalyticsCategoryを const.tsからanalytics.tsへ移動し、常にセットで使われる getCommandCreateEvent/getHubAddEvent内に隠蔽することで凝集度を上げた。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
GA4イベントを追加: アンインストールユーザーと継続ユーザーの利用状況比較
Closes #449 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
レビュー結果62ファイル変更・全体的にテストが手厚く追加されており( 1. [提案]
|
…kip backup checks Wraps the client_id fetch/setUninstallURL call in its own try/catch, falling back to the plain uninstall URL on failure, and adds tests that exercise the onInstalled listener end to end. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
# Conflicts: # packages/extension/src/background_script.test.ts # packages/extension/src/test/setup.ts
Add: client_id をアンインストールフォームURLに付与
コードレビュー(PR #446: Dev 1.1.1)このPRは複数の機能(Hub共有トースト、GA4イベント追加、アンインストールURLへのclient_id付与、GeminiセレクターのAI Services JSON化など)をまとめたリリース統合PRのようです。全体としてテストカバレッジが非常に充実しており、コミット履歴を見ると既に何度かレビューコメントを反映した跡もあり、完成度は高いです。いくつか気になった点を挙げます。 1.
|
ShareButton.tsx と hub/background.ts で個別に HUB_REGISTERED を判定していたため、片方だけ条件を変更すると UI 表示とバックグラウンドの実際の挙動が不整合になる恐れがあった。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
360行の単一関数に検証・要件分析・ステップ構築・ディスパッチが混在し、 Start/Endステップの組み立てが両分岐で重複していたため、処理の流れを 追いやすくし、ステップ生成の定型コードを createStep() に一本化した。 挙動は変更していない。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…it, add translations HubShareToast now shows a party popper icon with popup animation and a bold title above the message, so add the hub_share_toast_title key and retranslate hub_share_toast_message across all locales. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
PRレビュー: Dev 1.1.1 (PR 446) Hubへのコマンド共有導線(サインアップ誘導・共有トースト)、アナリティクスイベントの細分化、 1. [中] Hub共有時のアナリティクスイベントに一貫性がない
一方、新設の 2. [軽微] client_id 生成ロジックが2箇所に重複している
どちらも ロジックが分かれているため将来の変更漏れが起きやすいのに加え、理論上、初回インストール直後にこの2つの呼び出しがほぼ同時に発火した場合( 3. [要確認] keepMenuOpenOnFocusChange の表示条件が変わっている
この設定はコンテキストメニュー起動時にも意味を持つように見える( 4. [軽微] アンインストールURLへの client_id 付与について
良かった点
以上、大きなバグは見当たりませんでした。1点目(アナリティクスの一貫性)と3点目(表示条件変更の意図確認)を中心にご検討いただければと思います。 このレビューはClaude Codeによって自動生成されました。 |
…in CI
yarn.lock resolved react-slot to 1.3.3 for both workspaces, which caused
Yarn's hoisting to nest a React 19 copy inside the shared react-slot
package even though the extension workspace uses React 18. This broke
Radix Slot components in tests ("Objects are not valid as a React child").
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ight/test version
…ered users Aligns with ShareButton.tsx, which already skips the event when the user is redirected to the sign-up page instead of actually sharing.
…ser case Fixes HST-05 failure caused by the previous commit's added isHubRegistered call not being mocked. Also adds HST-07 covering the skip-analytics path.
PR #446 コードレビュー18コミットにまたがる大きめの統合PR(Hub共有トースト、検索URLアシストのGemini対応、GA4イベント追加、アンインストールURLのclient_id付与、オプション画面UI調整など)のため、機能領域ごとに分けてコードを確認しました。全体的にテストが手厚く追加されている点は良い一方、いくつか見落としやすいバグ・回帰リスクが見つかりました。特に🔴の2点は動作に影響するため確認をお願いします。 🔴 高:
|
Pinning react-slot to 1.2.4 in root resolutions forced extension's
@radix-ui/react-select (which needs 1.3.3) down to a version whose
Slot implementation isn't ref-memoized, causing an infinite
setState/re-render loop ("Maximum update depth exceeded") in the
options page Select component.
Removed hub's Button dependency on Slot/asChild (unused) so hub no
longer needs @radix-ui/react-slot at all, letting the whole monorepo
resolve to a single 1.3.3 instance without cross-workspace hoisting
conflicts.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
No description provided.