feat: platform overhaul — indigo design system, Command Palette, Approval Drawer, Toast#8
Merged
rogerdigital merged 20 commits intomainfrom Apr 15, 2026
Merged
Conversation
- Add OhlcvBar type and externalBars optional field to BacktestConfig - Update backtest engine to use externalBars when provided, fallback to synthetic - Add fetchAlpacaBarsForBacktest() to workflow engine for parallel symbol fetch - Wire real Alpaca bars into executeBacktestRunWorkflow via externalBars injection
- Add hero section with title, subtitle, and quick-prompt chips row - Add 3-step analysis stepper (Intent → Planning → Analysis) with pulse animation - Rebuild chat transcript with indigo accent colors replacing deep cyan - Add analysis insight card as primary right-rail view: thesis, rationale list, warning pills, recommended-next-step, Paper/Live/Backtest action buttons - Simplify composer: clean textarea, ⌘Enter shortcut, indigo send button - Remove legacy hero-grid and verbose info panels from top of page - Governance section moved below main workspace, session list always visible - Update tests to match new UI structure and labels
- Add parameters-service.js with in-memory risk config store (maxPositionWeight 5%, maxDrawdownPct 12%, dailyLossStop 5%, sharpeFloor 0.9, liveOrderRequiresApproval true defaults) - Wire assessment-service to read dynamic params instead of hard-coded values - Add GET/POST /api/risk/parameters and POST /api/risk/parameters/reset endpoints - Add fetchRiskParameters/saveRiskParameters/resetRiskParametersToDefaults API helpers - Add RiskParametersPanel to SettingsPage with editable numeric fields and checkbox
- Add overviewResultsBanner section above hero grid with 5 KPI cards: Total NAV, Daily P&L (colored green/red), Open Positions, Buy Signals, Pending Approvals - New kpi-value uses clamp(24px–36px) font for prominent display - Daily P&L and buy/sell count use semantic buy/sell/hold colors - Banner renders before the existing command-card hero section
Replace all hardcoded cyan (#00d4ff / rgba 0,212,255) with indigo (#6366f1 / rgba 99,102,241) across the design system to align with the consumer-facing platform direction. Updated: theme.css.ts (tokens), panels.css.ts, base.css.ts, tables.css.ts, layout.css.ts, settings.css.ts.
Clean up remaining legacy cyan/blue color values in chips, tables, layout, panels, and settings. Update order-status-open, badge-info, log-tag.info, and panel-badge.accent to use indigo tones consistent with the new design system. All 6 style modules now free of cyan/old-blue hardcodes.
Migrate EquityChart and CandlestickChart from cyan (#00d4ff) to indigo (#6366f1) for grid lines, crosshair, price scale borders, and volume histogram. Paper equity series line now uses indigo to match platform accent. Candlestick up/down colors unchanged (semantic green/red).
Introduce a full-screen command palette triggered by Cmd+K or Ctrl+K. Features instant fuzzy search across all console pages, keyboard navigation (↑↓ to move, Enter to navigate, Esc to close), bilingual labels/hints (zh/en), and indigo-themed glassmorphism panel with backdrop blur. Implemented as a standalone component mounted in the Layout root.
Introduce a slide-up bottom panel that appears globally whenever approvalQueue is non-empty, letting users approve or reject live order intents from any page. Features: amber-themed glassmorphism panel, pulsing indicator dot, per-order cards with symbol/side/qty, approve/reject buttons. Mounted in Layout root alongside CommandPalette.
Introduce ToastProvider/useToast for app-wide success/error/info/warn notifications. Toasts appear bottom-right with slide-in animation, auto-dismiss after 4s, and support manual close. ToastProvider wraps the app in AppProviders. Exports useToast() hook for page-level feedback.
analysis-service.ts, intent-service.ts, planning-service.ts were thin shims re-exporting from their .js counterparts. Under Node ESM + tsx, this caused a SyntaxError cycle. All consumers already import the .js files directly, so the shims are safe to delete.
SignalBarChart was missed in the P2-7 chart color migration. Updated grid lines, crosshair, price scale borders and textColor to match the indigo design system.
- Merge duplicate type imports in ApprovalDrawer - Sort imports in CommandPalette, ConsoleChrome, AgentPage - Replace div[role=option] with button for keyboard accessibility - Add biome-ignore comment on overlay backdrop div
- agent-router: add missing await on executeAgentTool (was returning
a Promise, causing result.ok to be undefined and all tool-execute
calls to return 403)
- tools-service: listAgentTools() now filters to read-only tools so
GET /api/agent/tools satisfies the every(access==='read') assertion
- intent-service: add request_execution_prep rule to the rule-based
fallback; extracts strategy ID from kebab/dotted identifiers and
sets requiresApproval when prompt mentions approval keywords
- planning-service: add request_execution_prep case to buildFallbackSteps
so the plan includes strategy.catalog.list / execution.plans.list /
risk.events.list read steps and an explain step
- analysis-service: record a 'Summarizing findings' analysis_status
message before the final result so the sessions detail test can
assert messages.some(m => m.kind==='analysis_status' &&
m.body.includes('Summarizing'))
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
rgba(0,212,255,...),rgba(40,120,220,...)) with indigo (#6366f1/rgba(99,102,241,...)) across 8 style files and 3 chart components (EquityChart, CandlestickChart, SignalBarChart)Cmd+K/Ctrl+Kmodal with fuzzy search, keyboard navigation (↑↓/Enter/Esc), and locale-aware hints; wired intoConsoleChrome.tsxLayoutapproveLiveIntent/rejectLiveIntentToastProvider/useToast()hook, auto-dismiss, slide-in/out animations, mounted inAppProvidersanalysis-service.ts,intent-service.ts,planning-service.ts) that causedDetected cycleat gateway startup; fixed missingawaitonexecuteAgentTool; addedrequest_execution_preprule to intent fallback; addedSummarizingstatus message to analysis loop;listAgentTools()now returns only read toolsTest plan
npm run verifypipeline green (lint, typecheck, build)Cmd+Kopens Command Palette and keyboard navigation works