Uh oh!
There was an error while loading. Please reload this page.
feat: In-extension dismissible upsells for Roo Code Cloud - #7850
Conversation
…or chat messages (#7790) * feat: add click-to-edit, ESC-to-cancel, and fix padding consistency - Enable click-to-edit for past messages by making message text clickable - Add ESC key handler to cancel edit mode in ChatTextArea - Fix padding consistency between past and queued message editors - Adjust right padding for edit mode to accommodate cancel button Fixes#7788 * fix: adjust padding and layout for ChatTextArea in edit mode * refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class --------- Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Hannes Rudolph <hrudolph@gmail.com> Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com> Co-authored-by: Bruno Bergher <me@brunobergher.com>
Co-authored-by: Roo Code <roomote@roocode.com> Co-authored-by: Hannes Rudolph <hrudolph@gmail.com> Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
feat: add taskSyncEnabled to userSettingsConfigSchema Co-authored-by: Roo Code <roomote@roocode.com>
chore: bump version to v1.75.0
…ls chart (#7830) Co-authored-by: Roo Code <roomote@roocode.com>
- Created DismissibleUpsell component with variant support (banner/default) - Added dismissedUpsells to GlobalState for persistence - Implemented message handlers for dismissing and retrieving dismissed upsells - Added comprehensive tests for the component - Uses VSCode extension globalState for persistent storage
- Changed from className to separate 'id' and 'className' props for better semantics - Added i18n support for accessibility labels (aria-label and title) - Fixed memory leak by adding mounted flag to prevent state updates after unmount - Fixed race condition by sending dismiss message before hiding component - Fixed inefficient array operations in webviewMessageHandler - Added comprehensive test coverage for edge cases including: - Multiple rapid dismissals - Component unmounting during async operations - Invalid/malformed message handling - Proper message sending before unmount - Added null checks for message data to handle edge cases gracefully
| <tool>gh pr checkout [PR_NUMBER] --force</tool> | ||
| <tool>git fetch origin main</tool> | ||
| <tool>git rebase origin/main</tool> | ||
| <tool>GIT_EDITOR=true git rebase origin/main</tool> |
There was a problem hiding this comment.
These changes to the merge resolver rules appear unrelated to the upsell feature. Could you remove these files from this PR to keep it focused on the dismissible upsells implementation?
There was a problem hiding this comment.
I have no idea how they ended up here. If a reviewer has any thoughts, I'm all ears.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Description
Adds in-app upsells for Roo Code Cloud.
Introduces a new DismissibleUpsell React component, which ensures messages are displayed in a consistent way and enforces dismissal logic, so we don't annoy users. The dismissal state is persisted in the VS Code extension's global state, ensuring they do not reappear after a user has closed them.
Key implementation details include:
Test Procedure
The functionality was tested via a combination of new unit tests and manual verification.
Unit Tests:
Comprehensive tests were added for the DismissibleUpsell component, covering its variants, dismissal logic, and various edge cases such as rapid dismissals and state updates on unmounted components.
Tests for the auto-approve upsell functionality were also created and fixed.
Manual Testing:
To verify the changes, reviewers can perform the following steps:
Screenshots
Important
Introduces in-app dismissible upsells for Roo Code Cloud with new React components, state management, and internationalization support.
DismissibleUpsellReact component for consistent message display and dismissal logic.CloudUpsellDialogto reduce duplication in "Share Task" and "Cloud View".DismissibleUpsellcovering variants, dismissal logic, and edge cases.This description was created by
for 9610626. You can customize this summary. It will automatically update as commits are pushed.