admin
|
7551716e13
|
feat: 添加模型上下文管理并统一主题组件与用量交互
|
2026-09-05 21:58:37 +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 |
|
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 |
|
admin
|
8c644d0aae
|
feat(frontend): 接入真实媒体工作流与模型配置卡片
|
2026-09-04 12:39:50 +08:00 |
|
admin
|
c04f4c1989
|
fix(frontend): 移除运行时演示数据并接入真实后端状态
|
2026-09-04 07:47:05 +08:00 |
|
admin
|
1fe75e3fd2
|
feat(provider): 完成阶段E协议适配、国内预设与模型路由
|
2026-09-04 06:19:32 +08:00 |
|
admin
|
7d5f4023a9
|
feat(mcp): complete remote transports and configuration workflow
|
2026-09-03 15:25:41 +08:00 |
|
admin
|
2dc984401d
|
feat(mcp): add standalone server registry
Implement C.1 stdio MCP server CRUD, encrypted environment secrets, command digest approval, connection tests, lifecycle recovery, and dynamic tool registration. Add the standalone frontend configuration center, contracts, regression tests, and development documentation.
|
2026-09-03 14:49:49 +08:00 |
|
admin
|
d39ae727c1
|
fix(extension): 收紧插件命令运行时契约
|
2026-09-02 20:03:39 +08:00 |
|
admin
|
6a08ad898e
|
feat(extension): 实现插件命令与设置贡献
|
2026-09-02 12:52:40 +08:00 |
|
admin
|
fc4b7b9495
|
feat(extension): 接入 stdio MCP Plugin Host
|
2026-09-01 11:32:05 +08:00 |
|
admin
|
3cb197aafe
|
feat(agent): 持久化Trace并支持SSE恢复
|
2026-09-01 00:39:37 +08:00 |
|
admin
|
8da75d4420
|
feat(workspace): 接入真实Vault数据链路
|
2026-08-31 21:38:56 +08:00 |
|
admin
|
3595021d80
|
feat(frontend): 添加 GitHub 代码块主题设置
|
2026-08-30 20:41:42 +08:00 |
|
admin
|
31e29f25bb
|
fix(frontend): 提示模型凭据缺失与鉴权失败
|
2026-08-30 10:48:25 +08:00 |
|
admin
|
0f6938c6a2
|
feat(frontend): 支持提供商预设与自动获取模型
|
2026-08-30 10:44:04 +08:00 |
|
admin
|
5aa0026bb9
|
fix(frontend): 完善Markdown与Chat事件渲染
|
2026-08-29 23:59:01 +08:00 |
|
admin
|
3239bab696
|
feat(frontend): 完成Skill与Plugin管理页面
|
2026-08-29 22:49:44 +08:00 |
|
admin
|
610fc77b0f
|
fix(frontend): 修复合并审阅发现的构建与契约问题
恢复 Vue TypeScript 生产构建,补齐可运行页面壳子,并修复文件树与 SSE 状态问题。
按 FastAPI Wire Contract 统一 Service DTO 映射,同时补充前端开发说明和问题修复复盘。
|
2026-08-29 12:10:33 +08:00 |
|
saint
|
f9efc4f4a2
|
feat(frontend): 搭建桌面端基础界面与 Workspace
- App Shell 壳层:主导航、次导航、Title Bar、状态栏
- Vault 入口页:最近 Vault、打开/创建 Vault、AI Core 状态
- Workspace 与文件树:浏览、打开、创建笔记/文件夹
- Design Token:浅色/深色主题 CSS Variables
- Contracts / Service / Store / Router 基础架构
- 统一 ApiClient 与 SseClient,对接后端 API 契约
|
2026-08-29 10:36:16 +08:00 |
|