v0.11.0-alpha.9
Changes since v0.11.0-alpha.8
Features
- Native frame screenshot: Adds screenshot capture that grabs the native frame from the active rendering backend, consistent across WebGPU/WebGL/Canvas2D, with preserved borders, aligned watermark, and an icon-only toolbar button.
- Persistent chart layouts: Adds persistent chart layouts with toolbar management, storing viewport position and user drawings in the layout document, naming through a modal dialog, and a stable list order.
- Per-pane price axis state and shortcuts: Moves range mode to a per-pane-id source of truth, gives each axis its own A/L buttons with one settings entry at the bottom, and turns the shortcuts into independent auto/log toggles that switch off on a second click.
- Pan inertia and smooth zoom: Adds inertia decay to viewport panning and smooth zoom transitions anchored to the pointer slot.
- Legend indicator settings and collapse: Adds indicator settings and a main-legend collapse button, hidden until a symbol is selected and keeping an opaque background on hover.
- Indicator hide/show (breaking): Adds hide/show buttons to the legend toolbar, unloading the paint layer while keeping the instance and computation, greying the title, and persisting the flag with the workspace snapshot.
- DOM-rendered indicator titles (breaking): Renders indicator titles, params, and values through a dedicated Core DOM renderer, drops Canvas text drawing and width caches, diff-writes text on the high-frequency crosshair path, and renames
CanvasLegendOptionstoLegendOptionswithLegendRenderModenowdom. - Comparisons integrated into the main chart (breaking): Merges comparison symbols into the main K-line with legend controls, replacing the standalone comparison view path.
- Settings dialog rework: Reworks the settings dialog layout, typography, and theme-mode selection.
- Agent message editing (breaking): Adds message editing with a cancel action in the edit composer, unifies workbench colours, and reworks the user message bubble and action tooltips.
- Agent conversation drawer: Replaces the session dropdown with a conversation drawer that holds the session list and switching.
- Pi durable session runtime (breaking): Upgrades the agent-runtime to Pi 1.0.2 and runs sessions through the pi-durable harness, rendering official Pi conversation snapshots and aligning the agent and desktop runtime path.
- Unified DropMenu styling and density: Unifies DropMenu styles with density modes and item icons, renders the watchlist through DropMenu, and moves the selected-item background to a token.
- Shared colour picker: Adds a shared colour picker with a draggable palette.
- Data tooltip setting rename and hide option: Renames the data tooltip setting and adds a hide option.
- Indicator selector search autofocus: Focuses the indicator selector search field on open.
Fixes
- Chart-wide dashed crosshair guides: Renders chart-wide dashed crosshair guides with an empty centre so content under the crosshair stays visible.
- Unified candle and indicator bar pixel geometry: Aligns candle and indicator bar pixel geometry so bars no longer drift.
- Indicator auto-discovery in production bundles: Auto-discovers
@Indicatordefinitions so production bundles keep the indicator registry populated. - Timeshare dual axes and pane borders: Renders timeshare dual price axes and deduplicates pane borders.
- Timeshare price and volume ranges: Derives timeshare price and volume ranges from the visible frame data.
- Ichimoku future cloud double collection: Stops the Ichimoku future cloud from being collected twice.
- Zoom bounds and pointer slots: Bounds zoom navigation, aligns candle pixel geometry, and preserves pointer slots across past and future regions.
- Time-axis future slot label: Drops the forced
T+1future slot label. - Legend VOL title value and layout: Adds the volume title value source, unifies magnitude suffixes to K/M/B, and fixes hover-toolbar line height and spacing.
- Legend values while dragging: Makes the value index the single source of truth, keeps it during drag while only hiding the crosshair, and pins the no-cursor value to the latest bar.
- Stable layout list order: Keeps the layout list order stable across operations.
- Regression channel endpoints: Clamps regression channel endpoints and simplifies X-axis query naming.
- Body theme tokens on unmount: Stops clearing body theme tokens when the chart unmounts.
- UI polish: Unifies symbol badges and agent select triggers, tunes agent header spacing and version badge, refines toolbar, popover, and light-mode control colours, and redesigns the symbol dialogs and chart toolbar with product branding.
- Mono font in SymbolSelector: Consumes the mono font through the typography CSS variable in SymbolSelector.
- Preview debug badge font token: Uses the font token for preview debug badges.
- Watchlist spacing: Aligns watchlist spacing with the symbol search.
- Over-broad redaction: Narrows the redaction scope so normal content is no longer masked.
Architecture & Refactoring
- Core module relocation (breaking): Extracts chart and pane modules from the engine root, relocates comparison, scale, labels, frame, and market modules, consolidates view decisions into chartModel, splits frame into types and impl, merges layout/labels/facade/utils into owning modules, extracts a persistence module, and removes dead re-exports, duplicate fallbacks, and ratio logic.
- Rendering cleanup (breaking): Removes unintegrated rendering modules and Layer shims, the unused GPU-to-2D composite layer, the unreachable fill-band GPU path, and temporary volume diagnostics.
- Centralized viewport layout: Drives viewport layout from centralized view strategies.
- Regression channel geometry rebuild: Rebuilds the regression channel geometry.
- Main legend modularization: Extracts mainIndicatorLegend into a types + impl submodule and moves indicator titles to DOM rendering (see features).
- Single layout persistence path: Persists only through the layout document, consolidates guards, drops fallbacks, and centralizes layout menu ids and naming modes.
- Vue toolbar reuse: Uses DropMenu and the shared button style for toolbar menus and shows drawing tool group menus as vertical labelled lists.
- Agent component cleanup: Uses DropMenu for model selection and prunes dead code and the unused steering notice.
- Core deep-import alias: Unifies deep relative imports in core behind the
@/alias.
Performance
- Analytic line anti-aliasing: Adds analytic line AA and refreshes the benchmark docs, lowering line-drawing cost.
Engineering
- License switch: Switches the license from MIT to Apache-2.0.
- Dependency bumps: Updates pnpm dependencies.
- Test cleanup: Drops low-value component DOM tests, removes orphan specs and redundant assertions, and updates the builtin indicator count assertion.
Documentation
- Docs grouping: Groups top-level docs into semantic folders and reorganizes the design docs while pruning implementation plans.
- Module layout doc sync: Syncs module-layout references after the engine relocation and unifies endFrame wording and layer-role notes.
- Layout doc tightening: Tightens the layout document and adds a viewport section.
- Contribution skill docs: Adds the code review techniques skill and defaults commit messages to a single-line subject.