Skip to content

[P0] diff 应用链路与产物消费补全(FilePreviewRouter/预览/下载) #1817

Description

@DeliciousBuding

背景

前端审计(2026-08-21)发现产物消费动线在关键点断裂:交互 diff 的 hunk accept/reject 因 edgeBaseUrl 未配置永远失败且仅 console.errorFilePreviewRouter.tsx 注释自认 known defect,建议改走 PreviewPort);PDF/图片预览是占位;Web 侧产物只有元数据。对编码工作台这是核心动线断点,聚合追踪。

所属部分

  • 前端
  • 后端
  • 客户端

要做什么

  • app/shared/src/workbench/inspector/FilePreviewRouter.tsxedgeBaseUrl = '' 导致 postJson 必抛 "Edge base URL not configured",handleApplyHunk/handleApplyAllHunksconsole.error;按注释指路改走 PreviewPort(或等价 platform port),让 desktop 端 hunk apply 真实生效
  • apply 操作失败/成功必须有用户可见反馈(toast/内联状态),禁止静默 console
  • NativePdfView 渲染空 iframe(无 src)、NativeImagePreview 只显示文案占位 → 接真实内容渲染
  • Web 产物下载兜底:hubClientApiExtended.ts 仅有 listTaskArtifactsRuntimeEvidenceParts.tsx 显示 "Download: metadata only"。要么补下载端点消费,要么把能力边界做成明确的 UI 状态(不留半句话)
  • Desktop 证据「应用 patch 到工作区」路径与上一项同源,一并打通或明确边界

验收标准

  • Desktop 端对 diff hunk 点 accept/reject 有真实结果与可见反馈
  • PDF/图片预览渲染真实内容
  • Web 产物卡片不再出现误导性半截能力文案
  • pnpm --filter @agenthub/shared(或对应包名)及 desktop/web typecheck/test 通过
  • 涉及可见 UI 变化时跑 design token 门禁

相关文档

  • docs/architecture/04-frontend-data-flow.md(Platform Adapter Contract / PreviewPort)

Metadata

Metadata

Assignees

No one assigned

    Labels

    P0Critical priorityjavascriptPull requests that update javascript code前端Web 工作台、IM 交互、前端状态和 UI

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions