# v0.11.0-alpha.7

> Changes since v0.11.0-alpha.6

Source: https://kcq.nebutra.com/docs/changelog/v0-11-0-alpha-7


Features [#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 [#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 [#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 [#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 [#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 [#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.
