Repository navigation
·
84 commits
to main
since this release
相比 v0.11.0-alpha.8 的变更 / Changes since v0.11.0-alpha.8:新 UI、布局功能支持、Shader AA 抗锯齿支持
✨ 新功能 / Features
- 原生帧截图: 新增截图能力,直接抓取当前渲染后端的原生帧,跨 WebGPU/WebGL/Canvas2D 后端一致,支持保留边框、对齐水印与图标化的工具栏按钮。
- 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.
- 每个副图独立价格轴状态与快捷键: 价格轴范围模式改为按 pane id 持有,每个轴暴露自己的 A/L 快捷按钮,单个设置入口保留在轴列底部;快捷按钮改为自动/对数开关,再次点击可关闭。
- 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 渲染(破坏性): 指标标题、参数与数值改为 Core 独立 DOM renderer 展示,移除 Canvas 文字绘制与宽度缓存,十字光标高频路径按行差量写入文本;
CanvasLegendOptions更名为LegendOptions,LegendRenderMode由canvas改为dom。 - 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
CanvasLegendOptionstoLegendOptionswithLegendRenderModenowdom. - 对比品种集成主图(破坏性): 对比品种并入主图 K 线并配图例控件,替换原先独立的对比视图路径。
- 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 消息编辑(破坏性): 新增消息编辑与编辑态取消操作,统一工作台配色,重做用户消息气泡与操作提示。
- 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 会话抽屉: 以会话抽屉取代会话下拉菜单,会话列表与切换集中到抽屉内。
- Agent conversation drawer: Replaces the session dropdown with a conversation drawer that holds the session list and switching.
- Pi durable 会话运行时(破坏性): agent-runtime 升级 Pi 至 1.0.2 并接入 pi-durable 运行会话,按官方 Pi 会话快照渲染,Agent 与桌面端对齐统一运行链路。
- 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.
- DropMenu 统一样式与密度: 统一 DropMenu 样式并新增密度模式与条目图标,自选列表改用 DropMenu 渲染,选中项背景收敛为 token。
- 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.
🐛 Bug 修复 / Fixes
- 十字线图表级虚线参考线: 十字线改为图表级虚线参考线并在中心留空,避免中心区域遮挡内容。
- Chart-wide dashed crosshair guides: Renders chart-wide dashed crosshair guides with an empty centre so content under the crosshair stays visible.
- K 线与指标柱像素几何统一: 统一 K 线与指标柱的像素几何,修正蜡烛与柱体错位。
- Unified candle and indicator bar pixel geometry: Aligns candle and indicator bar pixel geometry so bars no longer drift.
- 生产包指标定义自动发现: 生产构建下自动发现
@Indicator定义,修复打包后指标注册缺失。 - Indicator auto-discovery in production bundles: Auto-discovers
@Indicatordefinitions 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.
- 时间轴未来槽位标签: 移除强制生成的
T+1未来槽位标签。 - Time-axis future slot label: Drops the forced
T+1future slot label. - 图例 VOL 标题数值与排版: 补齐成交量标题数值来源,统一量级后缀为 K/M/B 并修正悬浮工具条行高与间距。
- 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.
- 图例拖动数值跳动: 取值索引收敛为单一事实来源,拖动期间只隐藏十字线不清索引,无光标固定取最新一根 K 线。
- 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.
- 回归通道端点收敛: 收敛回归通道端点取值并简化 X 轴查询命名。
- Regression channel endpoints: Clamps regression channel endpoints and simplifies X-axis query naming.
- 卸载图表清除主题 token: 停止在图表卸载时清除 body 上的主题 token。
- Body theme tokens on unmount: Stops clearing body theme tokens when the chart unmounts.
- 界面细节打磨: 统一品种徽标与 Agent 选择触发器,调整 Agent 头部间距与版本徽标,优化工具栏、浮层与浅色控件配色,重构品种对话框与图表工具栏,补齐产品品牌标识。
- 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.
- SymbolSelector 等宽字体: SymbolSelector 改为通过排版 CSS 变量消费等宽字体。
- Mono font in SymbolSelector: Consumes the mono font through the typography CSS variable in SymbolSelector.
- 预览调试徽标字体 token: 预览调试徽标改用字体 token。
- 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
- core 模块重定位(破坏性): 从 engine 根目录抽出 chart 与 pane 模块,重定位 comparison、scale、labels、frame 与 market 模块,将视图决策收敛进 chartModel,frame 拆为 types + impl,合并 layout/labels/facade/utils 到各自归属模块,抽出 persistence 模块,并清理死导出、重复回退与比例逻辑。
- 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.
- 渲染层清理(破坏性): 移除未集成的渲染模块与 Layer 适配层、未使用的 GPU→2D 合成兼容层、不可达的填充带 GPU 路径与临时成交量诊断。
- 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.
- 主图图例模块化: 将 mainIndicatorLegend 抽为 types + impl 子模块,指标标题改由 DOM 渲染(见新功能)。
- Main legend modularization: Extracts mainIndicatorLegend into a types + impl submodule and moves indicator titles to DOM rendering (see features).
- 布局持久化单一路径: 布局仅通过布局文档持久化,合并守卫并移除回退,收敛布局菜单 id 与命名模式。
- Single layout persistence path: Persists only through the layout document, consolidates guards, drops fallbacks, and centralizes layout menu ids and naming modes.
- Vue 工具栏复用: 工具栏菜单改用 DropMenu 与共享按钮样式,绘图工具组菜单改为纵向带标签列表。
- Vue toolbar reuse: Uses DropMenu and the shared button style for toolbar menus and shows drawing tool group menus as vertical labelled lists.
- Agent 组件清理: Agent 模型选择改用 DropMenu,移除死代码与不再使用的 steering 提示。
- Agent component cleanup: Uses DropMenu for model selection and prunes dead code and the unused steering notice.
- core 深层导入别名: core 深层相对导入统一改用
@/别名。 - Core deep-import alias: Unifies deep relative imports in core behind the
@/alias.
⚡ 性能 / Performance
- 解析式线条抗锯齿: 新增解析式线条抗锯齿并刷新基准文档,降低线条绘制开销。
- Analytic line anti-aliasing: Adds analytic line AA and refreshes the benchmark docs, lowering line-drawing cost.
🔧 工程 / Engineering
- 许可证切换: 许可证由 MIT 切换为 Apache-2.0。
- License switch: Switches the license from MIT to Apache-2.0.
- 依赖升级: 更新 pnpm 依赖。
- Dependency bumps: Updates pnpm dependencies.
- 测试精简: 移除低价值组件 DOM 测试,清理孤立用例与冗余断言,并更新内建指标数量断言。
- Test cleanup: Drops low-value component DOM tests, removes orphan specs and redundant assertions, and updates the builtin indicator count assertion.
📚 文档 / Documentation
- 文档归组: 顶层文档按语义目录归组,重组设计文档并清理实现计划。
- Docs grouping: Groups top-level docs into semantic folders and reorganizes the design docs while pruning implementation plans.
- 模块布局文档同步: 同步 engine 重定位后的模块布局引用,统一 endFrame 表述与 Layer role 说明。
- 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.