Changelog
Unreleased
-
MarkdownEditor
- ⚡️ 稳定插件列表并预先索引节点渲染器,添加纯渲染插件不再重建 Slate 实例和选区。
- 🐞 后注册的节点渲染器可覆盖默认插件;正确同步只读模式、Slate 子节点和 DOM 属性,保留嵌套代码围栏的解析与导出。
-
Plugins
- 🐞 代码块语言更新即时回退源码视图,热更新与卸载保留已接受的代码草稿;公式加载到绘制期间保持源码,避免占位闪烁与回退内容重叠。
- ⚡️ 代码预览、折叠与思考块不再创建隐藏 Ace 实例,清理异步主题和事件任务,加载期间显示源码。
- 🐞 图表正确响应等行数改值、列标题和外部配置更新,移除延迟重挂载;合并 Slate ref 并跟随局部容器尺寸调整布局。
- 🐞 Mermaid 取消过期加载与绘图回写,共享渲染队列隔离主题;窄容器和加载回退不再保留多余空白。
- ⚡️ KaTeX 相同正文复用公式 DOM,清空立即生效;未闭合流式公式和加载失败保留源码,长公式可横向滚动。
-
Components
- 🛠 移除与 Ant Design 重复的
IconButton、SwitchButton、ToggleButton及其 Props 导出,直接使用antd的Button和Tooltip;isLoading改用loading,尾部图标放在按钮子节点中,切换状态由调用方管理。
- 🛠 移除与 Ant Design 重复的
-
Workspace
- 💄 重整 Workspace 演示的交付概览、文件浏览和实时预览,统一间距与嵌入尺寸;首屏展示完整结果,按需重播生成过程,移除持续随机刷新和无效示例操作。
- ⚡️ 只读实时内容与文本预览默认使用轻量 Markdown 渲染,移除重复正文同步;流式正文更新不再触发标签栏重渲染,保留显式 Slate 渲染配置。
- ⚡️ 文件列表使用 CSS 文本截断,树路径索引按需构建;浏览器结果与任务行复用稳定节点,减少测量和无关更新。
- 🐞 文件预览取消旧请求并回收 Blob,相同来源和语言切换不再重复加载;修复空正文回退旧内容、加载失败持续占位及流式强制滚动问题。
- 💄 修正面板高度和滚动区域、窄屏标签与长文件名布局;精简过渡及计数动效,补充触屏操作、键盘焦点和减少动态支持。
-
Docs
- 📖 移除原生 Input/Select、Segmented 和重复按钮的展示页、demo 与导航搜索入口,保留 Markdown 输入等专属场景并迁移按钮示例。
- ⚡️ 长文本演示使用有限分批生成并支持取消;流式代码、图表和任务改为按需重播、完成后停止更新,稳定直方图样本并清理卸载后的异步任务。
- 🐞 修复聊天演示重复发送及回复回写、演示样式相互覆盖、任务展开状态失效,以及编辑器、图表和配置面板在窄容器中被压缩或裁切的问题。
- 💄 恢复所有文档 demo 的默认外框与说明区分隔线,适配明暗主题并保留完整预览高度。
- 🐞 静态首页随初始 HTML 输出完整样式,无后缀文档及 demo 路由提供对应入口,修复首次访问先闪出错乱首页的问题。
- 💄 清理编辑器、会话、图表及辅助 demo 自带的装饰外框与阴影,避免与文档外框叠加;保留控件、表格和样式定制演示的边框。
- 🐞 独立 demo 路由显式使用精简布局,避免代码预览内重复出现站点顶栏和文档侧栏。
- 💄 收紧首页区块间距并适配窄屏演示预览;轮播改为内容高度,移除无交互的两屏滚动占位。
- 🐞 首页卡片改为按钮控制翻面,避免悬停误触;展台连续切换即时响应,导航支持键盘及触屏操作,加载演示时提供状态反馈。
- ⚡️ 首页标题仅在入场时播放翻字动效,切换动效使用位移和透明度过渡;Canvas 在轮盘移动后启动并保留暂停进度,减少切换时的重建与空白重播。
- 🐞 修复 Ant Design reset 样式导致顶栏导航文字与搜索框、主题按钮和 GitHub 图标垂直错位的问题。
- ⚡️ 首页演示接近视口后才加载,增强设计各标签按需加载,减少首屏编辑器、图表依赖和隐藏 DOM。
- ⚡️ 首页粒子、轮播和打字动画在屏外及后台暂停;缓存静态粒子、精简轮盘节点并批量推进演示正文,减少持续绘制和渲染。
- 🐞 保持首页静态生成与首次客户端语言一致,避免语言偏好导致整页重新挂载;受限存储环境仍可切换语言。
v2.33.1
- 🛠 显式添加
@types/node为 devDependency,修复father build生成声明文件时process/NodeJS.Timeout类型缺失导致的构建失败。
v2.33.0
- MarkdownInputField
- 🆕 新增内联原子 chip 体系(
composerChips):slash 命令 chip(结构化技能节点 + 发送前onSlashChipGate拦截)、@file/@folder与@symbol内联 mention chip,从纯文本标签升级为 Slate inline void 节点,整体删除、点击配置、发送时序列化为/name与@path。 - 🆕 新增长文本粘贴折叠(
longTextFold):纯文本粘贴 ≥1200 字符或 ≥12 行时折叠为「长文本」chip(展示字符 / 行统计,点击弹出原文预览),发送时还原原文。 - 🆕 新增 fragment 级草稿恢复(
draft):idle / blur / send / switch / unmount 自动提交,draftKey切换时自动恢复;默认 localStorage,可自定义storage。 - 🆕 新增上下文用量指示(
contextUsage):工具栏环形指示器 + 内置ContextUsagePanel详情面板(分类分段条形图、可展开明细、高用量警告、compact 压缩操作),独立导出ContextUsageIndicator/ContextUsagePanel/computeBarSegments。 - 🆕 新增分支选择(
branch):分支 pill + 可搜索下拉菜单(当前分支未提交概览、逐分支切换 spinner、新建分支入口、文案定制),独立组件ComposerBranchTrigger一并导出。 - 💄 slash chip 色调对齐 IDE
resolveSlashCommandToneKey:plan/goal命令专属色,未配置 chip 无后续输入时展示placeholderText。 - 🛠 导出
insertComposerChip/withComposerChips/findUnconfiguredSlashChips/handleLongTextPasteFold及ComposerChipNode系列 chip 工具函数与类型。
- 🆕 新增内联原子 chip 体系(
- MarkdownRenderer
- 🐞 修复
throttleOptions.fade切换后缓存块复用旧 token 树的问题:fade 配置变化现在会重建 processor 触发重解析,流式结束仍保持 processor 稳定不卸载重组件。
- 🐞 修复
v2.32.49
- OfficeViewer
- 🐞 动态加载
@silurus/ooxml子模块时对 Webpack / Vite 使用 ignore 注释,业务工程未安装 optional peer 时不再构建失败;运行时未安装 peer 时回退 jsDelivr ESM。 - 🛠
WorkspaceOffice 预览仅静态引用inferOfficeFileType工具,避免同步打入完整OfficeViewer实现。
- 🐞 动态加载
v2.32.48
- OfficeViewer
- 🆕 新增
OfficeViewer组件:基于 optional peer@silurus/ooxml预览 docx / xlsx / pptx;未安装时降级提示,WASM 默认 CDN 可经wasmUrl覆盖。 - 🆕 PPTX 新增左侧缩略图侧栏(
enableSlideRail,默认开启):点击缩略图跳转对应页,关闭后退化为连续滚动视图。 - 🆕 支持复制内容:docx / pptx 默认启用文本层可划选复制(
enableTextSelection);xlsx 选中单元格后Ctrl/Cmd+C以 TSV 写入剪贴板。 - 📖 新增「Markdown 中渲染卡片」文档演示:
Word / Excel渲染为文件卡片、PPTX 卡片内展示幻灯片缩略图列表,点击卡片打开详情预览。
- 🆕 新增
- Workspace
- 🆕
File预览接入 Office 三件套:.docx/.xlsx/.pptx可内联预览;旧版.doc/.xls/.ppt与csv仍不走 Office 预览。
- 🆕
v2.32.47
-
Test
- ✅ 新增 E2E:SandboxRenderer 沙箱渲染(Shadow DOM 渲染/交互/作用域隔离,#330)、MarkdownEditor WYSIWYG 即时转换(默认配置转换矩阵,#59)、首页 footer 可见性(#397)。
-
MarkdownEditor
- 🐞 改进所见即所得体验:
#标题转换不再限制文档首段,任何正文段落输入即转;-/[ ]列表转换在matchInputToNode默认关闭时也放开正文段落(首段保护保留,避免聊天输入框误转)。Closes #59
- 🐞 改进所见即所得体验:
-
SandboxRenderer
- 🆕 新增
SandboxRenderer组件,安全渲染 coding agent 生成的 JavaScript 代码:节点创建走真实 DOM、查询限定在 Shadow DOM 容器内,继承ProxySandbox超时中断与全局对象白名单。Closes #330 - 🆕
ProxySandbox新增renderRoot配置:指定后沙箱内document切换为作用域实现(createElement等返回真实节点,querySelector/getElementById限定在根节点内),并以shadowRoot名称暴露给脚本。
- 🆕 新增
v2.32.31
- MarkdownRenderer
- 🛠 移除全部流式动画与字符队列(段落淡入、分帧渐进淡入、
CharacterQueue打字机及AnimationText),流式内容改为经useStreaming缓存后即时渲染;删除queueOptions、streamingParagraphAnimation、isFinished等已无作用的 API 与导出。 - 🆕 新增
ContentThrottle+useContentThrottle,将一次性到达的大段 SSE 文本按帧顺序推进展示,缓解整页突变;isFinished/throttleOptions透出至MarkdownPreview与ReadonlyMarkdownEditorView。
- 🛠 移除全部流式动画与字符队列(段落淡入、分帧渐进淡入、
- TaskList
- 💄 simple 变体 wrapper 使用
fit-content避免撑满整行。
- 💄 simple 变体 wrapper 使用
- ToolUseBar
- 💄 工具容器改用
grid 0fr/1fr过渡替代max-height,并注册--tool-rotate自定义属性以稳定旋转动画。
- 💄 工具容器改用
- Workspace
- 🆕
FileTree:仅预览模式下支持合成树叶子节点绑定。
- 🆕
- 🛠 样式系统
- 🛠 移除
useGenStyle返回的废弃wrapSSR包装函数,useStyle不再返回wrapSSR。 - 🛠 全量移除 70+ 组件中的
wrapSSR(...)包裹调用,组件直接返回 JSX。
- 🛠 移除
未发布
-
Bubble
- 🐞 完成或停止生成时立即展示缓冲正文并退出流式状态,即使配置仍显式开启
streaming;清理逐词节点并保留音视频播放状态。 - ⚡️ 流式更新复用未变的列表行 React 元素,减少历史行子树创建和包装组件渲染;正文追加时保持附件与默认思维链稳定,配置及状态变化仍即时更新。
- 🐞 修复空操作栏无法恢复、自定义操作被隐藏、引用占位符未替换及原文链接无法跳转;保留数字与数组正文,操作栏显隐及切换悬浮模式时保留编辑草稿。
- 🐞 统一
quote、Context、操作栏与 ref 的公开类型,接通styles/classNames的简短语义字段;附件和语音配置更新即时生效。 - ⚡️ 合并 AI 气泡重复容器,省略空标题与前后区域;懒加载共用列表行和观察器,追加消息或切换加载策略时保留已显示消息状态,骨架屏不再计算隐藏消息。
- ⚡️ 普通只读消息默认使用
MarkdownRenderer,编辑态、Slate 专属配置/插件及编辑器配置注释保留 Slate;引用预览按需挂载并保留语言环境与表格全屏交互。 - 🛠 移除独立的
PureBubble、PureAIBubble、PureUserBubble、PureBubbleList和PureBubbleListProps,统一使用Bubble/BubbleList;简洁样式通过pure配置。新增@ant-design/agentic-ui/Bubble按需入口。 - 🐞 统一正文配置的优先级,保留
markdownRenderConfig.initValue和显式readonly;正文默认只读,原 Pure 用法需要编辑时请设置readonly={false}。修复扩展消息字段、会话配置及回调变化被 memo 忽略的问题。 - ⚡️ 流式更新复用未变的历史消息、样式和上下文;loading 消息使用稳定标识,避免重复挂载与丢失内部状态。
- ⚡️ 删除每条用户消息的一层重复容器,稳定正文属性,避免反馈与布局状态变化重复渲染未变正文。
- ⚡️ Schema 编辑桥接仅在开发环境按需加载;外部正文更新直接反映在当前渲染,避免旧正文回显与额外渲染。
- ⚡️ 引用列表仅在展开时挂载条目,折叠或关闭预览时释放隐藏内容;Slate 正文更新复用编辑器同步入口,避免重复解析并保留插件配置。
- 🐞 完成或停止生成时立即展示缓冲正文并退出流式状态,即使配置仍显式开启
-
MarkdownRenderer
- ⚡️ 流式更新直接复用未变块的 React 元素,单个块仅保留最近一次解析结果;相同 HTML 配置与空插件数组不再重建解析器,减少历史块计算与回退分支的缓存占用。
- ⚡️ 普通文本与代码正文按片段处理流式 token;脚注按已提交的定义上下文增量解析尾部,仅更新变化的引用预览,新全局定义或正文修订仍完整校验。
- ⚡️ 隔离代码块与表格的配置订阅,复用未变图表数据和 Schema 默认渲染;代码工具栏减少一层 DOM,尚未形成图表的流式内容不注册 resize 监听。
- ⚡️ 普通流式正文复用已完成块,仅重新切分末尾窗口;复杂指令保留完整处理,修订、回退与清空仍正确重置。静态正文首帧同步显示,重新开启空流时清除旧正文。
- 🐞 限流器比较实际已展示的前缀,修复修改前文但边界字符相同时沿用旧展示进度的问题。
- 🆕 新增
tableConfig,支持原生表格按需打开弹窗或抽屉全屏预览。 - ⚡️ 脚注定义按正文统一解析并共享给引用角标,移动端预览首次点击才挂载;只读音视频默认不预加载。
- 🐞 稳定节点渲染桥接,链接、脚注和表格配置更新即时生效并保留媒体播放进度;打开中的表格预览与代码块不再因配置回显重挂载。
- ⚡️ 清理已封版或已结束流式输出的逐词动画节点,合并相邻文本并保留格式、图表及媒体实例;结束流式输出时不再重复挂载已显示段落。
-
TaskList / ToolUseBarThink / ToolUseBar
- ⚡️ 收起的任务与思考正文首次展开才挂载,展开后保留自定义内容状态;任务展开仅更新对应行,工具条不再创建空的隐藏内容容器。
-
Workspace
- ⚡️ 精简文件行、文件树叶子和搜索结果的 DOM,按需挂载图片预览;稳定文件行数据引用,避免折叠其他分组时重复渲染文件内容。
-
MarkdownEditor
- ⚡️ 稳定插件与编辑器上下文,减少卡片与 Tag 的选区订阅和节点遍历;合并普通输入的选区查询,精简链接卡片 DOM。
- ⚡️ 只读入口隔离 Slate 运行时依赖,流式更新复用评论观察器;编辑态删除评论时才加载 Slate 操作。
- 🐞 节点更新和嵌入式代码、Tag 编辑在执行时校验当前 Slate 节点身份,避免节点移动、删除或正文替换后写入相邻节点;表格索引路径随结构变化同步。
- 🐞 修复只读反向选择、键盘选择与跨编辑器选区同步;加载正文仅清理当前编辑器的浏览器选区,聚焦回调保留插件序列化。
- ⚡️ 合并连续选区通知并取消卸载后的任务,对相同文档和选区去重,避免重复回调、序列化与测量;相同文字位于不同位置时仍更新浮条定位。
- ⚡️ 代码块普通输入保留已有空文本叶子,减少多余的 Slate 删除和插入操作;中文输入法组合结束后再提交,禁止只读或输入法组合期间的结构快捷键,切换只读时保留防抖中的最后一次输入。
- ⚡️ 普通输入和选区变更改用 Slate 脏路径规范化,避免反复清洗、复制及序列化整棵文档;保留导入数据与强制规范化的完整校验。
- ⚡️ 粗体文字复用 Slate 叶子节点,移除重复的装饰
span;普通文字不再为恢复 Jinja 占位符而递归复制 React 子树。 - ⚡️ 表格行列索引仅在激活时挂载操作工具及外部点击监听器,并隔离稳定的操作上下文,减少大表格的隐藏 DOM、全局监听器与输入重渲染。
- 🐞 高亮范围按节点及 Jinja 配置缓存且只合并一次,避免重复装饰及改写外部高亮缓存;选区移动不再重复计算占位符。
- ⚡️ 任务列表的指派候选首次打开才加载,移除挂载时的空指派写回,避免多任务列表触发批量请求和正文更新。
- ⚡️ 合并媒体和只读图片的重复包装节点,拖拽图标复用现有节点;图片与媒体工具栏关闭后释放隐藏内容,保留选区映射与播放实例。
- ⚡️ 减少 Tag、卡片与表格单元格的全文订阅;合并增删列的规范化批次,复用未变单元格的列宽计算。
- ⚡️ 编辑态只初始化一次编辑器与初始文档,避免属性回显重复解析 Markdown;Tag 候选项仅在打开时加载,共享面板只加载一次。
- 🐞 切换只读或同时更新插件与初始值时保留当前编辑草稿;只读内容更新仍正常同步。
- 🐞 修复跨段选区粘贴使用过期路径的问题;
onPaste返回false时保留选中文字,空或无效的 Slate 剪贴板片段允许回退到纯文本。 - 🐞 自动保存与
store.getMDContent()统一使用插件序列化;Markdown 解析缓存按插件与配置隔离,避免不同插件串用节点。 - 🐞 清空正文或替换异步加载任务时取消旧帧,避免旧内容重新出现或旧任务覆盖新任务的取消句柄。
- ⚡️ 图片与音视频使用实际展示元素加载,移除重复预加载与挂载时的文档写入;未选中图片不挂载缩放手柄,音视频仅预加载元数据。
- 🐞 图片缩放按松手时的最终尺寸保存,支持外部尺寸与地址更新;节点移动后缩放和删除仍作用于原媒体。
- 🐞 修复卡片缓存遮蔽媒体尺寸、地址及删除更新的问题;修改音视频说明或尺寸时保留播放位置。
- 🐞 选中媒体后输入、回车或粘贴时在卡片后创建可见段落;删除保留有效光标并支持单步撤销,避免隐藏文字、空卡片与路径错误。
- 🐞 统一图片、音视频与附件的复制和剪切入口;剪贴板写入成功后才删除正文,支持插件序列化、路径移动保护与单步撤销。
- 🐞 媒体链接插入支持真实请求超时与重复操作互斥,异步结果不再覆盖等待期间的新编辑;多文件粘贴保留文件顺序与类型。
- 🐞 修复表格闪动:删除表格行入场动画(
tbody tr的agenticMdBlurFadeIn)。流式增量会反复重挂表格行导致 blur 淡入重放;agenticMdBlurFadeInkeyframes 仅保留供MarkdownRenderer流式逐词淡入使用。 - 🐞 修复 readonly 流式渲染松散列表时条目被反复追加;多块解析结果现在会在进入 Slate 前合并相邻同类列表,并收紧 hash 快速路径的结构校验。#722
- 🐞 修复 IME 组合文本全部删除后,
compositionend回补旧片段导致残留首字符的问题。#721 - 🐞 apaasify 自定义渲染内容使用浏览器原生复制,不再被 Slate 的 schema 片段复制逻辑覆盖。#201
-
MarkdownInputField
- 🆕 新增
suggestionProps,支持通过enabled: false关闭内部 Dropdown,并可配置getPopupContainer、destroyOnHidden、forceRender与placement。#682
- 🆕 新增
-
📦 兼容性
- 📦 支持 Ant Design 5.29.3 至 6.x:
antd改为 peer dependency,开发环境升级至 antd 6,并新增 antd 5/6 双版本 CI;移除不兼容 antd 6 的 Pro Components 运行时依赖。#649 - 🛠 升级
@ant-design/cssinjs与@ant-design/cssinjs-utils至 2.x,并兼容 antd 5/6 的 Popover 语义样式键。
- 📦 支持 Ant Design 5.29.3 至 6.x:
-
📖 文档
-
MarkdownInputField
- 🆕 新增
inputHistory输入历史导航(对齐桌面 IDE 聊天输入框):↑/↓在内容首尾回溯已发送内容,回溯前暂存编辑草稿,历史仅存于组件实例内存。 - 🆕 新增拖拽上传:配置
attachment后可直接把文件拖入输入框(含格式、大小、数量校验与悬停高亮覆盖层)。 - 🆕 新增
followups建议条:点击即发送或回填输入框(fillOnly),样式与输入框宽度对齐。 - 💄 Slash / Tag 芯片选中插入时播放一轮字符波浪 + 图标扫光动画(对齐桌面 IDE composer 动效),尊重
prefers-reduced-motion。 - 🐞 聚焦时也同步外部受控值的清空、会话与草稿更新,保留编辑器自身回显及输入法组合输入的保护。
- 🐞 Followups 接入统一发送管线,遵守禁用、生成中、发送按钮禁用及发送互斥;输入、截断、快捷操作与回填统一通过状态更新通知一次
onChange。
- 🆕 新增
-
MarkdownRenderer
- 🆕 新增 GPT 风格流式逐词淡入:
streaming时默认对新词淡入,已显示内容复用 DOM、不闪烁;纯 CSS,尊重prefers-reduced-motion;代码块 / 表格 / 公式不拆词。 - 🆕 淡入开关收敛至
throttleOptions.fade(默认true,仅streaming时生效):throttleOptions={{ fade: false }}关闭。MarkdownEditor(renderMode: 'markdown')与Bubble.markdownRenderConfig经既有throttleOptions透传即可。 - 🛠 通过末注册 rehype 插件在最终 hast 上拆分文本 token;processor 在流式会话内保持同一实例,避免 chart / 代码块卸载重挂。
- 📖 整理
markdown-renderer.md:演示分区、API 表字母序、ContentThrottleOptions.fade说明;同步api.md/bubble.md/ Playground 与流式对比 Demo。
- 🆕 新增 GPT 风格流式逐词淡入:
-
TaskList
- 🛠
simple模式移除摘要条下方 2px 细线进度条;showProgress现仅控制摘要内「已完成/总数」计数文本是否展示。 - 🆕 新增
scrollIntoViewOnExpand属性(boolean | ScrollIntoViewOptions,默认false):simple模式下展开摘要条时将组件滚动到视窗内;传true走默认{ behavior: 'smooth', block: 'nearest' },初次挂载不触发。
- 🛠
-
ToolUseBarThink
- 💄 移除底部
content-expand(展开/收起)按钮的默认背景与 hover 背景填充,仅保留文字颜色变化;hover 整个卡片时不再叠加另一层灰色,与根容器背景统一为单一灰。 - 🆕 新增
scrollIntoViewOnExpand属性(boolean | ScrollIntoViewOptions,默认false):展开时将组件滚动到视窗内,初次挂载不触发;行为与TaskList一致。 - 🆕
MarkdownEditor.codeProps新增scrollDeepThinkIntoViewOnExpand,透传至深度思考块的ToolUseBarThink.scrollIntoViewOnExpand,使编辑器内```think代码块也能配置展开滚动。
- 💄 移除底部
-
🛠 样式系统
- 🛠
Hooks/useStyle重写为基于@ant-design/cssinjs-utils的genStyleUtils,与 antd 上游theme/util/genStyleUtils同源;新增导出genStyleHooks/genComponentStyleHook/genSubStyleComponent及类型AgenticComponentTokenMap/FullToken/GenStyleFn,组件可通过模块声明扩展自己的ComponentToken。 - 🛠 全量迁移 70+ 组件的
style.ts至genStyleHooks('ComponentName', genStyle)模式(AILabel/TaskList/ToolUseBar/Workspace/Plugins/chart/*/MarkdownEditor主样式 等);useEditorStyleRegister作为兼容入口保留,少数动态 token / 动态 classNames 场景(Bubble主样式、MarkdownInputField主样式、MarkdownEditor/editorcontent 样式)继续走该入口,其内部已改由@ant-design/cssinjs的useStyleRegister直接驱动。 - 🛠 移除对
@ant-design/theme-tokencreateStyleRegister的依赖;组件库统一保持hashId='',避免与宿主 antd 主题哈希叠加导致选择器失效。 - ⚡️
useStyle返回的wrapSSR改为 identity 函数:样式注入由 cssinjsuseGlobalCache→updateCSS副作用完成,与wrapSSR无关;浏览器 CSR 下wrapSSR(node)此前一直等于<><Empty/>{node}</>,组件库也未使用<StyleProvider ssrInline>,因此该层 Fragment +<Empty/>元素纯属无用开销。改造后每个组件每次渲染少一层 React 元素分配;组件文件继续return wrapSSR(<jsx/>)仍兼容(identity 透传),新组件可以直接return <jsx/>。
- 🛠
-
Workspace
- 💄
FileTree:文件夹与叶子节点名称通过 CSS 单行省略,悬停title展示完整名称。 - 🆕 新增
defaultActiveTabKey:非受控模式下指定初始激活的标签 key。 - 🆕 新增
notifyOnInvalidActiveTabKey(默认true):受控且activeTabKey不在当前标签列表时,是否通过onTabChange回传有效 key;设为false时仅界面回退、不触发回调。 - 🆕 新增
preserveFilePreviewOnTabChange(默认false):为true时离开文件类标签再返回可保留Workspace.File/Workspace.FileTree的预览态。 - 🆕 新增
emptyContent:无任何有效子面板时的占位内容(未传仍渲染null)。 - 🆕 子组件
BaseChildProps.panelType可显式声明面板类型;包入口导出markWorkspacePanel、WORKSPACE_PANEL_TYPE,内置Workspace.*子组件带面板标记,支持识别React.memo(Workspace.File)及沿type链解析的forwardRef/memo包裹。 - 🛠 切换标签时仅在离开
file/fileTree面板,或在两个文件类 Tab 之间切换时递增resetKey重置预览;切换到非文件类 Tab 不再对隐藏中的文件面板无意义递增。 - 💄
Workspace.File的fileTreeSwitch分段控件:平铺BarsOutlined、文件树ApartmentOutlined;Workspace默认「文件」「文件树」Tab 图标与上述语义对齐(@ant-design/icons)。 - 📖
workspace.md补充Workspace新属性表、子面板识别(panelType/markWorkspacePanel)、受控标签与预览行为、最佳实践。 - ✅ 补充
Workspace与workspacePanel单测(defaultActiveTabKey、emptyContent、memo识别、notifyOnInvalidActiveTabKey等)。 - 🛠 防御性处理:展开
Fragment子节点、去重tab.key、忽略 Segmented 分隔项与非法切换 key、校验panelType/tab.count、normalizeTabKey、限制type链遍历深度。
- 💄
-
📖 文档
- 📖 新增
MarkdownRenderer组件文档(流式 Markdown、ContentThrottleOptions、内置代码块渲染器路由表、MarkdownRendererRef)。 - 📖 新增
ToolUseBarThink独立组件文档;同步修正ToolUseBar中ToolUseBarThink的 API 表(移除已废弃 / 不存在的id/isThinkLoading/isActive/onActiveChange等字段,对齐实际 props)。 - 📖 新增
GradientText、TextAnimate、TypingAnimation组件文档与对应 demo。 - 📖 为
MarkdownRenderer/GradientText/TextAnimate/ToolUseBarThink各补充一份「API Playground」综合 demo,单一演示串联调试各组件的核心 props 与行为。 - 📖 为布局组件
AgenticLayout/ChatLayout/LayoutHeader各补充一份「API Playground」综合 demo,覆盖三栏开关、宽度、受控/非受控折叠、scrollBehavior、命令式 ref(scrollToBottom/isAtBottom)、onScrollStateChange、leftExtra/rightExtra等核心 props。 - 🛠
task-running.md改写为AgentRunBar 任务运行状态,标注TaskRunning/TaskRunningProps/TaskRunningVariant/TaskRunningActionsRender为已废弃别名;同步将docs/demos/task-running.tsx中的TaskRunning替换为AgentRunBar。
- 📖 新增
v2.33.0
-
MarkdownEditor / Plugins.chart
- 🆕 新增
chartType: "docCards"支持「Markdown 表格 → 卡片栅格」展示,与现有图表共用同一套「HTML 注释 + GFM 表格」数据契约。表头按名称/标题、地址/链接/URL、简介/描述、亮点/标签别名解析为title/url/description/tags,支持「逻辑名 + 中英文括号单位」的宽松匹配;cardColumns控制每行卡片数(取值1~4,默认2,超出自动 clamp),fieldMap可显式覆盖字段映射。 - 🐞 安全:
isSafeHref显式拒绝 protocol-relative URL(//evil.com)。原实现以startsWith('/')放行站内绝对路径时会同时放行//host,等价于绕过协议白名单。 - 🛠 包体积:抽出
src/Utils/columnMatching.ts零依赖共享模块,承载columnKeyMatchesConfiguredField/resolveChartAxisFieldToColumnKey/DOC_CARDS_FIELD_ALIASES/resolveDocCardsFields等纯字符串工具。DocCards/utils.ts不再 importparseTable,消费侧import { DocCards }不再被传递性带入完整 markdown 解析栈(remark / rehype / sanitize / katex 等)。parseTable.ts与DocCards/utils.ts仍 re-export 原符号保持向后兼容。 - 💄 站内链接(
/foo、./foo、../foo、#anchor)不再强制target="_blank",避免锚点跳转开新 tab;外部链接(http(s)/mailto/tel)仍开新 tab 并带rel="noopener noreferrer"。 - 🌐 标签胶囊容器
aria-label改为docCardsTags(中文「标签列表」/英文「Tags」)专用 i18n 键,原先用docCards会被屏幕阅读器误读为「卡片列表」。 - 🆕
@ant-design/agentic-ui主入口同步导出DocCards组件与resolveDocCardsFields/splitDocCardsTags/isDocCardsSafeHref/formatDocCardsDisplayUrl/DocCardsDefaultFieldAliases等工具,方便消费侧复用。 - 💄 卡片链接展示 hostname + path(
https://tailwindcss.com/docs→tailwindcss.com/docs),href与titleattribute 仍是原始 URL;超长 URL 单行省略。 - 💄 移动端适配:
< 480pxviewport 强制单列;卡片:hover用@media (hover: hover)包裹避免 first-tap 残留;链接最小触摸高度 24px(WCAG 2.5.5 AA);标签胶囊用 padding 而非固定 height,避免在手机端被压扁。 - ⚡️
gridTemplateColumns用useMemo缓存;header 节点抽到useMemo;cardColumns走repeat(N, minmax(0, 1fr))精确控制最多 N 列,避免auto-fit在宽容器塞超过用户期望的列数。 - 🛠
parseTable:docCards在解析阶段做主标题列校验,命中失败整表降级为普通 Markdown 表格,避免输出空白卡片栅格;不影响其它chartType行为。
- 🆕 新增
-
🐞 修复 React Hooks 依赖项导致的死循环与过度渲染问题
- SchemaRenderer:
schema || {}每次渲染产生新引用导致useMemo([safeSchema])失效,改用模块级常量EMPTY_SCHEMA - SchemaForm:
schema?.component || {}每次渲染产生新引用导致useMemo([properties])失效,改用模块级常量EMPTY_COMPONENT - ButtonTabGroup:默认参数
items = []导致useEffect([items])每次渲染触发,改用模块级常量EMPTY_ITEMS - useChartDataFilter:
Array.isArray(data) ? data : []导致useMemo([safeData])失效,改用模块级常量EMPTY_DATA - TagPopup:
props || {}解构出的items引用不稳定,移除多余的|| {}回退 - I18n:
antdContext?.locale(对象引用)作为依赖导致 effect 过度触发,改为antdContext?.locale?.locale(字符串) - AgenticLayout:
currentRightWidth同时作为依赖和setCurrentRightWidth的目标导致 resize listener 反复重建,改用 ref 持有 - BaseMarkdownEditorSlate:
isEditorFocused同时作为依赖和 setter 目标导致 mousedown listener 反复重建,改用 ref +useRefFunction - Workspace:受控模式下
setInternalActiveTab无条件执行导致 effect 二次触发,增加currentKey !== internalActiveTab守卫 - ActionItemContainer:
props.children作为依赖导致 effect 每次父渲染都触发,改用useMemo提取childrenKeys - keyboard:空依赖
[]但使用了props.readonly/store/keydown,补全依赖 - ThoughtChainList/MarkdownEditor:
useEffect缺少props.plugins和props.initValue依赖,补全 - AceEditorWrapper:
onChange闭包捕获初始值导致后续变化不生效,改用onChangeRef模式 - BubbleExtra:
useEffect缺少props.onRenderExtraNull依赖,补全 - FileComponent:
useEffect缺少previewFile依赖,补全 - Editor:
ref.current作为依赖不可靠,移除并加 eslint-disable 注释 - useAutoScroll:无依赖
useEffect同步 ref 改为useLayoutEffect
- SchemaRenderer:
-
🛠 SchemaRenderer / SchemaForm:
EMPTY_COMPONENT补充ComponentConfig类型标注 -
🛠 BaseMarkdownEditorSlate:
setEditorFocused由useCallback改为useRefFunction,移除多余的isEditorFocusedstate -
📖 开发指南新增「React Hooks 依赖陷阱」章节,记录 7 类常见模式及修复方案
v2.32.0
- MarkdownInputField
- 💥 Breaking change:
actionsRender/toolsRender/quickActionRender/beforeToolsRender入参类型由「上帝接口」MarkdownInputFieldProps & MarkdownInputFieldProps['attachment'] & {...}收敛为稳定派生类型SlotRenderState(actionsRender用ActionsSlotState含collapseSendActions)。新入参字段:value/isHover/isLoading/fileMap/onFileMapChange/fileUploadStatus/fileUploadSummary/attachment/disabled/typing。迁移:将props.upload等附件字段访问改为state.attachment?.upload;其他字段改名props→state即可。 - 🛠
MarkdownInputFieldProps['attachment']由内联结构{ enable?: boolean } & AttachmentButtonProps改为命名类型AttachmentConfig,行为完全等价。 - 🆕 新增对外类型导出:
SlotRenderState、ActionsSlotState,便于在自定义 slot 实现中获得类型提示。
- 💥 Breaking change:
v2.31.5
- 🛠 将部分导出类型从值导出改为类型导出,优化打包体积。
- 🛠 移除未使用的 locale key 和修复 lint 错误。
- ✅ 移除测试中不再使用的动画 mock 文件。
- 🛠 清理 MarkdownEditor 工具函数并优化导入路径。
v2.31.4
- 🐞 修正任务进行中状态的文本显示逻辑。
- ⚡️ 优化 tree-shaking — 消除反向 barrel 引用、具名导出第三方 SDK、补充 sideEffects。
- 🐞 修复暗色主题下代码块的样式问题。
- 🛠 移除已废弃的 theme 国际化 key(代码块主题切换按钮已移除)。
v2.31.3
- ✅ 添加 rehypeSanitizeUserHtml 插件的单元测试。
- 🛠 代码块主题跟随全局主题,移除独立月亮图标切换。
- 🐞 添加 rehypeSanitizeUserHtml 插件,过滤用户输入中的危险 HTML 防止页面布局错乱。
- 🛠 将硬编码颜色值替换为 CSS 变量。
v2.31.2
- ⚡️ 减包体与首屏 - Lottie 直引、只读 markdown 拆组件、Renderer 懒加载。
v2.31.1
- 🛠 使用 token 变量替换硬编码颜色值以支持主题切换。
v2.31.0
- 📖 添加 MarkdownInputField 组件 demo。
- 📖 添加 Loading 组件 demo。
- 💄 为 Loading 组件添加暗色主题支持。
- 🛠 移除 prepublishOnly 中的 test 步骤。
- 💄 合并下载和复制按钮样式,使用统一样式。
- 💄 为表格和图表工具栏复制按钮添加暗色主题支持。
v2.30.35
- 🛠 修复 eqeqeq 规则错误和未使用的 import。
- 🐞 修复 FileTree 和 FilePreview 组件的多个问题。
- 🛠 移除 Paragraph 中的 MutationObserver,改用 composition 事件监听。
- 🐞 修复动线生成动画的多个问题。
- ⚡️ 优化 useDetectTheme 为单例模式,避免重复 MutationObserver。
- 🐞 图表组件支持 html[data-theme="dark"] 自动切换暗色主题。
- ✅ 将 Robot 组件测试改为异步并添加 Lottie 加载等待逻辑。
v2.30.33
- 🆕 为 ChartContainer 添加自动主题检测功能。
- ✅ 修复 onLoadChildren 重试用例的异步时序。
- 🆕 添加 ThreeThinkingLottie 按需加载动画组件并移除用户消息多余间距。
v2.30.32
- 🆕 为多个组件添加 data-testid 属性以支持自动化测试。
- 🛠 调整 BubbleList 代码格式与缩进。
v2.30.31
- 🐞 移除 MarkdownEditor 内容区 margin 变量覆盖。#513
- 🐞 无 onClick 时不再阻止 ActionIconBox 事件冒泡。
- 🆕 为 Workspace 添加 FileTree 组件,支持懒加载子节点。#510
- 🐞 修复 Bubble useMemo/useEffect 依赖缺失与性能问题。
- 🐞 提升 ToolUseBarThink light 变体在 success 后的样式优先级。#511
- 💄 优化 TaskList 缓动曲线,demo 改为自动循环播放。
- 💄 降低 TaskList simple 模式 demo 动效速度。
- 💄 TaskList simple 模式 demo 支持动态变化演示。
- 💄 移除 TaskList progress 元素,文字变化时添加模糊渐入动效。
- 💄 TaskList Simple 模式展开收起添加 CSS 过渡动画。
- 🐞 TaskList Simple 模式去背景色、始终显示最后任务、清理冗余。
- 🐞 修复 MarkdownInputField 发送按钮按主题实色保障对比度。#509
- ⚡️ 移除 ToolUseBarThink framer-motion,全 CSS 动画 + 性能优化。
- 🐞 修复 MarkdownInputField tools 栏固定高度与内边距冲突导致的纵向错位。#508
- 🆕 支持 thinking 标签作为思考块的别名。
- ⚡️ 流式渲染性能与正确性全面改进。
- 🛠 移除文件中的 BOM 字符。
v2.30.30
- 🛠 抽取 MarkdownEditor 样式清理函数并支持自定义属性。
- 📖 更新 bubble 示例为文件理解场景。
v2.30.29
- 🛠 无重大变更。
v2.30.28
- 🛠 无重大变更。
v2.30.27
- 🐞 修正 Bubble 代码块选择器并改进 SendButton 无障碍。#507
- 🐞 流式 JSON 代码块避免 Ace 反复 setValue 闪动。#504
- 💄 内置 Agentic UI 业务层 CSS 覆盖。#506
- 🐞 规范化 redacted_thinking 别名使嵌套 JSON 保持在思考块内。#505
- 🐞 附件列表文件大小与错误文案单行省略显示。#503
- ⚡️ 减少 ThoughtChainList 流式更新时深度思考相关重渲染。#501
- ✅ 默认套件排除大体积目录,用例约 5000 条。#500
- ✅ 减少 ace 和 elements 测试中的重复 mocks。#498
- 🐞 图表 x/y 与表头带单位列名宽松匹配并补充 RFC。#499
v2.30.26
- 🐞 修复 MarkdownEditor IME 与根级双空段、initSchema 同步问题。
v2.30.25
- 🐞 改进加载指示器并增强 Markdown 渲染。
- 🆕 增强 Bubble Markdown 渲染,支持稳定的 fncProps 和缓存改进。
- 🐞 懒加载行避免 display:contents 导致 LazyElement 永不显示。#494
- 🐞 段落可见性依据 Slate 子节点而非 React children。#493
- 🛠 移除 todo.md 文件。
- 🐞 停止修改 list items 使流式更新不重新渲染所有气泡。#492
- 🐞 修正 Mermaid SVG 尺寸与适配画布缩放冲突导致图表过小。#487
- 🛠 移除 todo.md 并更新 clean-code 规则不再要求该文件。#491
- 🐞 空 initValue 不再重复追加段落以恢复占位符。#490
- 📖 rerender 演示支持左侧 Markdown 手动编辑。#488
- 📖 优化 MarkdownInputField demos。#486
- 📖 格式化组件文档中的 Props 表格。
- 🐞 修复 MarkdownEditor 稀疏 children 导致 Slate renderLeaf 读取 undefined。#485
- 🛠 移除文档 BOM 头并优化 MarkdownInputField 导入顺序。
v2.30.24
- 🐞 修复 MarkdownEditor 空 markdown 内容处理及 Node 方法安全调用。
- 🐞 增强 MarkdownEditor sanitize normalizer 对抗无效 Slate trees。#484
v2.30.23
- 🐞 规范化时剔除 MarkdownEditor 非法子节点避免 Node.string 崩溃。#483
v2.30.22
- 🛠 恢复 demo 检查与报告脚本。#482
- 📖 优化 MarkdownInputField 文档 Demo 布局并修复示例问题。
- 🆕 支持 Bubble OpenAI/OpenClaw/Ollama 消息格式适配器。#481
- 🐞 修复 MarkdownEditor 空段落退格误触全选清空。#479
- 🐞 流式段落动画默认开启与 E2E/单测稳定化。#478
- 🐞 流式文本更新结束时 ChatLayout 自动滚动到底部。#480
- 🐞 修复 MarkdownRenderer 流动画失效并新增流式闪烁光标。#477
- ✅ 添加 MarkdownEditor 过期选区处理回归用例。#476
- ✅ 补充 MarkdownEditor 无效选区路径回归用例。#475
- ✅ 添加 Mermaid 工具栏交互回归用例。#471
- 🛠 Slate.js 规范化使用改进 (P0-P3 全部修复 + 覆盖率达标)。#474
- 🐞 修复 MarkdownEditor isElement 崩溃读取 undefined.children。#472
- 🆕 SendButton 文件上传中禁用发送按钮,支持 sendButtonProps.disabled 外部控制。#470
- ✅ 添加 attachment preview 透传回归用例。#467
- ✅ 补充 MarkdownInputField attachment onPreview 透传与容错回归用例。#468
- ✅ 补充 AttachmentFileListItem 重试的单测。#465
- 🐞 修复不规范 Demo 代码的 Lint 错误。#466
v2.30.22
- Workspace
- 📖 补充
Workspace.FileTree懒加载文件树文档演示workspace-file-tree-demo。 - 🐞
FileTree:空目录或加载失败时不再将目录误标为叶子;onLoadChildren失败时Promise正确 reject 以符合 rc-tree 重试;toDataNode对未传isLeaf的节点按「无子项则文件」处理;resetKey不再清空已懒加载状态。 - 🛠
FileTreeProps懒加载回调命名为onLoadChildren,与事件回调on前缀规范一致。 - 🛠
resetKey仅注入当前激活的Workspace.File/Workspace.FileTree子项,非激活页不再随切换递增,减少隐藏面板的无效更新。 - ⚡️ 标签栏构建时预计算 Segmented 选项、首个
Realtime索引,避免 O(n²) 的findIndex重复扫描。 - 🛠
FileTree中onLoadChildren经useRefFunction归一,减轻 TreeloadData对回调引用变化的敏感抖动。 - 🛠 新增导出类型
WorkspacePanelType;TabItem.componentType收窄为该联合类型(文档补充TabItem说明)。
- 📖 补充
- MarkdownRenderer
- 🐞 修复流式 Markdown 未传
streamingParagraphAnimation时段落不应用淡入动画的问题;未传时默认开启,仅streamingParagraphAnimation: false关闭。#478
- 🐞 修复流式 Markdown 未传
- MarkdownEditor
- 🛠
streamingParagraphAnimation与 MarkdownRenderer 语义对齐(默认开启,显式false关闭)。#478
- 🛠
- Bubble
- 📖 文档与流式演示补充
markdownRenderConfig.streamingParagraphAnimation: false迁移示例(与旧版「未传即无段落动画」行为一致)。#478 - 🆕 新增
useOpenAIMessageBubbleDataHook 与mapOpenAIMessagesToMessageBubbleData,支持将 OpenAI Chat Completions 风格的messages转为MessageBubbleData[],便于接入BubbleList与 SSE 流式内容。 - 🆕 新增
useOpenClawMessageBubbleData、mapOpenClawMessagesToMessageBubbleData与normalizeOpenClawMessagesToOpenAI,支持 OpenClaw 会话 / transcript 风格(timestamp、toolResult等)。 - 🆕 新增
useOllamaMessageBubbleData、mapOllamaMessagesToMessageBubbleData与normalizeOllamaMessagesToOpenAI,支持 Ollama/api/chat的messages(images、tool_calls、thinking等)。
- 📖 文档与流式演示补充
v2.30.15
- MarkdownInputField
- 🐞 修复
data-is-unclosed属性与 CSS 选择器逻辑。#438
v2.30.14
- Bubble
- 🆕 将 markdown filemap 图片提取到气泡框外渲染。#430
- MarkdownInputField
- Workspace / Browser
- 🐞 修复定位和链接点击时触发页面跳转的问题。#431
- DonutChart
- 🐞 修复饼图/环形图图例颜色与扇区颜色不一致的问题。#432
- Plugins / CodeBlock
- 💄 代码块字号从 0.8em 调整为 1em,提升可读性。
- Parser
- 🆕 支持
::warning双冒号容器指令语法。#426
- 🆕 支持
v2.30.13
- FileMapView
- 🆕 图片/视频支持
onPreview拦截与itemRender自定义渲染,通过markdownRenderConfig.fileMapConfig透传。#423
- 🆕 图片/视频支持
- FileMapConfig
- 🆕 新增
normalizeFile回调,支持自定义文件数据格式转换。#424
- 🆕 新增
- MarkdownInputField
- 🆕 新增
onExceedMaxCount回调,文件数量超限时以 error 状态展示。#419
- 🆕 新增
- MarkdownRenderer
- 🐞 修复流式渲染时代码块抖动(销毁重建)问题。#422
- Chart / Histogram
- 🐞 修复科学记数法解析及支持预分箱数据。#421
- Chart / ScatterChart
- 🐞 坐标轴范围改为从数据自动计算,支持手动传入
xMin/xMax/yMin/yMax。#420
- 🐞 坐标轴范围改为从数据自动计算,支持手动传入
- 🐞 修复 E2E 全量失败(
usePrefersColor崩溃)及toBeInTheDocumentTS 类型报错。#417
v2.30.12
- MarkdownEditor / Plugins / CodeBlock
- 🆕 代码块工具栏新增「本地预览」按钮:
html与markdown语言的代码块可点击按钮在新标签页打开本地预览。HTML 代码直接以 Blob URL 渲染(允许执行 JavaScript),Markdown 代码先转换为 HTML 再打开。
- 🆕 代码块工具栏新增「本地预览」按钮:
- MarkdownEditor
- 🆕 新增
agentic-ui-filemap围栏代码块,渲染为文件列表。#416
- 🆕 新增
- History
- 🆕 分组项目少于 3 个时不展示分组标题,仍平铺显示条目。#411
- Bubble
- 🐞 修复文档站暗色主题和用户气泡样式可见性问题。#413
- 🐞 修复消息列表差一点点无法贴底的问题(
useAutoScroll)。#409 - 🐞 聊天加载状态增加顶部外边距。#410
v2.30.11
- MarkdownRenderer
- 🆕 支持
eleRender自定义元素渲染(markdown 渲染模式)。#405
- 🆕 支持
- MarkdownInputField
- 🐞 修复移动端输入时占位符不消失的兼容性问题。#401
- Workspace
- 🐞 提供 CSS 变量默认值,自动加载根样式。#403
- 🐞 修复表格流式渲染,等待首行完整后再开始渲染。#400
v2.30.10
- Mermaid
- 🐞 仅在代码块闭合时渲染 Mermaid 图表。#399
- 💄 调整表格默认列宽从 120px 至 40px。
v2.30.9
- MarkdownEditor
- 🛠 简化 directive 处理逻辑,移除未使用的 subpath 类型。
v2.30.8
- FileMapView
- MarkdownEditor
- 🐞
blockquote改用块级布局替代 flex。#396
- 🐞
- Parser
- 🆕 仅支持
:::容器指令语法,忽略行内:foo形式。#395
- 🆕 仅支持
v2.30.7
- 📖 新增 Bubble 流式 Markdown 演示页面。
v2.30.6
- MarkdownRenderer
- 🆕 增强流式渲染功能,支持末段淡入动画与字符队列配置。
v2.30.5
- MarkdownRenderer
- 🐞 优化流式消息的 key 稳定性与动画逻辑。
v2.30.4
- MarkdownRenderer
- 🆕 流式渲染仅对末尾 50 字做动画,新增
animateTailChars配置。
- 🆕 流式渲染仅对末尾 50 字做动画,新增
v2.30.3
- Chart
- 🆕 新增箱线图(BoxPlot)和直方图(Histogram)组件。
- 🆕 原子图表支持暗黑主题。#390
- 🆕 图表组件改为
forwardRef导出,支持引用传递。 - 🆕 Markdown 表格支持一键复制功能。
- MarkdownRenderer
- 🆕 优化流式场景下的块内容稳定性,避免重复卸载和挂载。
v2.30.2
- Chart
- 🆕 支持解析亿元/万元/元等中文货币字符串。#388
- MarkdownEditor
- 🐞 修复时间冒号在围栏代码块内被转义的问题。#383
- 💄
ToolBarItem仅在存在title时渲染 Tooltip,缓解findDOMNode弃用警告。
- SchemaEditor
- 🐞 恢复复制空内容提示与成功/失败反馈。
v2.30.1
- MarkdownEditor
- 🛠 重构可编辑表格实现,优化列宽计算、行列命令与单元格选区。#376
- 🆕 支持
agentic-ui-task与agentic-ui-toolusebar围栏代码块,分别渲染为 TaskList 与 ToolUseBar;旧标识agentic-ui-usertoolbar仍可读入并规范为新标识。#378 #380 - 💄
agentic-ui-task嵌入块默认variant为simple;需完整任务链样式时在 JSON 根级将variant设为default。 - 🆕 只读模式下
renderMode/renderType为markdown时走 MarkdownRenderer;markdownRenderConfig支持renderType别名。 - 🐞 修复 Chart 在 Slate 占位层下画布不可见的问题。#381
- MarkdownRenderer
- 🆕 流式场景下使用 Markdown Renderer 替代 Slate 渲染。#369
- 💄 流式文字淡入动画增加 blur 过渡。
- Bubble
- 🛠 思考中状态改为轻量 DOM 结构,仅保留 dots 动效。#377
- 🐞 修复
extraShowOnHover未传入时默认值为true的处理逻辑。
- BubbleMessageDisplay
- 🐞 修复
EXCEPTION状态下空、undefined或null内容的展示逻辑。#376
- 🐞 修复
- MarkdownInputField
- 🌐 优化文件上传相关文案的清晰度。
- 📖 移除
rfc-streaming-markdown-renderer.md文档。#370 - ✅ 补充 agentic-ui 嵌入与思考 DOM 演示快照,并更新相关演示快照。
- 🛠 修复测试与 Chart 错误日志。
v2.29.60
- MarkdownRenderer
- 🆕 流式场景下使用 Markdown Renderer 替代 Slate 渲染(预发布,正式发布于 v2.30.1)。#369
- 🛠 修复测试与 Chart 错误日志。
v2.29.58
- Bubble
- 💄
extra在 Popover 模式下移除 padding。#367
- 💄
- MarkdownPreview
- 🛠 优化代码格式与错误处理。
- FileUploadManager
- 🛠 优化错误处理逻辑。
- ✅ 补充 Markdown directive 与 parseTable 回归测试覆盖率。#366
v2.29.57
- MarkdownEditor
- 🐞 修复
textDirective渲染失败,支持语雀文档。#365
- 🐞 修复
- 🛠 优化
myRemark.stringify错误处理,提升健壮性。 - 🐞 修复 TypeScript 类型错误。
- 🐞 更新 card-selection-demo 快照,修复段落元素的结构和属性。
v2.29.56
- MarkdownEditor
- 🐞 为 remark-rehype 添加
textDirective/leafDirective处理器,修复 unknown node 错误。#364
- 🐞 为 remark-rehype 添加
- Bubble
- 🆕 新增
extraShowOnHover配置,默认关闭,开启后extra仅在 hover 时展示。 - 💄
extra改为 hover 时展示,不再常驻显示。#362
- 🆕 新增
- 🛠 移除所有 message 提示调用。#363
- ✅ 补充 PureBubbleList、AttachmentFileList、AttachmentButtonPopover 回归测试。#355 #356 #359
v2.29.55
- MarkdownInputField
- 🆕 发送按钮支持可发送状态。#361
- Blockquote
- 🆕 添加
data-testid属性以支持测试。 - 🐞 修复
className兼容性问题,将 attributes 转为React.HTMLAttributes。
- 🆕 添加
v2.29.54
- MarkdownEditor
- 🆕 支持 markdown-it-container 风格的
:::自定义容器语法(info/warning/success/error/tip 等)。#360
- 🆕 支持 markdown-it-container 风格的
- MarkdownInputField
- 🆕 Demo 增加
data-testid属性以支持 E2E 测试。
- 🆕 Demo 增加
v2.29.53
- MarkdownInputField
- 🆕 新增 E2E 测试 ID 支持并导出
testIds常量。 - 🆕 文件上传的图片支持 svg 和 webp 格式。#358
- 🆕 新增 E2E 测试 ID 支持并导出
- ChartStatistic
- 🆕 支持 Semantic 样式与
subtitle展示。
- 🆕 支持 Semantic 样式与
- ToolUseBarThink
- 🌐 增加国际化支持,容器添加
flex-direction: column。#357
- 🌐 增加国际化支持,容器添加
- ✅ 补充 RealtimeFollow、FileMapView、AttachmentFileIcon、BeforeToolContainer、Enlargement 等测试覆盖率。
v2.29.31
- MarkdownEditor
- 🐞 修复
list-item下Node.leaf报错,改用Editor.leaf解析叶子节点。 - 🛠 优化
matchInputToNode功能与键盘处理逻辑。 - 🛠 优化
classname规范与使用。 #315 [@陈帅]
- 🐞 修复
✅ 增强 MarkdownEditor 和 Bubble 组件的测试覆盖率。 #307 [@222]
v2.29.30
-
MarkdownEditor
- 🛠 使用
React.memo优化SlateMarkdownEditor渲染性能。 - 🛠 统一
classname前缀为agentic-md-editor-*。 #311 [@陈帅]
- 🛠 使用
-
LinkCard
- 🛠 按 BEM 规范整理
class命名。 #312 [@陈帅]
- 🛠 按 BEM 规范整理
-
Chart
- 🛠 优化 ProForm 配置表单类名,使用
agentic-chart-config-form前缀并添加 BEM 结构。 #313 [@陈帅]
- 🛠 优化 ProForm 配置表单类名,使用
-
ChartRender
- 🛠 优化表格与描述列表的 BEM 类名。 #314 [@陈帅]
-
AceEditor
- 🛠 移除
effect中的未使用依赖。
- 🛠 移除
v2.29.29
v2.29.28
-
Workspace
- 🆕 支持视频文件预览播放。 #308 [@陈帅]
-
SchemaEditorBridgeManager
- 🆕 增加
getContentById方法以支持内容获取。 #306 [@222]
- 🆕 增加
📚 演示数据与内容更新。 #305 [@陈帅]
v2.29.27
- Bubble
- 🛠 重构 locale 处理逻辑,优化国际化支持。 (e1927ec6)
📚 补充 changelog v2.29.8-v2.29.26 版本更新记录。 #303 [@陈帅]
v2.29.26
- Bubble
- 🛠 重构 Bubble 组件,集成
useMergedLocale以实现统一的国际化处理。 (6647b12b)
- 🛠 重构 Bubble 组件,集成
v2.29.25
-
MarkdownInputField
- 🌐 上传状态国际化支持,优化 "上传中..." 和 "上传失败" 文本的多语言显示。 #301 [@陈帅]
-
I18n
- 🌐 国际化完善,修复
cnLabels中的翻译错误,新增 17 个缺失的 i18n 键,并更新 9 个组件以使用国际化。 #299 [@陈帅]
- 🌐 国际化完善,修复
📚 API 文档更新,完善设计问题说明。 #298 [@陈帅]
v2.29.24
-
Bubble
- 🐞 修复样式类名前缀,在
useMessagesContentStyle中为类名添加点号以确保正确应用样式。 (2f496852)
- 🐞 修复样式类名前缀,在
-
MarkdownPreview
- 🛠 简化渲染逻辑,根据
placement和额外内容优化 Popover 行为。 (d9cf641c)
- 🛠 简化渲染逻辑,根据
-
Workspace
- 🛠 更新 demo 文件引用,移除过时的 demo。 (fc4ffb27)
✅ 测试优化,更新多个测试文件的类型断言和 mock 实现,提升类型安全性和一致性。 (4d5634b1)
v2.29.23
-
MarkdownEditor
- 🌐 编辑器操作栏标题支持国际化,标题、小标题、正文等支持多语言。 #296 [@shuyan]
-
MarkdownEditor
- 🐞 修复 Markdown 内容为空时的初始化问题,确保
initValue为空或undefined时也能正常渲染。 #294 [@陈帅]
- 🐞 修复 Markdown 内容为空时的初始化问题,确保
v2.29.22
- Bubble
- 🛠 重构类名命名以改进样式封装,优化 BubbleMessageDisplay 的样式隔离。 (e734568c)
v2.29.21
- Bubble
- 🆕 添加
wrapSSR支持,改进 BubbleMessageDisplay 的渲染能力。 (8dd08a01)
- 🆕 添加
v2.29.20
- Bubble
✅ MarkdownEditor: 添加只读模式下的脚注渲染测试用例。 (2ca9faee)
v2.29.19
-
MarkdownEditor
- 🐞 默认禁用
setMDContent中的 RAF 优化,防止浏览器原生弹窗阻塞主线程时 Markdown 渲染停止。 #293 [@陈帅]
- 🐞 默认禁用
-
ChatLayout
- 💄 优化底部动画背景铺满整个容器。 #292 [@不见月]
v2.29.18
- MarkdownEditor
- 🐞 修复粘贴处理逻辑,更新
onPaste处理器返回布尔值并增强粘贴处理。 (af8cff63)
- 🐞 修复粘贴处理逻辑,更新
v2.29.17
-
Workspace
- 🆕 支持卡片自定义渲染。 #291 [@shuyan]
-
MarkdownEditor
✅ 提升测试用例覆盖率。 #287 [@222]
v2.29.16
- Workspace
📚 设计指南完善,添加 Figma 设计系统指南。 #285 [@陈帅]
📚 添加 AGENTS.md 文件,完善项目文档。 #283 [@陈帅]
📚 添加 Markdown 输入快捷键文档。 #282 [@陈帅]
📚 完善组件库规范说明。 #281 [@陈帅]
📚 为按钮文档添加 atomId 说明。 #280 [@遇见同学]
v2.29.15
📦 添加 guidelines 目录到 package 文件列表。 (895d20fc)
v2.29.14
🆕 Sofa 图标页面上线。 #278 [@陈帅]
🛠 ParseMd 代码结构优化。 #277 [@陈帅]
v2.29.12
-
MarkdownInputField
- 💄 动效优化,将光条调整到左侧,优化视线引导效果。 #276 [@不见月]
-
ChatFlowContainer
- 🛠 更新滚动元素的动画持续时间。 #275 [@不见月]
⚡️ Elements 样式性能优化。 #274 [@陈帅]
v2.29.9
- TagPopup
- 🐞 修复连续选择下拉选项时抛出 'path' is null 错误。 #269 [@222]
v2.29.7
🆕 FooterBackgroundLottie: 添加 Lottie 动画配置文件。 (a77e7f6a)
v2.29.4
-
Workspace
-
MarkdownInputField
-
ToolUseBar
-
ChatLayout
v2.29.3
-
MarkdownInputField
- 🆕 为输入框添加流光边框动画效果。 [@qixian]
- 🆕 新增组件,支持占位符和发送功能。 [@qixian]
- 🆕 支持通过
sendButtonProps自定义发送按钮颜色。 #241 [@Chiaki枫烨] - 💄 优化禁用和加载状态样式。 [@qixian]
- 💄 优化工具渲染支持及圆角样式。 [@qixian]
-
Bubble
-
MarkdownEditor
- 💄 内容默认使用
--font-text-paragraph-lg变量的字号。 #249 [@不见月] - 🆕 新增
disableHtmlPreview和viewModeLabels属性。 [@qixian]
- 💄 内容默认使用
🆕 AppWrapper: 新增 AppWrapper 组件以利用 useAppData 并在挂载时记录应用数据。 [@qixian]
🆕 BubbleList: 新增懒加载支持以提升性能。 [@qixian]
🆕 CodeRenderer: 支持 HTML 代码中的 JavaScript 检测。 [@qixian]
🆕 ChatLayout: 切换对话记录时自动滚动到底部。 #247 [@不见月]
🆕 QuickLink: 新增视口内链接预加载功能。 [@qixian]
🐞 SendButton: 修复 fillOpacity 动画警告。 #236 [@Chiaki枫烨]
💄 ToolUseBar: 样式优化。 #235 [@不见月]
💄 Workspace: 优化内容和头部边距。 #238 [@shuyan]
v2.29.1
🐞 EditorStore: 优化节点替换逻辑,考虑 finished 状态。 [@陈帅]
🐞 TagPopup: 修复节点路径获取错误及依赖检查。 [@qixian]
🆕 ChatLayout: 新增多个对话流操作按钮动画。 #234 [@不见月]
v2.29.0
🛠 Bubble: 优化消息内容样式和结构。 [@qixian]
🛠 MarkdownEditor: 优化样式处理、节点对比逻辑及拖拽功能。 [@qixian]
🆕 Dumirc: 增加 Google Tag Manager 脚本。 [@qixian]
v2.28.11
🆕 AI Label: 新增 AILabel 组件。 #229 [@不见月]
🆕 Loading: 增强 Loading 组件。 #230 [@不见月]
💄 RealtimeFollow: 修改实时跟随图标大小和边距。 #232 [@ranranup]
v2.28.10
⚡️ MarkdownEditor: 优化节点对比和解析逻辑,提升渲染性能。 [@qixian]
🛠 MarkdownToSlateParser: 优化 HTML 注释处理。 [@qixian]
💄 Workspace: 优化下载按钮展示逻辑。 #228 [@ranranup]
💄 Reset CSS: 移除废弃颜色变量。 [@qixian]
⚡️ useIntersectionOnce: 使用 useLayoutEffect 替代 useEffect 以优化检测。 [@qixian]
v2.28.9
🆕 Bubble: 支持自定义用户和 AI 气泡属性。 [@qixian]
🐞 ChartRender: 简化运行时加载条件。 [@qixian]
🛠 MarkdownInputField: 移除 enlargeable 属性并重构组件结构。 [@qixian]
🐞 QuickActions: 修复 resize 事件中的异常问题。 [@qixian]
🆕 Mermaid: 新增流程图支持。 [@qixian]
v2.28.8
🆕 Lottie: 新增多个机器人动画。 #225 [@不见月]
🐞 SchemaEditorBridgeManager: 修复严格模式下 stopBridge 报错问题。 #226 [@hei-f]
🐞 Mermaid: 增强错误处理和渲染逻辑。 [@qixian]
v2.28.7
🐞 Bubble: 修复内容处理逻辑,稳定 originData 引用。 #220 [@hei-f]
💄 ChatLayout: 修改 footer 样式为 minHeight。 [@qixian]
🆕 Workspace: 增加 Browser 组件支持。 #222 [@ranranup]
v2.28.6
🐞 ThinkBlock: 更新默认展开状态。 [@qixian]
v2.28.5
- ThinkBlock
- 🛠 优化
useEffect依赖。 [@qixian] - 🛠 优化展开状态处理。 [@qixian]
- 🛠 优化
v2.28.4
🛠 CodeRenderer: 增强属性处理。 [@qixian]
v2.28.3
🛠 ThinkBlock: 增加 Context 支持。 [@qixian]
v2.28.2
🆕 MarkdownEditor: 新增 CommentLeaf 和 FncLeaf 组件。 [@qixian]
v2.28.1
- ThinkBlock
- 🛠 优化状态管理。 [@qixian]
🛠 SimpleTable: 清理组件并优化图表动画时长。 [@qixian]
v2.28.0
🆕 Utils: 增加调试信息记录功能。 [@qixian]
v2.27.10
🐞 Bubble: 移除 AIBubble 中的 Loader 组件。 [@qixian]
💄 ThinkBlock: 调整 marginTop 样式为 8px。 [@qixian]
v2.27.9
🐞 ThinkBlock: 修复消息上下文获取逻辑。 [@qixian]
v2.27.8
🐞 Bubble: 修复初始内容获取逻辑。 [@qixian]
v2.27.7
🆕 Utils: 添加 debugInfo 工具函数。 [@qixian]
🆕 MediaErrorLink: 新增组件处理媒体加载失败。 [@陈帅]
v2.27.6
🐞 Bubble: 调整内容获取顺序。 [@qixian]
