boardx / boardx/workspacex

[bug] devapp 上真实研究类任务卡在「正在准备…」数分钟不动,刷新后进度/计划全部消失

Open
#2,349 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
0
Forks
0
Avg merge
1h 7m
Merged PRs (30d)
969

Description

## 现象(人类在 devapp.boardx.us 实测)

在个人 chat 新对话里提交一个真实研究类目标("do a research about future education
with ai in china"),任务卡片进入「正在准备…」状态,**卡了几分钟以上完全没有动静**
(没有报错横幅,也没有推进),最终手动刷新页面——刷新后右栏「进度」页签显示
「还没有进行中的任务。描述一个目标,Agent 会先列出计划,这里会实时显示每一步的
进展。」,之前提交的那次研究**整个消失**,看起来像是没提交过。

线程 URL:`https://devapp.boardx.us/chat/thr-6d30e1a5-dc5c-43b4-b6fb-a90764a6c13d`
(人类原话复述,本环境没有 devapp 登录权限,未能自己核实当时的网络/控制台状态)。

## 已知会指向同一类问题的线索(未坐实,留给认领的人核实)

- 右栏「进度」页签的数据源是 `usePlanLedgerPolling(threadId)`
(`apps/web/lib/use-plan-ledger-polling.ts`)——挂载即请求、之后每 3 秒轮询
`getPlanLedger`,**不是**只在同一次浏览器会话的 SSE 连接里维护的临时状态。
按这个实现,如果服务端真的落过一条计划账本(`chat_plan_ledgers`),刷新后重新
挂载应该能读回来、不会"消失"。刷新后读到空,最直接的解释是**服务端从未成功写入
过账本**——即这次 run 从一开始就没有真正跑起来,而不是"刷新把已有进度冲掉了"。
- 与今天另一个已确认的真实 bug([#2318](https://github.com/boardx/workspacex/issues/2318))症状类似:新注册组织第一次在个人 chat 发消息,
`POST /api/copilotkit/agent/default/run` 的 SSE 响应是一个 `RUN_ERROR`(内容是
字面 Next.js 404 HTML,说明请求根本没到 apps/api),前端表现为「正在思考…」之后
弹出失败横幅。**这次的症状不完全一样**——没有出现失败横幅,是无限期卡住,不是
快速失败——但同属"agent run 没有真正跑起来,且前端没能诚实呈现失败"这一类。
真实研究任务大概率会经由 deep-agent + 真实检索工具这条更长的执行路径,与 #2318
验证过的默认 agent 路径不是同一条代码路径,**不能假设是同一个根因**,需要
单独排查(真实检索/工具调用是否卡在某个外部依赖上、有没有超时兜底)。

## 复现环境

devapp.boardx.us(真实部署,非 e2e 替身环境)。本地 fullstack-smoke 用的是确定性
loopback 模型/deep-agent 替身,大概率复现不出真实检索工具卡住这类问题——排查这条
需要能访问 devapp 后端日志或在等价的真实 deep-agent 环境里复现。

## 影响

用户提交的真实工作看起来直接丢失,且过程中没有任何错误提示——比 #2318 更严重:
#2318 至少快速失败并显示了红色横幅,这次是静默卡死,用户唯一能做的是刷新,刷新后
连"曾经提交过"这件事都看不出来了。

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with apps/web/lib/use-plan-ledger-polling.ts and the POST /api/copilotkit/agent/default/run path, then inspect getPlanLedger and the devapp backend logs for the reported thread. Compare the real deep-agent and research-tool path with #2318, checking whether a ledger is written and whether failures or long-running runs reach the UI. Done means the root cause is reproduced or traced and the stuck or lost-run behavior has a verified user-visible outcome.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, backend, frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.