v0.10.1
Changes since v0.10.0
Features
- migrate indicators to engine renderers: migrate 9 indicators from the pure-function API to engine renderers
- collapsible watchlist panel: add a collapsible watchlist panel and persist its state to IndexedDB
- selectable connector startup: allow selecting which market-data connectors to start in the dev environment
Fixes
- fixed timeshare grid: place timeshare slots on a fixed integer pixel grid so volume bars keep a constant gap even on small ticks
- lunch-end boundary slot: map the lunch-end timestamp to the boundary slot in timeshare
- skip month grid lines: skip month grid lines in timeshare mode
- meaningful volume labels: show meaningful volume labels on small timeshare ticks
- timeshare percent axis: keep the timeshare left axis in percent
Architecture & Refactoring
- separate indicator identity: separate indicator instance identity from the pane id with independent instanceId / indicatorId / ordinal fields; timeshare mode reuses the user's VOL pane by canonical indicator id
- modes as system instances: model chart modes as system instances, unify main and sub indicator instances, and derive active renderers from kernel state
- center-based frame geometry: derive all frame x-geometry from K-line centers and share the center grid with timeshare axis labels
- Vue signal bridge: subscribe viewport/data/zoom state to controller signals and move watchlist state to IndexedDB
- bump toolchain: bump the workspace toolchain and package dependencies