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
disableMainPaneVerticalScrollwithmainPriceAxisRangeMode. - 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
4hto 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.confirmwith 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_updatetool descriptions. - Centralized left-gap loading: Centralizes left-gap incremental history loading in
Chart. - Backend setup script rename: Renames
pnpm setuptopnpm setup:backendsand 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/SIGTERMand 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/rendersubmodules with a single barrel, and moves the primitive domain model out offoundation. - Remove semantic config API (breaking): Deletes the deprecated JSON semantic chart config and the
./semanticsubpath export, moving marker shape rendering toengine/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, andpi-session-backend-sqlite-nodeto 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.