Skip to content

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 CanvasLegendOptions to LegendOptions with LegendRenderMode now dom.
  • 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 @Indicator definitions 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+1 future 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.

On this page