# v0.11.0-alpha.6

> 新功能

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


* **指标实例优先链路（破坏性）**: Introduce an instance-first indicator chain — per-`instanceId` result pools and projections, calculation plans deduped by `calculationKey`, and a separation between calculation version and presentation version. (BREAKING)
* **实时 K 线订阅**: Add live bar subscriptions routed through provider capabilities, so charts subscribe only when the active source supports them and frames apply atomically to the active buffer.
* **V1 行情逐笔流契约**: Add the per-tick market stream item/event payloads, a dedicated long-connection transport, the `marketTicks` capability flag, and the SSE endpoint to the V1 protocol.
* **K 线聚合纳入序列身份（破坏性）**: Make `BarAggregation` (`original` / `aligned`) a required part of K-line series identity across queries, protocol, router, cache keys, buffers and the MT5 SSE stream, and add the `4h` period. (BREAKING)
* **图表显示时区**: Add a chart display timezone.
* **右轴宽度自适应可见极值**: Adapt the right axis width to the visible extrema.
* **Agent 模型设置弹窗重构**: Rework the Agent settings dialog — rename it to 模型设置, move language switching into a new 界面 group, add a collapse-thinking toggle, and remove hardcoded copy.
* **MT5 本地终端数据源**: Add the local-terminal MT5 backend to `pnpm setup` and the dev flow, marked `includeInAll:false` so `-c all` skips it.
* **聚合源健康检查与过滤**: Share one aggregation-source health snapshot, filter symbol-selector tabs to enabled + online sources, and surface provider probe messages.
* **持久化原语（localStorage / IndexedDB）**: Add shared localStorage and IndexedDB persistence primitives with `load/save/schedule/flush/clear/dispose`.
* **实时写入原语 updateBars**: Add `updateBars` with a replace-on-conflict tail window across the data store, buffers, chart manager, facade and controller.
* **预览页标题同步主品种**: Sync the browser tab title with the primary symbol as 「代码 - 名称」.

Bug 修复 [#bug-修复]

* **K 线像素投影统一（消除模糊）**: Project Canvas2D and WebGL candle rectangles through the same physical-pixel screen boundary rule, and pass the frame-derived candle width into render contexts.
* **指标展示配置恢复渲染**: Restore definition-declared presentation options in the render projection so indicators with `presentation.defaultOptions` (e.g. BOLL) draw again, while price range still uses calculation parameters only.
* **实时尾部写入不再重置交互**: Carry a change kind on `DataChange` so tail revisals and appends leave index-based interaction state and in-flight drags intact.
* **布局导致的 pointerleave 不再中断平移**: End a drag session only on explicit lifecycle events, tracking the owning pointer and capture element so a shrinking plot container no longer aborts the pan.
* **移除 ENE 轨道填充**: Remove the ENE band fill from both the GPU and 2D paths, along with the `ene.bandFill` token and the `webglBand` helper.
* **Agent 输入框下拉向上展开**: Position composer dropdowns upward.
* **弹窗层级与定位修正**: Correct dialog popup layering and positioning.
* **非拖拽标签页不再注册滚轮监听**: Attach tab drag and wheel listeners only when draggable, removing the scroll-blocking warning.
* **Core 声明按 ESM 解析**: Resolve core declaration imports as ESM.
* **沙箱在发布终端状态前清理**: Clean the sandbox before publishing terminal state.
* **发布说明优先使用策划日志**: Let the release-notes workflow use `docs/release/<tag>.md` before falling back to auto-generation.

架构与重构 [#架构与重构]

* **指标渲染与计算绑定到实例（破坏性）**: Bind rendering and calculation to indicator instances and remove `IndicatorScheduler`, `chart.getIndicatorScheduler()`, the legacy worker protocol and `indicatorResultState`. (BREAKING)
* **Pi 会话迁移至 0.85.1（破坏性）**: Migrate durable Pi sessions to context-scoped repositories and Branch-based writes for recoverable sessions. (BREAKING)
* **dev 工具 connecter 更名为 connector（破坏性）**: Rename `pnpm connecter` to `pnpm connector` and align backend clone directories and repo URLs with the renamed upstreams. (BREAKING)
* **图表与 Agent 设置复用公共持久化**: Route chart and agent settings through the shared persistence primitives and drop the obsolete field-migration API.
* **视图工作区/自选列表/聚合源收敛到原语**: Persist view workspaces via the localStorage primitive and watchlist, aggregation sources, agent panel width and preferences via the shared primitives, keeping keys and record shapes unchanged.
* **防抖持久化改为惰性取值**: `schedule()` now takes a value function, so the latest snapshot is evaluated at flush time.
* **清理 stateKey 寻址残留**: Drop the `createXxxStateKey` / `createIndicatorStateKey` helpers, the unused SoA transport encoding and the unused `updateConfig` contract.
* **测试夹具统一并消除类型逃逸**: Consolidate duplicated test doubles and domain builders into shared fixtures, and remove `as any` / `as unknown as` escapes so contracts fail at compile time.

性能 [#性能]

* **普通 K 线不再触发 MT5 对齐重采样**: Because aggregation is part of series identity, uncached ordinary K-line loads no longer pull H1/D1 for resampling, cutting MT5 terminal sync load.

工程 [#工程]

* **源码与测试类型门禁**: Split source and test type checks into required CI gates that run after the package build, and include TSX and ambient declarations.
* **pi 依赖升级至 0.86.0**: Bump `pi-agent-core`, `pi-ai` and `pi-session-backend-sqlite-node` to 0.86.0.

文档 [#文档]

* **指标贡献指南重写为实例链路**: Rewrite the indicator contributing guide for the instance chain and sync the indicator/state module docs.
* **指标实例绑定与迁移设计文档**: Document the instance render binding and the calculation migration, and remove the docs for the deleted result-bundle chain.
* **MT5 数据源文档**: Add `docs/data-sources/mt5.zh-CN.md` and update the data-source table and startup examples.
* **AGENT.md 更新**: Refresh the agent guide.
