feat: add prompt and side panel support to page actions - #458
Open
CoffeePatch wants to merge 4 commits into
Open
feat: add prompt and side panel support to page actions#458CoffeePatch wants to merge 4 commits into
CoffeePatch wants to merge 4 commits into
Conversation
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Moderate Side Panel, placeholder-detection, and Hub import issues remain unresolved.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
This PR adds Prompt support, {{Prompt}} expansion, and Side Panel execution for Page Actions, with related UI, storage, tests, and localization updates.
Changes:
- Added Prompt fields and variable expansion.
- Added Side Panel display and execution support.
- Included Global Icon Color Override changes, overlapping PR #457.
File summaries
| File | Summary |
|---|---|
packages/shared/src/types/command.ts |
Adds shared icon override types. Nit (3 votes): Icon-color changes overlap PR #457 and should be separated or documented. |
packages/shared/src/constants/open-mode.ts |
Adds the Side Panel open mode. |
packages/hub/src/types/pageAction.ts |
Adds Prompt to the Hub Page Action type. |
packages/extension/src/types/schema.ts |
Adds Prompt and icon override schema fields. Moderate (1 vote): Hub imports can lose overrideGlobalIconColor. |
packages/extension/src/types/schema.test.ts |
Tests the updated schema. |
packages/extension/src/types/index.ts |
Updates extension type exports. |
packages/extension/src/services/storage/commandStorage.test.ts |
Tests Side Panel setting persistence. |
packages/extension/src/services/pageAction/pageActionTypes.ts |
Adds runtime Prompt types. |
packages/extension/src/services/pageAction/insertSymbols.ts |
Adds Prompt symbols. |
packages/extension/src/services/pageAction/helper.ts |
Adds multi-stage variable expansion. |
packages/extension/src/services/pageAction/helper.test.ts |
Tests variable expansion. |
packages/extension/src/services/pageAction/dispatcher.ts |
Applies Prompt expansion during dispatch. |
packages/extension/src/services/pageAction/dispatcher.test.ts |
Tests dispatcher Prompt handling. |
packages/extension/src/services/pageAction/backgroundDispatcher.ts |
Applies Prompt expansion to background execution. |
packages/extension/src/services/pageAction/backgroundDispatcher.test.ts |
Updates background dispatcher tests. |
packages/extension/src/services/pageAction/background.ts |
Propagates Prompt through execution. |
packages/extension/src/services/pageAction/background-sidePanel.ts |
Adds Side Panel Prompt and reconnection handling. |
packages/extension/src/services/pageAction/background-sidePanel.test.ts |
Tests Side Panel execution. |
packages/extension/src/services/option/userStyles.ts |
Adds icon color settings. |
packages/extension/src/services/ipc.ts |
Updates IPC payload types. |
packages/extension/src/lib/favicon.ts |
Adds favicon detection. |
packages/extension/src/lib/favicon.test.ts |
Tests favicon detection. |
packages/extension/src/hooks/usePopupContext.tsx |
Provides icon color state. |
packages/extension/src/hooks/pageAction/usePageActionRunner.ts |
Propagates Prompt through the runner. |
packages/extension/src/const.ts |
Adds icon color constants. |
packages/extension/src/components/Popup.tsx |
Provides icon color state to the popup. |
packages/extension/src/components/pageAction/InputPopup.tsx |
Adds Prompt insertion UI. |
packages/extension/src/components/pageAction/InputEditor.tsx |
Enables Prompt insertion. |
packages/extension/src/components/option/field/OpenModeToggleField.tsx |
Adds the Side Panel option. |
packages/extension/src/components/option/field/OpenModeToggleField.test.tsx |
Tests open mode selection. |
packages/extension/src/components/option/field/IconField.tsx |
Adds icon color override UI. |
packages/extension/src/components/option/field/IconField.test.tsx |
Tests icon field behavior. |
packages/extension/src/components/option/editor/UserStyleList.tsx |
Adds icon color settings to the list. |
packages/extension/src/components/option/editor/PageActionSection.tsx |
Adds the Prompt editor. |
packages/extension/src/components/option/editor/FolderEditDialog.tsx |
Updates folder icon settings. |
packages/extension/src/components/option/editor/CommandEditDialog.tsx |
Saves Prompt and icon settings. |
packages/extension/src/components/option/editor/commandChangedDetector.ts |
Tracks Prompt changes. |
packages/extension/src/components/option/editor/commandChangedDetector.test.ts |
Tests change detection. |
packages/extension/src/components/menu/MenuItem.tsx |
Applies icon colors and favicon detection. |
packages/extension/src/components/menu/MenuImage.tsx |
Adds icon recoloring and accessibility handling. |
packages/extension/src/components/menu/MenuImage.test.tsx |
Tests icon rendering. |
packages/extension/src/components/menu/MenuFolder.tsx |
Applies folder icon settings. |
packages/extension/src/components/menu/Menu.tsx |
Adds icon URL context. |
packages/extension/src/components/menu/Menu.module.css |
Adds icon and text styles. |
packages/extension/src/action/pageAction.ts |
Adds Side Panel execution and Prompt propagation. Moderate (3 votes): Side Panel execution lacks clipboard fallback to selectedText, leaving {{SelectedText}} empty for no-selection shortcuts. Moderate (1 vote): Placeholder detection does not inspect Prompt content, hiding No-selection behavior for indirect references. |
packages/extension/src/action/pageAction.test.ts |
Tests Page Action execution. |
packages/extension/public/_locales/zh_CN/messages.json |
Updates Prompt and icon-color localization. |
packages/extension/public/_locales/ru/messages.json |
Updates Prompt and icon-color localization. |
packages/extension/public/_locales/pt_PT/messages.json |
Updates Prompt and icon-color localization. |
packages/extension/public/_locales/pt_BR/messages.json |
Updates Prompt and icon-color localization. |
packages/extension/public/_locales/ms/messages.json |
Updates Prompt and icon-color localization. |
packages/extension/public/_locales/ko/messages.json |
Updates Prompt and icon-color localization. |
packages/extension/public/_locales/ja/messages.json |
Updates Prompt and icon-color localization. |
packages/extension/public/_locales/it/messages.json |
Updates Prompt and icon-color localization. |
packages/extension/public/_locales/id/messages.json |
Updates Prompt and icon-color localization. |
packages/extension/public/_locales/hi/messages.json |
Updates Prompt and icon-color localization. |
packages/extension/public/_locales/fr/messages.json |
Updates Prompt and icon-color localization. |
packages/extension/public/_locales/es/messages.json |
Updates Prompt and icon-color localization. |
packages/extension/public/_locales/en/messages.json |
Updates Prompt and icon-color localization. |
packages/extension/public/_locales/de/messages.json |
Updates Prompt and icon-color localization. |
Review details
Suppressed comments (2)
packages/extension/src/action/pageAction.ts:45
- このプロンプトを追加すると、
prompt: "{{SelectedText}}"かつステップが{{Prompt}}の Page Action が作れますが、ショートカット設定のreferencesPlaceholderはステップ値だけを走査するため、この間接的な選択テキスト参照を認識できません。その結果、No-selection behavior の選択欄が表示されず、ユーザーは「何もしない」を設定できません。プロンプトも選択テキスト/クリップボード参照の判定対象に含めてください。
const hasPromptStep = command.pageActionOption.steps.some(
(step) =>
step.param.type === PAGE_ACTION_EVENT.input &&
step.param.value.includes(toInsertTemplate(INSERT.PROMPT)),
)
packages/extension/src/types/schema.ts:31
- このフィールドをスキーマで受理しても、Hub 経由の import では設定が保持されません。
packages/extension/src/services/hub/background.tsのhandleAddCommandは parsed コマンドを再構築する際にoverrideGlobalIconColorを各分岐へコピーしていないため、Hub から追加したコマンドでは値が失われ、グローバル色で再描画されます。import 経路にもこの値を引き継いでください。
- Files reviewed: 60/60 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+68
to
+71
| selectedText: selectionText, | ||
| srcUrl: pageUrl ?? "", | ||
| clipboardText: "", | ||
| useClipboard: needClipboard || (useClipboard ?? false), |
Comment on lines
+14
to
+15
| overrideGlobalIconColor?: boolean; | ||
| originalIconUrl?: string; |
CoffeePatch
force-pushed
the
feature/page-action-prompt
branch
from
September 14, 2026 07:37
1ae7380 to
c1ecb07
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
{{Prompt}}variable support.Validation
Automated tests passed.
Lint passed.
TypeScript type checking passed.
Build passed.
Manual browser testing passed, including:
{{Prompt}}behavior.Notes
The Global Icon Color Override work is handled separately in PR #457.