Skip to content

[P0] 前端能力接线断裂修复:desktop 审批/取消、连接可见性、web auth 错误链 #1816

Description

@DeliciousBuding

背景

前端审计(2026-08-21)发现一批「能力已实现但壳层未接线」的断裂:功能代码与测试都在,但 web/desktop 两个 App 壳没传 props、没消费 store,用户侧静默失效。修复成本低、收益大,聚合追踪。useErrorReporter 无限重渲染问题已有 #1795 / #1809,不在本 issue 范围。

所属部分

  • 前端
  • 后端
  • 客户端

要做什么

  • Desktop 本地 Run 审批决策接线:app/desktop/src/App.tsx handleApprovalDecision 目前 if (!action.teamId || !action.teamRunId) return; 只处理 team 审批;Edge 本地 run 的 permission_request 应走 app/desktop/src/api/edgeClient.tsdecidePermission(edge-server 端点已实现,当前仅测试引用)
  • Desktop Run 取消接线:App.tsx 未向 AgentHubWorkbenchisAgentRunning/onCancelRunrunQueries.ts 已有 useCancelRunedgeClient.ts 已有 cancelRun,均为死代码
  • 连接状态可见性:web/desktop 两个 App.tsx 均未向 workbench 传 connectionStatus(prop 链路 GlobalRail/WorkbenchFrame/ChatViewBridge 已齐);app/web/src/stores/connectionStore.tssetReconnecting 从未被调用、reconnecting 无读取方;MainchainStatusStrip 两端被 showMainchainStatus={false} 关闭
  • Web OIDC 回调错误展示:app/web/src/hooks/useWebAuth.ts tryAutoLogin().catch(() => {}) 吞掉 OidcErrorDesktopEntryGate 已有正确处理可参考
  • Web refresh 失败回到登录态:app/web/src/platform/webAuthTokenRefresh.ts 刷新失败仅清 token + console.warnhubStore.authenticated 保持 true,后续请求持续 401
  • device.kicked 用户反馈:desktop hubEventBridge.ts onDeviceKicked 为空 stub;web 仅失效查询无提示
  • 审批模式 UI:composerReducersetApprovalMode 全仓无 dispatch 来源;在 composer 加入口,或明确记录默认 suggest 语义并移除死 action

验收标准

  • Desktop 本地 Edge run 的审批卡可真实批准/拒绝,决策到达 edge-server
  • Desktop agent 运行时发送键变停止键,可真实取消 Run
  • WS 断线/重连/恢复有用户可见状态(rail 圆点或状态条)
  • Web OIDC 回调失败、refresh 失败均有提示并回到可重新登录状态
  • device.kicked 有提示并引导重新登录
  • pnpm --filter desktoppnpm --filter web 的 typecheck/test 通过;commitlint 通过
  • 涉及可见 UI 变化时跑 python3 scripts/verify/verify-design-token-ssot.py

相关文档

  • docs/architecture/04-frontend-data-flow.md
  • docs/architecture/06-auth-identity.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    P0Critical priorityjavascriptPull requests that update javascript code前端Web 工作台、IM 交互、前端状态和 UI客户端Desktop、Runner、Edge 本地调度和 Agent CLI

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions