Skip to content

v0.10.3

Choose a tag to compare

@github-actions github-actions released this 17 Aug 15:52
· 946 commits to main since this release

相比 v0.10.2 的变更 / Changes since v0.10.2

✨ 新功能 / Features

  • 多日分时协议: 新增 fetchTimeShareRange、多日请求/响应 DTO 与 TimeShareRangeCapability,支持按截止交易日和交易日数量请求分时数据。
  • Multi-day timeshare protocol: Adds fetchTimeShareRange, multi-day request/response DTOs, and TimeShareRangeCapability for querying timeshare data by end trading date and trading-day count.
  • 多日分时存储: 新增不可变 TimeShareRangeStore、TimeShareDay 和 TimeShareRange,按交易日保留 tradingDate、preClose 和分时点,并为现有渲染链派生扁平数据。
  • Multi-day timeshare storage: Adds immutable TimeShareRangeStore, TimeShareDay, and TimeShareRange models that retain each day's tradingDate, preClose, and points while deriving the existing flat render projection.
  • 分时范围查询能力: Provider、数据源和品种描述可声明 timeShareRange.maxTradingDays,前端可据此决定是否提供多日分时入口。
  • Timeshare range capabilities: Providers, sources, and instruments can declare timeShareRange.maxTradingDays, allowing the UI to expose multi-day timeshare only when supported.
  • 多源 Mock 品种目录: Mock Provider 提供可搜索的品种数据,覆盖统一品种模型和能力声明。
  • Multi-source mock catalog: The Mock Provider now supplies searchable instruments covering the unified instrument model and capability declarations.
  • 比较图例品种名称: 比较视图图例显示品种代码和名称,例如 601360 三六零,并将名称暴露给外部 legend slot。
  • Comparison legend instrument names: Comparison legend rows show the symbol and instrument name, such as 601360 三六零, and expose the name to external legend slots.

🐛 Bug 修复 / Fixes

  • 分时状态与重绘同步: 修复分时数据、昨收基准与图表重绘没有同步更新的问题。
  • Timeshare state and redraw synchronization: Fixes timeshare data, previous-close baselines, and chart redraws becoming out of sync.
  • 分时内联数据基准: TimeShareBuffer.setInlineData 现在以数据和昨收作为同一输入写入,避免沿用上一次范围数据的昨收。
  • Timeshare inline-data baseline: TimeShareBuffer.setInlineData now writes data and the previous close together, preventing reuse of a previous range's baseline.
  • 比较视图 K 线叠加元素: 比较视图隐藏最新价虚线以及 O/H/L/C/Vol 图例行,避免为归一化比较序列展示无意义的主 K 线数据。
  • K-line overlays in comparison view: Hides the latest-price dashed line and O/H/L/C/Vol legend row so normalized comparison series do not display irrelevant primary K-line data.
  • Vue 库构建外部依赖: 使用 Vite 8 的 rolldownOptions.external 标记 Core 和 Vue 依赖,修复 Rolldown 解析 Core market-data 子路径失败。
  • Vue library build externals: Uses Vite 8 rolldownOptions.external to mark Core and Vue dependencies as external, fixing Rolldown resolution of the Core market-data subpath.
  • 协议 Provider 测试修复: 修复仍引用已删除 MarketDataV1Transport 类型的 Provider 测试。
  • Protocol Provider test repair: Fixes Provider tests that still referenced the removed MarketDataV1Transport type.

🏗️ 架构与重构 / Architecture & Refactoring

  • 移除 Legacy Fetcher 兼容层: 图表运行时统一通过 MarketDataProvider 和 SourceRouter 加载 K 线与分时数据;删除旧 registry、router、Legacy Adapter 及 Fetcher 实现。
  • Remove the legacy Fetcher compatibility layer: Chart runtime now loads K-line and timeshare data exclusively through MarketDataProvider and SourceRouter; legacy registries, routers, adapters, and Fetcher implementations are removed.
  • 破坏性 API 变更: 移除 dataFetcher、setDataFetcher、routerDataFetcher 及相关 Fetcher 导出;迁移至 MarketDataProvider。
  • Breaking API change: Removes dataFetcher, setDataFetcher, routerDataFetcher, and related Fetcher exports; migrate to MarketDataProvider.
  • 数据状态原子快照: 活动 Buffer 切换通过 applyActiveBufferSnapshot 一次发布 key、数据、loading、范围和昨收,消除字段级写入造成的短暂状态不一致。
  • Atomic data snapshots: Active Buffer switches publish key, data, loading, range, and previous close together through applyActiveBufferSnapshot, eliminating transient inconsistencies from field-level writes.
  • Buffer 契约收敛: 移除共享 DataBufferLike 的 setInlineData,由 K 线与分时 Buffer 分别定义各自的结构化写入契约;无活动 Buffer 时使用显式空 key 快照。
  • Buffer contract consolidation: Removes setInlineData from shared DataBufferLike; K-line and timeshare Buffers now define their own structured write contracts, with an explicit null-key snapshot for no active Buffer.
  • 协议去版本化命名: 将 Transport、Provider Factory 和拒绝码等类型/工厂从 V1 命名迁移为通用命名;V1 仅保留给 wire metadata、版本和 /api/v1 路径。
  • De-versioned protocol naming: Renames Transport, Provider Factory, and rejection-code types/factories from V1 to generic names; V1 remains only for wire metadata, protocol versions, and /api/v1 paths.
  • 复用领域能力模型: 协议层复用领域 InstrumentCapabilities 与相关能力类型,减少结构重复和跨层转换。
  • Reuse domain capability models: Protocol models now reuse domain InstrumentCapabilities and related capability types, reducing duplicate structures and cross-layer conversions.
  • 框架绑定清理: Vue、React、Angular、Web Component、Electron 与 AI runtime 移除旧 Fetcher 控制器字段、mock 和导出,改为与统一 Provider 契约一致。
  • Framework binding cleanup: Vue, React, Angular, Web Component, Electron, and AI runtime remove legacy Fetcher controller fields, mocks, and exports to align with the unified Provider contract.
  • 最新价虚线模式投影: 最新价虚线注册为 @Indicator,由 dataViews: ['kline'] 和系统模式实例统一控制图层可见性。
  • Latest-price line mode projection: Registers the latest-price dashed line as an @Indicator; dataViews: ['kline'] and the system mode instance now control layer visibility.

📚 文档 / Documentation

  • 多日分时与状态设计文档: 新增多日分时存储、分时 StateKernel 归属和旧 Fetcher 移除的设计决策文档。
  • Multi-day timeshare and state design docs: Adds design decisions for multi-day timeshare storage, timeshare StateKernel ownership, and legacy Fetcher removal.
  • Provider 文档与跨框架兼容性: 更新 MarketDataProvider、数据包 README、主 README、属性片段和跨框架兼容性说明,移除旧 Fetcher 配置。
  • Provider documentation and cross-framework compatibility: Updates MarketDataProvider docs, data package README, root README, props fragments, and compatibility guidance to remove legacy Fetcher configuration.
  • 代码评审技能: 新增覆盖状态一致性、边界职责、模型契约和变更传播的代码评审准则。
  • Code review skill: Adds code review guidelines covering state consistency, layer boundaries, model contracts, and change propagation.