chart/docs/NEXT_STEPS.md
Chris Amow 372617b08c Split the plan from the log of what actually happened
One file was trying to be two things: a spec written to be executed
top-to-bottom, and a dated record of everything that went wrong on the way. At
1,882 lines it did neither well, and the log was 36% of it — which is why the
plan's opening went unmaintained for days while the log grew every hour.

docs/plan.md keeps the decisions and the reasoning behind them, including the
risk register. docs/implementation.md takes the dated entries: the problems, the
wrong theories, the measurements that settled them. Git already says what
changed; that file says why it was hard, which is the part worth reading before
debugging something similar. Most entries describe something that looked like
one bug and turned out to be another.

Each points at the other, and the four referring files — AGENTS.md, README.md,
NEXT_STEPS.md and async_refactor.md — now point at whichever half they meant.
Git tracked the rename, so history follows plan.md rather than starting over.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 16:29:47 -05:00

3.3 KiB

Current recommendations

Last reviewed: 2026-08-11 05:58 CDT.

This file is the short list of work worth considering next. Verified history, measurements and completed work remain in docs/implementation.md, and the decisions behind them in docs/plan.md.

Fix next

Deepen freshness telemetry

The status bar now reports when the browser received its latest snapshot or bar. A later server-side implementation can distinguish market closure, source delay and transport failure by carrying exact trade time, the last settled minute, source receipt time and an application heartbeat over the existing WebSocket. Any stale threshold must account for Yahoo's declared delay.

Mobile authoring

The detailed plan is in docs/mobile_enhance.md. Recommended first tranche:

  1. Add touch-sized invisible hit regions without enlarging the visual marks.
  2. Keep the first tap's trendline anchor visible with price/time, Cancel and Undo anchor.
  3. Add a compact sticky mobile tool rail next to the chart.
  4. Add a selected-drawing action bar so End here and Delete do not require right-click or a hardware keyboard.

Prefer tap-tap trendlines on touch devices. Reserve one-finger vertical movement for page scrolling, retain horizontal chart panning and pinch zoom, and offer a chart-focused landscape/fullscreen mode.

Market-data alternatives

No durable unauthenticated source of free real-time CME /ES data has been identified. CME real-time access is normally broker-subsidized and tied to an authenticated exchange entitlement, not a public free API.

Practical ranking:

  1. Keep Schwab for verified entitled real-time streaming and Yahoo for delayed development/history seeding.
  2. Pilot Tastytrade/dxLink on a live futures-approved account. Confirm actual delay, candle retention, continuous/root symbol behavior and server-side-use terms before integrating it.
  3. Consider IBKR as the strongest low-cost fallback if literal zero cost is not required; resolve and roll the active contract explicitly for live data.
  4. Consider TradeStation only if its account-funding/API-access requirements are already acceptable.
  5. Evaluate Nasdaq Data Link CHRIS only for continuous daily seeding after confirming current freshness and free-key availability.

Do not build a backend around scraped TradingView, CME, Barchart, Investing.com, MarketWatch or Stooq pages. Public display access is not a supported market-data API or a CME redistribution license.

References:

Deferred test tied to production work

When startup seeding is changed to bulk-load bars, add an integration test that asserts expensive level rebuilding happens once and that final stores/levels match incremental ingestion. Do not assert a wall-clock duration and do not add a test that merely codifies today's slow startup.

Test and deployment commands

README is authoritative for local pytest, local Playwright E2E, pre-deploy and production smoke-test commands. Browser E2E creates and deletes drawings, so it must remain pointed at the local stack rather than production.