Conversation
# Conflicts: # packages/hub/src/data/analytics.json
There was a problem hiding this comment.
Pull request overview
Hub 側の AI サービス向けセレクタ更新と、Extension 側の contenteditable 入力処理(legacyMode / Perplexity 特例)の整理を行うPRです。
Changes:
- Claude の送信ボタン submitSelectors を更新
- contenteditable への入力処理から Perplexity 向け legacyMode 分岐を削除し、inputContentEditable の legacyMode 実装を変更
- analytics.json のイベントカウント更新
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/hub/src/data/analytics.json | ダウンロードイベントの集計値を更新 |
| packages/hub/public/data/ai-services.json | Claude の submitSelectors を更新 |
| packages/extension/src/services/pageAction/dispatcher.ts | contenteditable 入力で legacyMode を使わない呼び出しに変更 |
| packages/extension/src/services/pageAction/backgroundDispatcher.ts | contenteditable 入力で legacyMode を使わない呼び出しに変更 |
| packages/extension/src/services/dom/inputUtils.ts | inputContentEditable の legacyMode 分岐を簡略化し、InputEvent dispatch の位置を変更 |
| // Dispatch InputEvent to notify frameworks of the text change | ||
| const inputEvent = new InputEvent("input", { | ||
| inputType: "insertText", | ||
| data: value, | ||
| bubbles: true, | ||
| cancelable: false, | ||
| }) | ||
| el.dispatchEvent(inputEvent) | ||
| } |
There was a problem hiding this comment.
- InputEvent(insertText) のdispatchが else ブランチ内に移動しており、legacyMode=true の場合は insertText の InputEvent を送らなくなっています(以前は常にdispatchされていました)。
- execCommand が常に期待通り input イベントを発火するとは限らないため、React/Lexical等のフレームワークが変更を検知できない可能性があります。
- legacyModeでも従来通り insertText の InputEvent をdispatchする(条件分岐の外に戻す、または legacyMode 側でも明示的にdispatchする)形にしてください。
|
test comment |
|
コードレビュー PR#359 - 詳細は別途送付します |
コードレビューこのPRは主に2つの変更を行っています:
重要な指摘1.
Perplexity.aiの呼び出し元が削除されたことで、 2. Claude.aiの送信ボタンセレクターが脆弱
新しいセレクター 注意事項3. レガシーモードで
変更後は 4. レガシーモードでの複数行テキスト処理の動作変更
変更前はレガシーモードでも行分割と 良い点
提案
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #359 +/- ##
==========================================
+ Coverage 25.66% 25.67% +0.01%
==========================================
Files 309 309
Lines 31240 31237 -3
Branches 1547 1550 +3
==========================================
+ Hits 8017 8020 +3
+ Misses 23223 23217 -6 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
コードレビューPR全体を確認しました。主な変更点は以下の通りです:
重要な指摘事項1. legacyMode 時の InputEvent ディスパッチが削除された(潜在的バグ)ファイル: 変更前(元のコード)では、 変更後では、 // 変更後(新コード)
} else {
for (const [idx, val] of values.entries()) {
// ... 通常モード処理 ...
}
// legacyMode 時にはここに到達しない
const inputEvent = new InputEvent("input", { ... })
el.dispatchEvent(inputEvent)
}
提案: legacyMode のループ終了後にも InputEvent をディスパッチするか、両方のブランチ共通のコードとして関数末尾に残すことを検討してください。 2.
|
| 項目 | 評価 |
|---|---|
| コードの構造改善 | legacyMode と通常モードの分離は読みやすさが向上している |
| 潜在的バグ | legacyMode 時の InputEvent 未発火(要確認) |
| デッドコード | legacyMode パラメーターが未使用になっている |
| セレクターの脆弱性 | CSS Modules ハッシュ依存は継続的メンテナンスが必要 |
| ドキュメント | perplexity.ai 削除の理由、analytics 変更の説明が欲しい |
全体として変更量は少なく、方向性は理解できます。上記の点を確認・対応いただければ、よりロバストな実装になると思います。
No description provided.