v0.11.0-alpha.6
新功能
- 指标实例优先链路(破坏性): Introduce an instance-first indicator chain — per-
instanceIdresult pools and projections, calculation plans deduped bycalculationKey, 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
marketTickscapability 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 the4hperiod. (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 setupand the dev flow, markedincludeInAll:falseso-c allskips 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
updateBarswith 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 修复
- 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
DataChangeso 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.bandFilltoken and thewebglBandhelper. - 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>.mdbefore falling back to auto-generation.
架构与重构
- 指标渲染与计算绑定到实例(破坏性): Bind rendering and calculation to indicator instances and remove
IndicatorScheduler,chart.getIndicatorScheduler(), the legacy worker protocol andindicatorResultState. (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 connectertopnpm connectorand 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/createIndicatorStateKeyhelpers, the unused SoA transport encoding and the unusedupdateConfigcontract. - 测试夹具统一并消除类型逃逸: Consolidate duplicated test doubles and domain builders into shared fixtures, and remove
as any/as unknown asescapes 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-aiandpi-session-backend-sqlite-nodeto 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.mdand update the data-source table and startup examples. - AGENT.md 更新: Refresh the agent guide.