v0.11.0-alpha.4
新功能
- 绘图拖拽策略与复合锚点持久化(破坏性): Persist all composite anchors — parallel-channel / flat-line / disjoint-channel now store 4 anchors — and introduce
DrawingDragTargetwith per-primitive drag strategies. (BREAKING) - 锁定图元可选中但不可编辑(破坏性): Locked drawings become selectable and hittable while drag and edit stay gated; write commands on locked targets return null/false and the toolbar disables delete. (BREAKING)
- 通道线中点手柄与悬停提示: Add vertical midpoint handles to channel lines, hint the cursor over anchors and midpoint handles, and unify the hover cursor target.
- 平行通道虚线与填充区选择: Add a dashed midline to parallel channels, drive the right endpoint by cursor, and select channel composites by their fill region.
- 绘图交互打磨: Clamp the next anchor to the pane edge, hold the drawing cursor through anchor drags, and refine selected-state and handle visuals.
- OHLC 磁吸编辑路径: Sink OHLC magnet snapping into the drawing engine so dragged anchors snap to OHLC, invert the magnet while Ctrl/Command is held, and skip snapping while Shift is held.
- 绘图命中查询与锚点表: Expose
hitTestAtas a public hit query on the drawing controller, export tool anchor-count tables from the public entry, and treat Shift+click as a multi-select toggle like Ctrl. - 对比视图与主标的解耦(破坏性): Decouple the comparison view from the kline primary symbol —
comparisonState.specsbecomes the single writable source,ChartgainssetComparisonSpecs, and the render context dropsprimarySymbol. (BREAKING) - 歧义对比品种交由用户确认: Reject ambiguous comparison targets instead of picking the first, and ask the user to resolve ambiguous tool results.
- code_interpreter 工具: Add a
code_interpretertool with a provider-agnostic sandbox (local / Fly / Cloud Run). - 桌面端凭据加密: Encrypt the provider API key with Electron
safeStorage. - 工具图标悬停提示: Add a themable hover tooltip for drawing tool icons.
- 标的信息查询全字段表格(破坏性): Format instrument lookup as a full-field markdown table;
lookupInstrumentsBySymbolnow returns a string. (BREAKING) - 极值标记限定可见区间: Bound extrema markers to the visible bar range.
Bug 修复
- 对齐 WebGL 与 WebGPU 渲染结果: Align WebGL rendering with WebGPU.
- 虚线选中锚点环保持实心: Keep selected anchor rings solid on dashed lines.
- 标签命中区与编辑器对齐渲染文本: Align the line label hotspot and editor with the rendered text.
- 新建即选中,并按类型标注坐标轴: Select the drawing on create and label axes by kind.
- 对比基线锚定首个完整可见 K 线: Anchor the comparison baseline on the first fully visible bar.
- 稀疏序列类型修正: Type indicator sparse series as possibly undefined.
- 真实凭据进入脱敏列表: Feed real credentials into the run redaction list.
- 负 Retry-After 直接拒绝: Reject a negative
Retry-Afterinstead of date-parsing it. - assetClass 拒绝 unknown(破坏性): Reject
unknownassetClass in comparison and market-data tool input schemas. (BREAKING) - ask_user 选项值与显示分离(破坏性): Separate the
ask_useroption value from its display label;selectedLabelsis renamed toselectedValues. (BREAKING) - Linux 沙箱隔离探测: Probe
unshare -rnbefore isolating the code interpreter on Linux. - 预览 HMR 可靠: Watch workspace sources so preview HMR stays reliable.
- 复合通道批量填充编辑: Allow batch fill edits for all-channel selections.
- 锁定图元在各命中路径生效: Enforce locked drawings in the hit, marquee and drag paths.
- 发布构建始终产出: Make the publish build always emit output.
- 发布入口与声明解析修正: Correct published entry points and declaration resolution.
- web-component 类型入口: Emit a typed web-component entry and drop stale react types.
- 修复 lockfile 悬空项: Repair the dangling
vite-plugin-babellockfile entry.
架构与重构
- 指标契约注册表(破坏性): Derive indicator pipeline types from a contract registry; an unregistered
@Indicatorname now fails at compile time. (BREAKING) - 指标身份统一为 displayName(破坏性): Unify indicator identity on
displayNameacross Core, UI and Agent, withresolveIndicatorDefinitionIdas the only resolver. (BREAKING) - 移除废弃 ai-runtime 与 MCP 桥接(破坏性): Remove the deprecated ai-runtime package and MCP bridge; agent tools now register through core-native
@Tool. (BREAKING) - 移除工具轮次上限(破坏性): Remove the tool loop limit — the 10-minute inactivity deadline is the only guard. (BREAKING)
- 设置解析分层与后端默认值检测(破坏性): Layer settings resolution per key, reuse
normalizeSettings, and detect the renderer backend default;resolveRuntimeSettingsis removed. (BREAKING) - 移除废弃 semanticConfig 再导出(破坏性): Drop the deprecated
SemanticChartConfigre-export from the web-component entry. (BREAKING) - 渲染上下文按角色拆分并强类型帧数据: Split the render context by role and type frame data.
- 绘图适配器拆分为职责端口: Split the drawing adapter into responsibility ports.
- 可见画布契约: Add a visible surface canvas contract.
- 绘图锚点可视化统一: Unify anchor visuals in the renderer, drop line-edge drag, and fix the disjoint channel.
- 对比基线索引泛化为可见 K 线查找: Generalize the comparison baseline index as a visible-bar lookup.
- UI 原语统一: Unify selector popover primitives, consolidate underline tabs into
BaseTabs, and use native<dialog>for modals. - 相对导入显式 .js 后缀: Use explicit
.jsextensions in relative imports.
性能
- Agent 面板折叠不再逐帧触发图表 resize: Collapse the agent panel without a per-frame chart resize.
- 自选列表折叠改为无重排动画: Animate watchlist collapse without chart relayout.
- 增量构建缓存: Enable and restore incremental tsc builds, and persist the vue-tsc incremental cache.
- 持久化 vitest 模块转换缓存: Persist the vitest module transform cache.
工程
- Biome 落地与 LF 统一: Adopt Biome for lint/format, switch vue tests to happy-dom, normalize EOL to LF, and refresh dependencies.
- 升级 Babel 8 与 vitest 5: Upgrade to Babel 8 and the vitest 5 family across the workspace.
- attw 门禁集中且必过: Centralize the attw gate, make it required, and cover agent-runtime.
- agent-runtime 发布准备: Publish agent-runtime from the release workflows and prepare the package (README under the generator, marked available on npm).
- 清理死代码与冗余流程: Remove the dead ui-schema package and the dead 302.ai live-provider workflow, and drop the stale web-component ignore pattern.
- CI 与工程杂项: Pin workflows to pnpm 12, correct the warn-only recursive build rationale and the CI gate matrix, add code/docs PDF export utilities, ignore
.trellis, and align the commit skill directory. - 测试夹具收敛: Consolidate core test doubles into shared fixture kits and share drawing test fixtures via a helper kit.
文档
- README Agent-native 架构: Add the Agent-native architecture section and replace the legacy MCP docs with the AI-native agent runtime.
- 博客:Vite monorepo HMR outside-root: Add a post on Vite monorepo HMR outside the root.
- 博客:WebGL/WebGPU 宽线连接差异: Add a post on WebGL/WebGPU wide-line join divergence.
- 绘图交互加固设计文档: Add drawing interaction hardening design notes.
- 测试夹具与稀疏序列类型说明: Document shared test fixtures and sparse series typing.
- 绘图坐标工具与样式键注释: Annotate drawing coordinate utils and style keys.