Commit Graph

134 Commits

Author SHA1 Message Date
e5bda5ade9 docs(D9): mark reduced motion complete 2026-05-04 17:59:59 -07:00
fce0228992 fix(D9): respect reduced motion preference 2026-05-04 17:59:07 -07:00
6013df411d docs(D8): mark empty-state chips complete 2026-05-04 17:57:29 -07:00
b1f872f54c fix(D8): make empty-state chips market-aware 2026-05-04 17:56:34 -07:00
909518f82c docs(D7): mark keyboard shortcuts complete 2026-05-04 17:54:29 -07:00
1b2130e001 fix(D7): add scoped keyboard shortcuts 2026-05-04 17:53:37 -07:00
68c8a55ea4 docs(D6): mark editor timer cleanup complete 2026-05-04 17:51:23 -07:00
2089b9aa16 fix(D6): clean up strategy editor timers 2026-05-04 17:50:38 -07:00
d36c2bae5e docs(D4): mark screener sector highlight complete 2026-05-04 17:47:52 -07:00
3bf1ca7d51 fix(D4): highlight selected screener sector 2026-05-04 17:46:52 -07:00
e6251452df docs(D3): mark exchange label complete 2026-05-04 17:44:07 -07:00
1e502b9f90 fix(D3): derive ticker exchange label from profile 2026-05-04 17:43:20 -07:00
91bf41f319 docs(D2): mark settings contrast complete 2026-05-04 17:41:28 -07:00
5ca8183efb fix(D2): restore contrast for legacy settings tabs 2026-05-04 17:40:31 -07:00
a0476c39a6 fix: avoid duplicate profile refresh events 2026-05-04 17:38:22 -07:00
41c5d0f8bd docs(B10): mark not found route complete 2026-05-04 17:24:06 -07:00
ee7404ac61 fix(B10): add explicit not found route 2026-05-04 17:23:23 -07:00
36544d10d4 docs(B9): mark builder strategy discovery complete 2026-05-04 17:21:59 -07:00
70db4c9a04 fix(B9): surface builder strategies in strategies tab 2026-05-04 17:21:18 -07:00
81c52479ab docs(B8): mark visual backtest wiring complete 2026-05-04 17:18:50 -07:00
1cd23f35f2 fix(B8): wire visual builder backtest 2026-05-04 17:17:44 -07:00
eb6c1d8f7a docs(B7): mark editor ref cleanup complete 2026-05-04 17:15:47 -07:00
1fd1bf3ce6 fix(B7): remove unused code editor ref 2026-05-04 17:15:07 -07:00
784bb7d46a docs(B5): mark quick stats fallback complete 2026-05-04 17:14:10 -07:00
27b3d1a1dc fix(B5): derive quick stats from chart bars 2026-05-04 17:13:32 -07:00
e28c34f773 docs(B4): mark ticker timestamp complete 2026-05-04 17:11:44 -07:00
311d79c4c4 fix(B4): show latest bar timestamp in ticker header 2026-05-04 17:10:57 -07:00
bed7f83f3c docs(C7): mark FMP key mitigation complete 2026-05-04 17:08:49 -07:00
e2e189eede fix(C7): mitigate FMP key exposure 2026-05-04 17:07:52 -07:00
e72b375557 docs(C6): mark FMP key cleanup complete
Record the implementation commit that removes FMP demo-key ambiguity and documents the required API key.

Refs: docs/AUDIT_REDESIGN.md item C6.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 17:01:16 -07:00
1377bf2453 fix(C6): require explicit FMP API key
Remove the silent shared demo-key fallback for FMP-backed research and screener routes, document the required key, and make backend/.env.example trackable so setup guidance has one source of truth.

Refs: docs/AUDIT_REDESIGN.md item C6.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 17:01:00 -07:00
5ce3cc92f0 docs(C5): mark visibility-aware polling complete
Record the implementation commit that pauses Header market-index polling while the tab is hidden.

Refs: docs/AUDIT_REDESIGN.md item C5.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:50:47 -07:00
e089832039 fix(C5): pause index polling when hidden
Guard Header market-index refreshes with document.visibilityState and resume on visibilitychange so hidden tabs stop polling the backend while preserving stale index data.

Refs: docs/AUDIT_REDESIGN.md item C5.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:50:37 -07:00
a1f5234617 docs(C4): mark news symbol validation complete
Record the implementation commit that validates /api/news symbol filters before proxying.

Refs: docs/AUDIT_REDESIGN.md item C4.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:47:34 -07:00
7c4b08cdd5 fix(C4): validate news symbol filters
Normalize and limit /api/news symbols before proxying to Alpaca so only bounded, expected symbol characters reach the upstream news endpoint.

Refs: docs/AUDIT_REDESIGN.md item C4.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:47:24 -07:00
9e22f6460c docs(C3): mark screener sector validation complete
Record the implementation commit that allow-lists /api/screener sector filters.

Refs: docs/AUDIT_REDESIGN.md item C3.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:44:45 -07:00
c173aeb87a fix(C3): validate screener sector filters
Reject unsupported /api/screener sector values before building the FMP query so only known sector labels reach the upstream stock screener.

Refs: docs/AUDIT_REDESIGN.md item C3.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:44:33 -07:00
222d101a7e docs(D5): mark responsive layout complete
Record the implementation commit that adds mobile-width web dashboard breakpoints.

Refs: docs/AUDIT_REDESIGN.md item D5.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:42:03 -07:00
a9c33b1c14 fix(D5): add responsive dashboard breakpoints
Move fixed shell dimensions into responsive classes so sub-1024px layouts hide the right panel, turn the sidebar into a bottom nav, and keep dashboard content usable with adaptive grids and horizontal screener scrolling.

Refs: docs/AUDIT_REDESIGN.md item D5.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:41:48 -07:00
ce25712e59 docs(D1): mark skeleton loaders complete
Record the implementation commit that replaces dashboard loading copy with skeleton layouts.

Refs: docs/AUDIT_REDESIGN.md item D1.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:38:28 -07:00
0fb1d63cbe fix(D1): add dashboard skeleton loaders
Replace plain loading text in news, research cards, and screener results with stable skeleton layouts so the dashboard holds its shape while market data requests resolve.

Refs: docs/AUDIT_REDESIGN.md item D1.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:38:17 -07:00
87660c7e5d docs(B6): mark code strategy persistence complete
Record the implementation commit that persists CodeStrategyEditor saves through the canonical profile API.

Refs: docs/AUDIT_REDESIGN.md item B6.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:34:54 -07:00
da79682ca3 fix(B6): persist code strategy saves
Route CodeStrategyEditor saves through the canonical profile API instead of browser localStorage, carrying the active symbol plus ResearchView capital and risk defaults into an inactive saved code strategy profile.

Refs: docs/AUDIT_REDESIGN.md item B6.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:34:45 -07:00
d80734288e docs(C1): mark code strategy refusal complete
Record the implementation commit that refuses unsafe code strategy backtests before execution.

Refs: docs/AUDIT_REDESIGN.md item C1.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:31:14 -07:00
6aa001a530 fix(C1): refuse unsafe code strategy backtests
Reject inline JavaScript strategy payloads before backtest execution, both at the API boundary and inside runBacktest, so saved profiles and direct internal calls cannot route unsandboxed code into replay handling.

Refs: docs/AUDIT_REDESIGN.md item C1.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:31:04 -07:00
fe8ab839a2 docs(F6): mark endpoint coverage complete
Record the implementation commit that adds backend contract coverage for the new market data and research proxy endpoints.

Refs: docs/AUDIT_REDESIGN.md item F6.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:25:56 -07:00
e2806b28c1 test(F6): cover market data proxy endpoints
Add static contract coverage for the dashboard market data and research proxy routes so auth, upstream URL construction, response normalization, and FMP cache usage stay guarded by the backend test gate.

Refs: docs/AUDIT_REDESIGN.md item F6.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:25:44 -07:00
412fa5ad7c fix(audit): close agent follow-up gaps
Centralize the HomeView research profile fetch so the ticker header and research cards share one FMP profile request, preserving the B3 company-name behavior without doubling profile traffic. Wire the FMP cache regression into the backend test script and fix the stale API-contract shared import so backend tests can run through the new cache check.

Refs: docs/AUDIT_REDESIGN.md items B2, B3, and C2.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:18:21 -07:00
1f299d3e01 docs(B2,B3): tick ticker header audit rows
Record the ticker header implementation commit in the redesign audit table.

Refs: docs/AUDIT_REDESIGN.md items B2 and B3.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:08:02 -07:00
ed8175eb1f fix(B2,B3): wire ticker header actions
Route the ticker header watchlist and alert controls to their existing screens and replace the symbol placeholder with the research profile company name while preserving a symbol fallback.

Refs: docs/AUDIT_REDESIGN.md items B2 and B3.

Co-Authored-By: GPT-5 Codex <noreply@openai.com>
2026-05-04 16:07:31 -07:00