Commit Graph
339 Commits
Author SHA1 Message Date
admin af2556d29e fix(ui): unify dialogs and complete theme component coverage 2026-09-05 23:56:02 +08:00
yxxandClaude Code 124024a547 fix(export): 为函数图像与导出产物增加资源上限
针对 PR 审阅「函数数量没有限制,可能生成数百 MB 的 SVG」:

- parser: 单块 function-plot 表达式上限 _MAX_EXPRESSIONS=16,超限整块回退
- html: 单篇文档函数图像上限 _MAX_FUNCTION_PLOTS=16,超出回退源码占位
- service: 输入源 MAX_MARKDOWN_CHARS、产物 MAX_EXPORT_BYTES,超限分别
  拒绝创建或标记 failed(EXPORT_OUTPUT_TOO_LARGE)
- 补充 4 条回归测试与文档说明

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-05 23:31:53 +08:00
admin 6107b7ff1b fix(editor): handle paired inline code input and complete markdown rendering 2026-09-05 23:14:19 +08:00
yxxandClaude Code b87f94551b fix(plot): 修复复审问题(2 P2 + 1 P3)
- P2 复杂表达式绕过异常回退:解析与渲染共同纳入局部异常回退;
  AST 深度/节点数上限拦截 RecursionError
- P2 极端有限范围生成 nan SVG:校验坐标跨度有限且 >0,回退安全范围;
  _polyline 拒绝非有限像素坐标
- P3 更新接口契约文档:function-plot 静态 SVG 已实现

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-05 22:49:01 +08:00
admin a1ab1024f0 feat: 添加全局人设与头像设置并优化对话及弹窗交互 2026-09-05 22:26:12 +08:00
admin 7551716e13 feat: 添加模型上下文管理并统一主题组件与用量交互 2026-09-05 21:58:37 +08:00
yxxandClaude Code 50d7fb4c7d Merge origin/main into feat/export-service
同步 main(054f704),解决 contracts.py / main.py / README.md / 技术栈说明 的合并冲突。
- contracts.py:保留 pydantic 多行导入并新增 RequestOverride
- main.py:合并 lifespan(导出孤儿清理 + 转写/本地模型生命周期)
- README.md / 技术栈说明:文档取 main 最新版本

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-05 21:44:20 +08:00
yxxandClaude Code 04f36524b1 fix(plot): 修复函数图像审阅问题(1 P1 + 2 P2)
- P1 浮点刻度死循环:_ticks 改为有上限的整数索引推进并校验步长推进
- P2 求值异常:白名单函数校验参数数量;负数底非整数指数按断点处理;采样容错复数
- P2 无效纵轴范围:退化/非有限 range 丢弃并自动采样重算;渲染异常回退占位不阻断导出
- 补 6 个回归测试

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-05 21:14:50 +08:00
admin 031ab135d2 fix(frontend): 保留 Mermaid 大图文字并完善图表与卡片交互 2026-09-05 20:58:33 +08:00
admin 8d626ee16b feat: 完善模型用量趋势与全局手账卡片并补齐阶段验收 2026-09-05 20:40:36 +08:00
Kronecker 054f704c8b Merge pull request 'feat: 完善主题导入、手账工作区与笔记元数据管理' (#27) from feat/theme-import-and-paper-workspace into main
Reviewed-on: #27
2026-09-05 19:42:00 +08:00
admin 02dd585a4e fix: 修复笔记 YAML 标签保存与索引重建一致性 2026-09-05 19:40:14 +08:00
admin 8692910508 fix(frontend): 修复纸页刷新宽度并完善侧栏和图表主题 2026-09-05 19:23:21 +08:00
admin a63f6c57e0 feat(frontend): 完善工作区导航与笔记属性并适配手帐主题 2026-09-05 19:11:45 +08:00
admin d5b1050a86 feat(frontend): 完善主题导入与手帐工作区并修复 Mermaid 预览 2026-09-05 18:42:14 +08:00
Kronecker 311ea4a8ac Merge pull request 'Feat/frontend phase2 themes trace mermaid' (#26) from feat/frontend-phase2-themes-trace-mermaid into main
Reviewed-on: #26
2026-09-05 17:47:08 +08:00
admin 6d0c1400ce fix(frontend): 保留密钥编辑并隔离社区主题预览 2026-09-05 17:46:12 +08:00
admin 0f08cd051b fix(frontend): 同步 main 并修复 phase2 关闭审阅意见 2026-09-05 17:32:34 +08:00
Kronecker 352557d94a Merge pull request 'fix(editor): 接入完整 Shiki 语言支持与 GitHub 双主题,修复语言菜单并添加图标' (#25) from fix/editor-shiki-language-picker into main
Reviewed-on: #25
2026-09-05 17:19:14 +08:00
admin 08fd62e7c5 fix(editor): 支持完整 Shiki 语言并修复语言标识与图标展示 2026-09-05 17:16:09 +08:00
admin 41bf2c53d4 fix(editor): 保留完整代码语言列表与兼容高亮 2026-09-05 16:58:39 +08:00
admin ed37099ba1 fix(editor): 修复语言菜单裁剪并接入 GitHub Shiki 配色 2026-09-05 16:52:18 +08:00
Kronecker 1c7b5b4e84 Merge pull request 'Feat(frontend)完善前端中英文支持与表单样式,持久化聊天记录并修复会话并发问题' (#24) from feat/frontend-i18n-spellcheck into main
Reviewed-on: #24
2026-09-05 15:27:01 +08:00
admin 32411ce6fe fix(chat): 删除会话期间阻止发送和重复删除 2026-09-05 15:12:07 +08:00
admin cce96588e2 fix(chat): 防止会话切换串写和删除后复活 2026-09-05 10:31:42 +08:00
admin feb8cc651f fix(chat): 持久化会话与消息 2026-09-05 10:12:09 +08:00
saint f273fef235 fix(frontend): 修复 PR #18 审阅问题并补充回归测试
审阅意见逐项修复:

1. 主题包安装丢弃用户 CSS
   inspectThemePackage 之前只解析 YAML 清单,ThemesView 安装时另外
   生成一套硬编码调色板,用户提供的 CSS 被整份丢掉。现在定义单文件
   格式(YAML 清单 + `---` + CSS),parseThemePackage 取出真实 CSS
   并原样安装;CSS 安全校验提前到预览阶段;按内容识别并拒绝 ZIP。

2. 主题恢复竞态导致页面无 data-theme
   initTheme 之前没有 await loadCustomThemes,自定义主题还没进
   allThemes,applyTheme 找不到主题直接 return。现在先同步落一个
   内置主题兜底(不写 localStorage,避免冲掉用户存的自定义主题 id),
   加载完成后再切到真正保存的那个;主题失效或列表加载失败时回退并
   通过 themeLoadWarning 告知用户,不再静默。

3. Trace 建树依赖事件相邻顺序
   后端真实顺序是 ModelCallStarted → ModelCallCompleted → Usage →
   ToolCall/ToolResult,工具在模型调用完成后才执行且并发跑,相邻性
   不可用。改为按 model_call_id / parent_model_call_id / tool_call_id
   关联;ToolResult 回填 ToolCall 的状态与耗时,结束后不再显示
   running;SSE 断点恢复的孤立事件退回顶层而不是丢弃。

4. Trace 叶子节点无法查看数据
   行的 click 是 `children.length && toggleExpand`,而详情 v-if 又
   要求 `children.length === 0`,两个条件互斥。拆成 expandedNodes
   与 detailNodes 两个状态集合;展开箭头改为独立按钮,行支持键盘
   与 aria-expanded;引用节点补「定位」按钮。同时修正 Usage 卡片
   字段(后端只发累计 token_usage)。

5. 引用定位逻辑三处重复且各自有缺陷
   抽出 navigateToCitation(依赖注入,可独立测试)+ useCitationNavigation。
   调用顺序固化:必须先 await loadFile 再 highlightBlock,否则
   editor store 的 loadFile 末尾会把高亮清掉;loadFile 失败时不跳转。
   AgentView / ChatView / AppShell 统一走这一处。

6. 插件命令 UI 重复实现
   抽出 PluginCommandPanel 复用 PluginMcpPanel 的 schema 驱动表单,
   删除 PluginsView 里的劣化副本。effect 现在真的执行 navigate /
   refresh(此前只拼成文本显示);补上必填校验与布尔字段初始值,
   修正「显示否但不提交该键」的不一致。

补充回归测试 64 项(相关 spec 由 25 项增至 89 项),并对 2、3、4 三项
缺陷做了变异验证:把修复回退成原写法后对应测试确实失败。
涉及 traceService / theme store / themePackageService / pluginCommandForm /
useCitationNavigation / TraceTimeline,其中后三个为新增文件。

vue-tsc -b、vitest(32 文件 182 项)、vite build 全部通过。
2026-09-05 10:04:17 +08:00
admin d15ceafbe0 fix(frontend): 统一原生表单控件样式 2026-09-05 09:57:33 +08:00
admin 311f953855 docs: 更正会话持久化状态 2026-09-05 09:48:53 +08:00
admin 89e475c0c2 fix(frontend): 补齐英文失败路径 2026-09-05 09:48:27 +08:00
admin ef961d322b feat(frontend): 实现中英文切换与拼写检查 2026-09-05 09:38:23 +08:00
admin a35b577d66 docs: 恢复项目暂命名与开发说明 2026-09-05 02:30:19 +08:00
admin c2e3a17c05 docs: 同步项目状态与本地模型技术栈 2026-09-05 02:23:54 +08:00
Kronecker d67199faad Merge pull request 'feat(multimodal): 完成阶段 F 运行管理与收尾验收' (#22) from feat/multimodal-finalization-review into main
Reviewed-on: #22
2026-09-05 02:13:20 +08:00
Kronecker 1d26da23ea Merge pull request 'fix(repo): 恢复阶段 F 收尾前的 main 文件树' (#21) from fix/restore-main-review-flow into main
Reviewed-on: #21
2026-09-05 02:12:13 +08:00
admin cb1c6dfcf5 fix(multimodal): 冻结推理环境并隔离迟到导入错误 2026-09-05 02:09:15 +08:00
admin 6ee6cd7d73 feat(multimodal): 完成阶段F运行管理与收尾验收 2026-09-05 02:02:45 +08:00
admin 510936431a Revert "feat(multimodal): 补齐阶段F运行管理与收尾验收"
This reverts commit 64f63ff1bd.
2026-09-05 02:02:26 +08:00
admin f697364aaf Revert "fix(settings): 补齐CUDA运行组件下载与安装入口"
This reverts commit c912409343.
2026-09-05 02:02:26 +08:00
admin c912409343 fix(settings): 补齐CUDA运行组件下载与安装入口 2026-09-05 01:25:43 +08:00
admin 64f63ff1bd feat(multimodal): 补齐阶段F运行管理与收尾验收 2026-09-05 01:06:29 +08:00
yxxandClaude Code f49d1245a1 feat(export): 函数图像静态渲染(function-plot → SVG)
- 新增 app/plot 包:白名单表达式解析(ast 无 eval)+ FunctionPlot 模型 + 静态 SVG 渲染
- HtmlExporter 的 function_plot 节点解析并内嵌 SVG,解析失败回退占位并转诊断
- 新增 test_plot.py(13 个测试)覆盖表达式安全、指令解析、SVG 输出与导出链路集成

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-04 22:41:35 +08:00
yxxandClaude Code 64af1f5165 fix(export): 修复 PR #17 审阅问题(1 P1 + 5 P2)
- P1 链接/图片 URL 协议白名单校验,危险协议降级为纯文本 + warning
- P2 图片 AST 字段映射(src=attrs.url,alt 取 children 文本)
- P2 原始 HTML 块转义保留,正文不丢失 + warning
- P2 过期/淘汰/重启清理导出产物文件
- P2 解析与渲染移入 asyncio.to_thread,运行中取消生效
- P2 function-plot 围栏别名补全
- 回归测试覆盖全部修复

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-04 22:24:16 +08:00
saint 639f38c1fc feat(frontend): 第二阶段前端 Agent Trace / 主题包 / Mermaid 能力
实现第二阶段分工表中吉海燕负责的 P0/P1 前端能力。

- Agent Trace 可视化:新增 traceService 将扁平事件流折叠为树
  (ModelCallStarted 区间内的工具/文本事件挂为子节点,运行级事件保持顶层),
  TraceTimeline 支持时间线/树两种视图、耗时统计与引用跳转。
- 主题包:新增 themePackageService(Web Mock Adapter),
  校验 manifest 必填字段与 theme_id 格式,拒绝远程 css_entry;
  CSS 侧拒绝 @import / expression() / javascript:,
  未通过校验的 CSS 不会注入页面。内置主题走 data-theme=light|dark|sepia,
  自定义主题走 data-theme={theme_id} + 独立 style 节点。
  ThemesView 增加“已安装/社区主题”两个标签页与导入、预览、卸载流程。
- Mermaid:新增 mermaidService(securityLevel: strict)与 MermaidBlock,
  markdown 渲染管线识别 mermaid 代码块;MarkdownContent 随亮/暗主题重渲染
  (SVG 配色在渲染时烘焙,无法靠 CSS 变量事后调整)。
- 插件贡献 UI:PluginsView 增加“概览/命令/设置”标签页,
  PluginSettingsPanel 按 Schema 动态生成表单;
  secret 字段只写不读,仅展示 configured 状态,不进 store 也不回显。

与 main 上队友成果的整合(rebase 时处理):
- 命令面板保留队友基于真实后端的实现(when 条件求值、效果白名单、
  参数命令跳详情页),仅叠加我新增的主题/任务两条内置命令。
- 删除我先前的 pluginContributionService(mock 版),
  统一改用队友已落地的 pluginService 真实接口;
  相应修正表单以匹配真实契约(options 为 string[]、min/max 可空、无 placeholder)。
- 移除 contracts 中与队友重复的 PluginHostStatus / PluginCommand /
  PluginSettingField / PluginSettingsSchema 声明,以队友版本为准。
- PluginsView 概览页保留队友的 PluginMcpPanel,并补回被我改写时丢掉的空状态。

顺带修复:
- 开启 skipLibCheck —— mermaid 11.17 把 type-fest 泄漏进了发布产物的
  .d.ts,但只声明为自身 devDependency,vue-tsc -b 会因此报错。

验证:pnpm test 26 文件 / 113 测试通过(新增 traceService、
themePackageService 两个测试文件共 22 项);pnpm build 通过。
2026-09-04 21:36:47 +08:00
Kronecker 6bdba2c7f9 Merge pull request 'Feat/multimodal pipeline' (#19) from feat/multimodal-pipeline into main
Reviewed-on: #19
2026-09-04 20:17:02 +08:00
admin cc617ed23e fix(knowledge): 区分普通分割线与元数据头部 2026-09-04 20:10:45 +08:00
admin 233e156061 fix(knowledge): 统一frontmatter边界并拒绝未闭合策略 2026-09-04 20:04:45 +08:00
admin cec89494f9 fix(storage): 严格解析本地策略并原子执行数据库迁移 2026-09-04 19:57:26 +08:00
admin 78dd774bce fix(retrieval): 按索引策略重建并融合跨空间检索 2026-09-04 19:48:41 +08:00
admin 468eb56daa fix(embedding): 传递本地索引限制并冻结推理配置 2026-09-04 19:33:57 +08:00