Live chart engine

Lightweight Charts paints the chart. One ingest worker owns /ws/live and decodes AXB1. The shared-memory ring and GPU overlay were removed.

This page

Lightweight Charts paints candles, indicators, and fills. There is no second candle painter.

One browser worker owns the engine live socket. It decodes JSON and AXB1 off the window thread and posts frames to the chart. That path is the default: axis.engine.transport unset or worker. Set the flag to json and reload to keep the main-thread client. If the worker cannot start, the chart uses that client once and counts the fallback.

What stayed

PieceWhereRole
AXB1 codecsrc/hp/axb1/Binary frames on the worker socket. Prices stay int64 ticks.
Ingest workersrc/hp/workers/Owns /ws/live, coalesces forming tips, posts decoded frames.
Execution contextsrc/hp/calc/execution-context.tsA forming tip does not commit a closed bar.
Isolation headerssrc/hp/isolation-headers.tsCOOP / COEP / CORP for the static hosts and the offline shell.

What was removed

The shared-memory hot ring, the cold page slot, the WebGL2 and WebGPU candle overlay, the calc worker, the HUD chip, and the axis.engine.hp.* flags are gone. Settings has no high-performance section. hp.get, hp.sample, and dev.trace are not MCP capabilities.

Stored axis.engine.hp.enabled, axis.engine.hp.gpu, and axis.engine.hp.sab values are ignored.