Parent Issue
Part of #35 — v0.3 Arbitrary Ticker Support
Depends on #36 — keyword generation must exist before the UI can call it.
Context
The current dashboard/main.py (or pulseengine/local/dashboard.py after #33) only shows the 24 hardcoded assets from config/settings.py in a dropdown. There is no way for a user to analyse a stock that isn't in that list.
This sub-issue adds a ticker lookup input to the local dashboard sidebar so users can type any ticker symbol and trigger a full signal analysis.
UI Specification
A new "Look up any ticker" section in the sidebar (below the existing asset selector) containing:
- A text input labelled "Ticker symbol (e.g. PLTR, ARM, TSMC)"
- An "Analyse" button (or on-enter trigger)
- A small validation hint if the input is not a recognisable ticker
The input should:
- Accept 1–10 character strings
- Convert to uppercase automatically
- Validate against Yahoo Finance (a quick
yfinance.Ticker(symbol).fast_info check is sufficient)
- Show a spinner while fetching
- On success: render the full signal analysis panel for the looked-up ticker
- On unknown ticker: show a friendly error message ("No data found for {symbol}. Check the ticker symbol and try again.")
Interaction with Existing Code
Acceptance Criteria
Notes
This feature must only appear in the local dashboard (local/). In the web demo (web/), the ticker lookup section should be replaced by a "Download the local app" call-to-action (tracked in #34).
Parent Issue
Part of #35 — v0.3 Arbitrary Ticker Support
Context
The current
dashboard/main.py(orpulseengine/local/dashboard.pyafter #33) only shows the 24 hardcoded assets fromconfig/settings.pyin a dropdown. There is no way for a user to analyse a stock that isn't in that list.This sub-issue adds a ticker lookup input to the local dashboard sidebar so users can type any ticker symbol and trigger a full signal analysis.
UI Specification
A new "Look up any ticker" section in the sidebar (below the existing asset selector) containing:
The input should:
yfinance.Ticker(symbol).fast_infocheck is sufficient)Interaction with Existing Code
generate_keywords(ticker)from [v0.3] Auto-generate keywords from company name, ticker symbol, and executive names #36 to build the keyword listanalyse_asset(ticker, keywords=generated_keywords)fromsrc/engine.pycomponents.pyrendering functions as existing assetsconfig/settings.py— they are session-scoped onlyAcceptance Criteria
pulseengine/local/)Notes
This feature must only appear in the local dashboard (
local/). In the web demo (web/), the ticker lookup section should be replaced by a "Download the local app" call-to-action (tracked in #34).