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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions