- Implemented HolderAnalysisWidget to display holder distribution and concentration risk.
- Created LiveTokenDataWidget for real-time market data including price changes and transaction activity.
- Added LiveTokenPriceWidget to show current token price and changes over various timeframes.
- Developed MarketOverviewWidget to provide a summary of market statistics and token prices.
- Introduced TrendingTokensWidget to showcase trending tokens with price changes and volume.
- Added TradingSuggestionToolUI for AI-powered trading suggestions with detailed entry, targets, and stop-loss information.
- Enhanced settings components for better user configuration options in the SurfSense Browser Extension.
- Add extractTwitterTokens() to detect $TOKEN mentions (e.g., $BONK, $SOL)
- Add extractContractAddresses() for Solana (base58) and Ethereum (0x) addresses
- Add extractTradingPairs() to detect TOKEN/SOL, TOKEN/USDT patterns
- Update extractPageContext() to use new detection functions
- Add detectedTokens field to PageContext interface
- Create DetectedTokensList component to display detected tokens
- Integrate DetectedTokensList into ChatInterface
- Add handleDetectedTokenClick to analyze selected tokens
- Support auto-detection on Twitter, generic pages, and DexScreener
Implements Task 2: Multi-Page Token Detection
Part of hybrid token detection system (manual search + auto-detect)
- Add search input field to ChatHeader component
- Search bar works on any page, not just DexScreener
- Supports token symbol, name, or contract address search
- Add onTokenSearch callback to handle search queries
- Implement token analysis widget display on search
- Part of hybrid token detection system (manual + auto-detect)
Implements Task 1: Add Universal Token Search Bar
- Remove 'engines' field from package.json (workaround for Plasmo issue #1040)
- Fix operator precedence in ChatInterface condition
- Resolves 'Failed to resolve popup.tsx' error
Note: Still encountering 'Unexpected token div' JSX error during build.
This appears to be a separate Plasmo bundler issue unrelated to our code changes.
- Add sidepanel folder to Tailwind content paths (root cause of broken CSS)
- Fix ChatInterface layout: group ChatInput and QuickCapture properly
- Remove sticky positioning from QuickCapture (now in flex container)
- Make TokenInfoCard buttons more compact for narrow screens
- Improve TokenAnalysisWidget button layout with flex-wrap
- Create 5 widget wrappers for inline chat display:
* WhaleActivityWidget - Wraps WhaleActivityFeed for whale transaction display
* TradingSuggestionWidget - Wraps TradingSuggestionPanel for entry/exit suggestions
* PortfolioWidget - Wraps PortfolioPanel for portfolio tracking
* ChartCaptureWidget - Wraps ChartCapturePanel for chart screenshots
* ThreadGeneratorWidget - Wraps ThreadGeneratorPanel for Twitter threads
- Update widgets/index.ts to export new widgets with Epic grouping
- Update ChatMessages.tsx:
* Add 5 new widget types to MessageWidget union
* Import new widget components and their types
* Add renderWidget cases for all new widgets with proper callbacks
* Update component documentation to list all supported widgets
- Widget integration pattern:
* Widgets wrap panels in containers with consistent styling
* All widgets support callback props for user interactions
* Widgets can be embedded inline in assistant messages
* Widget actions are handled via onWidgetAction callback
Enables AI to display Epic 2, 3, 4 panels inline in chat conversations