Skip to content

[Meta] v0.2 中仍存在的 8个核心代码缺陷 — 汇总与跟踪 #285

@Sun-sunshine06

Description

@Sun-sunshine06

背景

在将 main 分支同步到最新版本(v0.2 @ 4c66392)后,对当前所有 open bug issues 进行了代码级根因分析。以下 issue 的问题根源在 v0.2 代码中仍然存在,在相同场景下会稳定复现。

它们不是环境/配置/第三方 provider 的问题,而是 open-codesign 自身代码层面的缺陷。本 issue 作为汇总跟踪单,链接到各具体 issue,便于集中关注。


核心缺陷清单(v0.2 已确认)

1. 导出格式内容/样式严重丢失

  • Issue: [Bug]: 导出功能存在多格式内容/样式丢失问题 #284
  • 影响: PPTX → 只剩标题+项目符号;Markdown → 丢失表格/布局;HTML → 离线不可用;ZIP → 不收集本地资源;PDF → 无页眉页脚
  • 根因: packages/exporters/ 各导出器仅做简单正则提取,未做资源内联/渲染保留
  • 状态: 未修复,v0.2 代码与之前完全一致

2. DeepSeek V4 Pro reasoning_content 回传失败

  • Issue: [Bug]: GENERATION_FAILED (fp: b27a1f89) #260 / [Bug]: GENERATION_FAILED (fp: b27a1f89) #252
  • 影响: 使用 DeepSeek V4 Pro 等 reasoning 模型做多轮生成时,在 done/verify 阶段报 400 The reasoning_content in the thinking mode must be passed back to the API
  • 根因: agent.ts:674-675 设置 thinkingLevel,但 pi-ai agent 路径在多轮对话中没有将上一轮 model 返回的 reasoning_content 正确回传
  • 状态: 未修复,pi-ai 层限制

3. 非 reasoning 模型被错误发送 role: developer(Kimi / MiniMax)


4. Agent verify/edit 循环无上限,大量消耗 token

  • Issue: [Bug]: Model reasoning in loop burning all tokens #251
  • 影响: 简单任务运行 10+ 分钟、消耗 $2+,agent 在 "reasoning → editing → reasoning" 中无限循环
  • 根因: agent.ts 没有代码级 max-round 硬上限。verifier 只收集 3s 内 console 错误,若无反馈 agent 无方向自修正。done tool 提示词中 "3 rounds" vs "5 rounds" 冲突
  • 状态: 未修复,循环仍可能无限进行

5. 未 onboarding 时 UI 暴露 design system 入口导致报错

  • Issue: [Bug]: RENDERER_ERROR (fp: 213f47a1) #249
  • 影响: 新用户在 onboarding 完成前点击 "Link design system",弹出 Cannot save a design system before onboarding has completed
  • 根因: apps/desktop/src/main/ipc/picker.ts:44setDesignSystem() 有 onboarding 守卫,但 AddMenu.tsx 在 UI 层未做前置检查
  • 状态: 未修复,入口仍暴露

6. Chat 显示 "design.html delivered" 但 Files 面板为空


7. 生成失败只显示 CodesignError: terminated,缺乏具体错误信息


8. 测试连接通过但实际生成报 403,诊断提示不准

  • Issue: 正常对话时报 403 错误:Error invoking remote method 'codesign:v1:generate' #124
  • 影响: Settings 中 Test Connection 显示绿色对勾,但生成时弹出 403 "Your request was blocked"
  • 根因: Test Connection 只探测 /models 端点,生成走真实推理请求,两条路径被网关/反代区别对待。diagnostics.ts:61 将 403 归为 keyInvalid,WAF/网关拦截场景没有独立提示
  • 状态: 未修复,测试/生成路径不一致,诊断分类不准
  • 补充: 用户反馈测试连接显示超时但实际生成可用,进一步印证测试/生成路径行为不一致

日志新发现缺陷(v0.2 日志分析)

9. Workspace path 绑定冲突,多个设计无法共享工作区


10. Windows 文件监视器 EPERM 权限错误


11. Scaffold manifest 校验失败 — iphone-frame.source 缺失


12. 自动更新器每次启动都报 404 — Cannot find latest.yml


修复优先级建议

优先级 Issue 理由
P0 #284 导出是核心用户流程,当前几乎不可用
P0 #257 / #234 阻断多个主流模型(Kimi、MiniMax)的使用
P1 #251 直接影响用户成本(token 燃烧)
P1 #260 / #252 阻断 DeepSeek V4 用户使用
P1 #248 用户看到"已交付"但找不到文件,体验极差
P1 #286 工作区绑定冲突阻断多设计工作流
P2 #189 提升可诊断性,减少 support 成本
P2 #124 测试与生成一致性
P2 #249 新用户 onboarding 体验
P2 #287 Windows 文件监视器稳定性
P2 #288 脚手架 manifest 校验
P2 #289 启动日志噪音,影响可读性

如何验证修复

每个 issue 的复现步骤都在其原始 issue 中详细描述。修复后可用以下方式验证:

  1. [Bug]: 导出功能存在多格式内容/样式丢失问题 #284: 生成一个带图片/卡片的 HTML → 分别导出 PPTX/Markdown/HTML/ZIP/PDF → 检查内容/样式保留度
  2. [Bug]: Kimi-K2.6 and other models incorrectly receives role: developer, causing 422 from Azure AI Foundry #257/[Bug]: GENERATION_FAILED (fp: ebd4e21f) #234: 配置 Kimi-K2.6 或 MiniMax-M2.7 → 发送任意 prompt → 不应再收到 422/400 developer role 错误
  3. [Bug]: Model reasoning in loop burning all tokens #251: 发送一个简单 prompt(如"生成一个博客页面")→ 观察生成时间和 token 消耗,不应超过 3 分钟/$0.5
  4. [Bug]: GENERATION_FAILED (fp: b27a1f89) #260/[Bug]: GENERATION_FAILED (fp: b27a1f89) #252: 使用 DeepSeek V4 Pro 做多轮编辑 → done/verify 不应报 reasoning_content 错误
  5. [Bug]: sidebar chat window showing "design.html delivered" but cannot see in the files app #248: 不绑定工作区直接生成 → Chat 显示交付后 Files 面板应能看到虚拟 FS 中的文件
  6. bug: 生成失败只显示 'CodesignError: terminated',缺乏具体错误信息 #189: 断开网络/配置错误 baseUrl → 生成失败提示应具体指出"网络中断"/"代理超时"等
  7. 正常对话时报 403 错误:Error invoking remote method 'codesign:v1:generate' #124: 配置一个 /models 可访问但生成端点 403 的网关 → Test Connection 应同步失败或给出 403 提示
  8. [Bug]: RENDERER_ERROR (fp: 213f47a1) #249: 在未 onboarding 状态下点击 Link design system → 应给出友好引导而非 raw error
  9. bug: Workspace path binding conflict prevents multiple designs from sharing workspace #286: 创建两个设计绑定同一工作区路径 → 应允许共享或给出明确解除绑定引导
  10. bug: EPERM file watcher error on Windows when watching workspace files #287: 在 Windows 上修改工作区中的文件 → 文件监视器不应报 EPERM,应正常检测变更
  11. bug: Scaffold manifest validation fails — 'iphone-frame.source must be a non-empty string' #288: 启动应用 → 日志中不应再出现 iphone-frame.source must be a non-empty string
  12. bug: Auto-updater fails with 'Cannot find latest.yml' 404 on every startup #289: 启动应用 → 不应再出现 Cannot find latest.yml 404 错误日志

本 issue 仅用于汇总跟踪。具体讨论和修复请移步各子 issue。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions