945 Commits
Author SHA1 Message Date
linshen 0f526630a2 refactor(ui): extract temporary variables panel
Reuse a shared temp-variable editor in test panels and show it above image test variants for parity with Pro.
2026-01-27 21:39:56 +08:00
linshen 84b1751cc7 refactor(ui): centralize VariableAwareInput wiring
Introduce useVariableAwareInputBridge to reuse variable extraction/missing-variable handlers across workspaces.
2026-01-27 21:26:08 +08:00
linshen 91e81772c2 feat(ui): harden variable parsing and validation
Support {{ foo }} placeholders, block unescaped mustache tags, and treat empty values as missing.
2026-01-27 21:11:43 +08:00
linshen 11dff36575 feat(ui): support variables in image mode
Enable variable-aware editing and ensure image generation replaces placeholders, blocking runs when required variables are missing or empty.
2026-01-27 21:03:17 +08:00
linshen 67a16ed036 feat(ui): dedupe and gc image storage by session refs 2026-01-25 22:41:04 +08:00
linshen 7ebe66df70 feat(ui): add multi-column image workspace test variants 2026-01-25 22:14:55 +08:00
linshen c6ba853f5d feat(ui): add multi-column pro-multi test variants
Introduce a split-view pro-multi workspace with a multi-column variant tester and persist layout/variant settings across sessions.
2026-01-24 21:55:57 +08:00
linshen 4f5af3b2e2 feat(ui): add multi-column pro-variable test variants 2026-01-24 18:00:21 +08:00
linshen a35d0b7eab feat(ui): add multi-column basic-system test variants
Align basic-system testing with basic-user by enabling 2–4 side-by-side variant runs with persisted per-column settings/results and A/B evaluation entry points.
2026-01-24 15:34:39 +08:00
linshen ce3af34d9b feat(ui): add multi-column basic-user test variants
Enable 2-4 column comparisons with per-variant version/model selection, persisted layout/results, and evaluation actions aligned to output.
2026-01-24 12:44:33 +08:00
linshen a539ef9023 chore(cursor): remove legacy workflows 2026-01-23 11:47:04 +08:00
linshen ba3c4b7c88 fix(ui): persist manual prompt edits to history
Ensure Save Changes creates a new version across basic and image workspaces.
2026-01-22 21:47:20 +08:00
linshen 4575ee1712 fix(test): build core before ui gate tests
Ensure @prompt-optimizer/core dist exists so Vitest/Vite can resolve workspace imports in a fresh CI checkout.
2026-01-21 23:57:19 +08:00
linshen 02caa81584 fix(i18n): add missing retry label
Add common.retry to locale bundles to avoid runtime warnings during evaluation error states.
2026-01-21 23:52:04 +08:00
linshen d3a44e44b5 ci: limit e2e to gate specs
Avoid running the full E2E suite on every PR/push. Keep fast unit gates and run only test:gate:e2e in VCR replay mode.
2026-01-21 23:46:12 +08:00
linshen e39495bfb9 fix(ci): use existing e2e replay script
Replace the missing pnpm test:replay step with pnpm test:e2e:replay and ensure gate runs with E2E_VCR_MODE=replay.
2026-01-21 23:41:37 +08:00
linshen 50ba9ab011 chore: bump version to 2.5.0
Sync version across root package, desktop app, and browser extension manifest.
2026-01-21 23:29:08 +08:00
linshen e326ad1747 chore: remove temporary root files
Drop an outdated screenshot and a stray review note from the repository root to keep the workspace clean.
2026-01-21 23:17:42 +08:00
linshen 0617868cfd ci: gate docker and release on tests
Make docker builds and desktop releases depend on the shared test workflow to avoid duplicate runs and ensure only tested revisions ship.
2026-01-21 23:05:11 +08:00
linshen e3f428013e feat(ui): warn about CORS-restricted providers
Expose optional corsRestricted provider metadata and show tags/dialogs on connection tests in web. Also hide the warning tag in desktop where IPC bypasses CORS.
2026-01-21 22:47:56 +08:00
linshen 3115540cac fix(desktop): preserve structured IPC errors for i18n
Keep error code/params across contextBridge so renderer can translate errors reliably; harden UI error formatting and update vue-i18n test mocks.
2026-01-21 21:23:17 +08:00
linshen 03a62630bd fix(i18n): align core errors to structured codes
- Normalize IPC/plain-object errors via toErrorWithCode
- Align image adapter + storage config errors to i18n codes
- Add missing UI locale keys and update tests
2026-01-20 22:23:00 +08:00
linshen 96a32ad46d feat(ui): persist evaluation results per workspace
Evaluation is now scoped to each workspace and stored in session snapshots to avoid cross-mode state leaks and restore after reload. Pro/multi clears evaluation results when the selected message changes.
2026-01-20 21:56:00 +08:00
linshen dd1589186c fix(ui): fail fast when image storage is unavailable for sessions 2026-01-20 21:17:00 +08:00
linshen 320957c385 feat(data): add desktop storage info to data manager 2026-01-20 20:43:00 +08:00
linshen 934601440a fix(ui): improve model key conflict errors 2026-01-20 20:08:00 +08:00
linshen 6d85f18c6a fix(ui): apply evaluation patch to image session 2026-01-19 22:24:24 +08:00
linshen c8f5a2dec8 fix(core): format dashscope image2image input as data url 2026-01-19 22:04:06 +08:00
linshen 40e1005d81 test(e2e): stabilize route bootstrap and output polling
- Reduce output polling flakes\n- Stabilize route bootstrap and smoke flows\n- Improve i18n label compatibility (incl. zh-TW)
2026-01-18 22:56:00 +08:00
linshen 8205df2dc1 fix(ui): harden workspaces, history restore, and image mode
- Harden workspace/session restore and initialization\n- Improve image mode behavior and storage handling\n- Update UI i18n and integration tests
2026-01-18 20:28:00 +08:00
linshen ca877ea794 build(ui): add vue-tsc typecheck
- Add vue-tsc typecheck to UI build pipeline
2026-01-18 16:43:00 +08:00
linshen 8c17e9c9e7 fix(desktop): align IPC for image errors and tools
- Align desktop IPC with structured image errors\n- Support LLM tools streaming over IPC
2026-01-18 13:17:00 +08:00
linshen 007a37e26a feat(core): structured image errors and adapters
- Add structured image error codes and types\n- Update image adapters and service surface for explicit requests\n- Update core tests and vitest configuration
2026-01-18 10:08:00 +08:00
linshen 7599020638 fix(i18n): translate structured core errors in UI
Align core errors to emit code+params and have UI render messages via i18n keys with interpolation, plus add tests for locale-specific output.
2026-01-17 12:56:55 +08:00
Prashant JainandClaude Opus 4.5 3a100d5314 feat(i18n): internationalize core error messages with error codes (#238)
- Add centralized error codes in packages/core/src/constants/error-codes.ts
- Refactor error classes to use error codes instead of hardcoded messages
- Add bilingual comments (English/Chinese) for cross-team collaboration
- Add error translations to en-US, zh-CN, and zh-TW locale files
- Export error codes from core package for UI layer consumption

This allows error messages to be displayed in the user's preferred
language while keeping the codebase accessible to both English and
Chinese speaking developers.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 12:51:09 +08:00
Prashant JainandClaude Opus 4.5 b37950dc74 feat(ui): sort image models by enabled status and name (#235)
Sort image model configurations in Model Manager to display enabled
models first, then alphabetically by display name within each group.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 16:46:00 +08:00
linshen 90f23b6e0a test(e2e): 补全文生图/图生图对比生成并稳定回放
- 增加 SiliconFlow 文生图与图生图用例并启用对比生成\n- 完善 VCR 回放(含非 SSE 响应)并修复输出选择器\n- 图生图跳过易抖动模板下拉、等待上传弹窗关闭;e2e 脚本改用 cross-env 兼容 Windows
2026-01-15 22:43:00 +08:00
linshen 840d4087a7 test(e2e): 补充 basic-system/basic-user 用例并增强回放
- 新增 system 对比用例并支持 VCR 多请求回放\n- 补齐 basic-user 用例并录制 fixtures
2026-01-15 21:08:00 +08:00
linshen 204c5d9816 feat(ui): 提升可访问性并稳定 Pro Multi 流程
- 提升 UI 组件可访问性与导航交互一致性\n- 稳定 Pro Multi 消息优化流程,降低 E2E flake
2026-01-13 21:17:00 +08:00
linshen 54077c80d4 Merge branch 'hapi-var-extract' into develop
# Conflicts:
#	packages/ui/src/composables/model/useTextModelManager.ts
2026-01-12 23:08:00 +08:00
linshen 062c2eb9d5 feat(router): 优化路由初始化和工作区布局
- 重构工作区布局并改进端到端测试
- 重构根路径路由引导和模型选择逻辑
- 解决路由初始化时机问题避免误重定向
2026-01-12 22:36:00 +08:00
john a06c54e6e6 Feature/api key quick link (#229)
* feat: 在模型管理中添加 API 密钥快速链接功能

- 在 BaseProvider 和 TextProvider 接口中添加 apiKeyUrl 字段
- 为 9 个文本模型适配器和 3 个图像模型适配器添加 API 密钥 URL
- 在 TextModelEditModal 和 ImageModelEditModal 中添加链接按钮
- 修复 TextModelForm 接口缺少 providerMeta 字段的问题
- 添加中英繁三语言翻译支持
- 创建完整的功能文档和测试计划

功能特性:
- 用户可以通过点击 API 密钥输入框旁的链接按钮直接跳转到服务商的密钥获取页面
- 支持 DeepSeek, OpenAI, Gemini, Anthropic, 智谱, 硅基流动, 通义千问, OpenRouter, ModelScope 等提供商
- 链接在新标签页中打开,带有适当的安全属性
- 自动根据选择的提供商更新链接 URL

* fix: 修复 TypeScript 类型错误

- 修复 useTextModelManager 中的服务注入类型问题
- 修复所有 catch 块中的 error 类型处理
- 修复 TextModelEditModal 中的模板绑定和类型断言
- 修复 ImageModelEditModal 中的变量名错误
- 修复 openai 图像适配器中的 Blob 构造类型问题
- 清理临时文档文件

* fix: 修复代码审查中发现的问题

1. 移除 DashScope URL 中不必要的查询参数 (?apiKey=1)
2. 修复 OpenAI 图像适配器中 Blob 构造的 SharedArrayBuffer 类型问题
3. 修复 services 注入类型 (Ref<AppServices>) 并恢复 .value 访问
4. 提取 ExternalLinkIcon 为可复用组件,避免代码重复
2026-01-12 21:16:04 +08:00
SMILE 75331b9bd0 feat: 添加搜索功能到历史抽屉并更新国际化消息。 (#226) 2026-01-11 20:00:10 +08:00
linshen 7163464097 fix(ui): 实现 UI 持久化和模板选择统一
- 实现 session selections 跨刷新持久化
- 统一 template default 选择逻辑
- 对齐 image template 和 model 布局
- 验证 template defaults 和 mode-switch persistence
2026-01-11 19:34:00 +08:00
linshen afb0f92d19 refactor(e2e): 全面重构端到端测试基础设施
- 实现 VCR 在启用真实 LLM 时默认使用 off 模式
- 实现动态数据库隔离以支持并行测试
- 修复 Pro 模式 session 持久化测试
- 移除 VCR fixtures 中的时间戳字段
- 改进测试隔离以防止路由状态泄漏
- 修正 smart-e2e 只检查实际调用 LLM API 的测试 fixture
- 简化 smart-e2e 使用 auto 模式
- 重命名 analyze-prompt.spec.ts 为 route-initialization.spec.ts
- 添加 session 持久化测试,验证下拉框选择刷新后丢失问题
2026-01-10 15:47:00 +08:00
linshen 8467b96263 feat(test): 实现智能测试系统并改进测试策略
- 实现智能测试系统,统一测试入口
- 完成 Pro 路由重构和 Image 模式评估测试
- 为 Image 模式添加 data-testid 支持
- 完善 E2E 测试并修复选择器策略
- 优化 Seedream、OpenAI 和 SiliconFlow 适配器
- 移除调试日志,保留错误和警告日志
- 重命名 Pro 模式子模式(system/user → multi/variable)
- 清理测试代码并改进稳定性
2026-01-10 11:23:00 +08:00
linshen 63ab9e66cd feat(test): 建立完整的测试基础设施和集成测试
- 建立 VCR 测试基础设施,支持 LLM API 回放
- 添加错误门禁和冒烟测试
- 添加 LLM 服务集成测试(P0)
- 记录测试进展并更新任务计划
2026-01-03 21:08:00 +08:00
linshen 69bffd4260 refactor(ui): 完善单一真源架构解决跨模式状态污染
- 修复跨模式状态污染问题,实现单一真源架构
- 完善单一真源架构并优化代码分割
- 归档 Session Store 单一真源重构文档
- 将未完成的迁移指南移回 workspace
2026-01-02 16:52:00 +08:00
linshen f64534b4cf fix(ui): 修复图像模式问题并新增 JSON 结构化模板
- 支持 ModelScope API 新增的 PROCESSING 状态
- 修复 session 状态持久化的 P0 问题
- 新增 JSON 结构化图像提示词模板
- 增强图像模式模型选择的防御性
2026-01-02 11:47:00 +08:00
linshen a4ab335c2f fix(ui): 修复 session store 的数据加载和状态同步问题
- 修复外部数据加载时 session restore 覆盖数据的问题
- 修复基础模式子模式测试结果共享问题
- 重构 ImageWorkspace 为 session store 单一真源并修复历史加载
2026-01-01 20:15:00 +08:00