# v0.11.0-alpha.9

> Changes since v0.11.0-alpha.8

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


Features [#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 [#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 [#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 [#performance]

* **Analytic line anti-aliasing**: Adds analytic line AA and refreshes the benchmark docs, lowering line-drawing cost.

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