feat: multi-sector watchlist system, reports progress, and UX improvements#4
Merged
Merged
Conversation
…sPanel The "Run Now" button used a blind 10s setTimeout with no server feedback. Now uses agentStatus from WebSocket to show real-time processing state, current ticker, model info, and queue depth. Auto-clears when report arrives. Made-with: Cursor
Test alert firing in AgentSettings is now only visible in sandbox mode, matching the existing gating in AgentExportPanel. Button label clarifies these are synthetic alerts to prevent confusion in production. Made-with: Cursor
- Add getOrCreateWatchlist(userId, name) to db.ts for named list upsert - Add deleteWatchlistByName and renameWatchlist to db.ts - Fix saveWatchlist to resolve by name instead of always targeting Default - Add createWatchlist, deleteWatchlist, renameWatchlist service exports - syncFromTastytrade now correctly creates separate named lists Made-with: Cursor
- Add create_watchlist, delete_watchlist, rename_watchlist WS message types - Add description field to WatchlistItemSchema for company names - Add broadcaster handlers for new watchlist operations - Add client-side callbacks in useMonitorSocket hook Made-with: Cursor
Replaces single flat WATCHLIST with SEED_WATCHLISTS grouped by sector: AI Supply Chain, Defense & Aerospace, Energy, AI Semiconductors, Biotech, Macro Hedges, and Crypto. Each sector has its own layer templates. Adds company descriptions to all seed entries. Seed function now creates separate named watchlists per sector. Made-with: Cursor
…art search Complete rewrite of WatchlistBuilder with: - Left sidebar showing all watchlists with create/rename/delete actions - Sector template picker when creating new watchlists (AI Supply Chain, Defense, Energy, Biotech, Crypto, etc.) with pre-populated layers - Company name column in the watchlist table - Debounced ticker search (300ms) with loading spinner - Keyboard navigation (arrow keys + Enter) in search dropdown - Dynamic layer dropdowns based on active watchlist's sector template Made-with: Cursor
…ta table - Add description column to watchlist_items DB schema with migration - Pass description through save/load/seed pipeline - Show company name column in WatchlistTable (Market Data view) - Filter by company name in market data search - Description persisted from ticker search results when adding symbols Made-with: Cursor
|
You have used all of your free Bugbot PR reviews. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |
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
setTimeoutwith actualagentStatusfrom WebSocket. Shows live spinner, current ticker being analyzed, model info, and queue depth. Auto-clears when report arrives.saveWatchlistnow resolves by name (was always writing to Default). Newcreate_watchlist,delete_watchlist,rename_watchlistWS messages. UI has a sidebar with all watchlists, create modal with sector templates (AI Supply Chain, Defense, Energy, Biotech, Crypto, etc.), inline rename/delete.descriptioncolumn towatchlist_itemsDB with migration. Company names persist from ticker search and display in both the Watchlist Builder table and Market Data table. Filter also searches by company name.Commits (7)
fix(dashboard): replace fake timer with real agent progress in ReportsPanelfix(dashboard): gate test alert buttons behind sandbox environmentfeat(monitor): support multiple named watchlists in backendfeat: add watchlist CRUD messages and description field to schemafeat(monitor): restructure seed data into multiple sector watchlistsfeat(dashboard): multi-watchlist builder with sector templates and smart searchfeat: add company name (description) to watchlist items and market data tableTest plan
Made with Cursor