Skip to content

v0.11.0-alpha.7

Changes since v0.11.0-alpha.6

Features

  • Global drawing lock: Adds a global drawing lock toggle that freezes movement of every drawing through one pure predicate, leaving deletion, undo/redo, style, visibility, and hit-testing intact.
  • Drawing settings and text controls: Adds a drawing settings dialog with color and text controls, persists per-kind templates, and separates tool selection from group expansion.
  • Chart-wide drawing undo and redo (breaking): Keeps one drawing history per chart so interaction, controller, facade, and Agent edits share a single undo sequence, exposed in the left toolbar.
  • Locked price-to-candle ratio (breaking): Stores the locked display range in StateKernel to keep the main price axis stable while panning, replacing disableMainPaneVerticalScroll with mainPriceAxisRangeMode.
  • Trend-colored last price and close countdown: Colors the last price label by trend and shows the current bar close countdown on supported intraday and daily periods, refreshed on second boundaries.
  • 4-hour period level: Adds 4h to the period single source of truth and the core initial-window policy.
  • Europe-traditional bar aggregation: Adds the Europe-traditional bar aggregation value to the protocol and core.
  • Agent panel launcher and citation restyle: Restyles the panel launcher as an edge strip with a tooltip and renders citation markers as neutral gray pills.
  • Agent session modals: Replaces window.prompt / window.confirm with styled base modals for session rename and delete.
  • Per-kind anchor counts: Derives per-kind anchor counts from the domain and states them in the drawing_create / drawing_update tool descriptions.
  • Centralized left-gap loading: Centralizes left-gap incremental history loading in Chart.
  • Backend setup script rename: Renames pnpm setup to pnpm setup:backends and adds layered ANSI coloring to the install output.

Fixes

  • Drawing lock semantics (breaking): Locked drawings now only block drag and removal, accepting style, params, labels, visibility, and z-index writes again.
  • Axis ticks follow panning: Anchors vertical grid marks to readable price values so the label and gridline move together during vertical panning.
  • Double-click time-share guard: Validates the symbol capability before double-click switching to time-share, writing to the existing symbol error state instead of throwing on unsupported sources.
  • Indicator definition classification: Fixes indicator definition classification and mode-mounted rendering.
  • WebGPU empty-frame clear: Clears the WebGPU surface on empty frames.
  • Drawing anchor date causes: Resolves trading dates to a discriminated result and raises a distinct error code per cause, carrying the loaded range in out-of-range details.
  • Drawing label key validation: Rejects extra keys at both the label object and map level so non-index keys no longer pass validation and crash normalization.
  • Agent web search keys: Guides web search key setup and stores Exa keys globally with legacy profile-key migration so configured search survives a profile switch.
  • Agent tool failures and result height: Classifies tool failures and caps tool result content height.
  • Toolbar scrolling and grouped menu: Refines toolbar scrolling and grouped tool menu behavior.
  • Agent panel toggle alignment: Aligns the agent panel toggle controls.
  • No-op symbol selection: Ignores the data manager's no-op active selection so the symbol chip does not stay pending.
  • dev connector shutdown: Kills the whole connector process tree on SIGINT / SIGTERM and waits for shutdown before returning the prompt.
  • bench aliases and discrete GPU: Resolves core source aliases in the benchmark config and forces the discrete GPU.

Architecture & Refactoring

  • Drawing module semantic layout (breaking): Splits the drawing module into model / session / geometry / interaction / render submodules with a single barrel, and moves the primitive domain model out of foundation.
  • Remove semantic config API (breaking): Deletes the deprecated JSON semantic chart config and the ./semantic subpath export, moving marker shape rendering to engine/marker/shape.
  • Core semantic module layout: Migrates modes, scale, replay/chartTypes, alerts, advanced chart components, plugin, and the agent feature module to the <module>/types.ts + impl/ layout.
  • Controller semantic modules: Routes controller public exports through semantic modules and migrates the toolbar, indicator selector, drawing, and chart controllers.
  • Agent and agent-runtime layout: Organizes agent feature modules, separates provider settings contracts, modularizes the browser bridge, and moves search implementations and the Pi run driver into impl/.
  • Price scale vocabulary: Centralizes price scale type vocabulary.
  • Drawing label key invariant: Moves the drawing label key invariant into the domain and renames the session overlay to DrawingSessionOverlay.
  • Import alias cleanup: Replaces relative ../.. imports with @ aliases.

Performance

  • WebGPU line geometry cache: Skips rebuilding wide-line vertices and upload-data comparison for unchanged strips while preserving pixel-aligned rebuilds when geometry, DPR, or vertical-line scroll position changes.
  • WebGPU render path: Compares uploaded strip geometry by float32 bits and batches deferred buffer retirement behind queue completion.
  • Candle frame preparation: Reuses physical pixel coordinates and avoids volume-price analysis when markers cannot be visible.
  • Date and tooltip reuse: Reuses calendar indexes across render frames and skips redundant tooltip display writes during high-frequency interaction.

Engineering

  • Style tokens: Recolors candle up/down to #089981 / #f23645.
  • Dead lint configs: Drops dead ESLint, OxLint, and Prettier configs.
  • Pi 0.87.1: Bumps pi-agent-core, pi-ai, and pi-session-backend-sqlite-node to 0.87.1.
  • CI push scope: Restricts the library CI push trigger to main.
  • CodeGraph rules: Hardens the CodeGraph usage rules and adjusts the MCP server config.
  • Shared test fixtures: Builds the axis tick pane fixture via a shared factory and covers the web-search key save path in redaction tests.

Documentation

  • Drawing submodule READMEs: Adds module-level READMEs for the drawing submodules.
  • Performance data refresh: Refreshes the README performance data on a 200 Hz discrete GPU.
  • AGENT.md refresh: Refreshes the agent guide.

On this page