P0: devapp 真机 PDF 生成 15 分钟未完成 + L0 的 pdf-create 意外弹出审批框
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 1h 7m
- Merged PRs (30d)
- 969
Description
## P0:devapp 真机 + 真实模型,PDF 生成 15 分钟未完成,且 L0 技能弹出审批框
**这是首次真正跑通的 devapp 真实模型证据**(run 34594941550,`real-model-chat-evidence.yml`,spec `real-model-pdf-smoke.spec.ts`)。8 条断言,3 条失败:
```
✅ ① 真实 /chat 可用
❌ ② run 真的跑起来并走到终态 —— 发出后 901s 仍 running,未到终态(超时上限 900s = 15 分钟)
❌ ③ 全程没有出现工具授权/审批弹窗(pdf-create 是 L0,#2782)—— 弹窗在 +63.3s 出现
✅ ④ 全程没有错误横幅
✅ ⑤ 助手气泡不重复
❌ ⑥ 真的产出了一个 PDF 产物 —— 0 个产出文件卡(因 ② 未完成,连带失败)
✅ ⑦ SSE/WS 全程未被掐断
✅ ⑧ 无未捕获页面异常
5/8 通过
```
Artifact:`real-model-chat-evidence`(run 34594941550),含截图/视频/trace.zip。
## ⚠ 这直接推翻了本仓 #3413 计分板里记录的「PDF 02:12 PASS」
那条结论是**本地真栈**测的。本条是**devapp 真机**,**15 分钟未完成**。两者差距巨大,不能用本地数字解释——这正是「本地数字只能当下界」这条纪律要防的情形。
## 需要分开取证的两条(不许合并结论)
### ① 为什么 L0 的 pdf-create 会弹审批框
`pdf-create` 按 #2782 应为 L0,理应不中断。首要嫌疑(**先验证,不要照抄**):
- 是 pdf-create 本身调用了某个内部工具,而**那个内部工具**未被正确分级(同 #3420/#3404/#3305 那一族「漏分级落兜底」)?
- 还是 devapp 上部署的分级表版本落后于 main(**先查 devapp 实际跑的 SHA**,不要假设它等于 `main` HEAD)?
- 还是 L0 判定本身在某条路径上被绕过(类似 #3404 查过的 native session provider 无条件 `interrupt_on=true`)?
### ② 为什么 15 分钟没完成
本地测得 PDF 端到端 02:12(#3401/#3406 修复后)。devapp 15 分钟未完成,**差距超过 6 倍**。需要取证:
- 是卡在 ①「审批框」那一步——用户/自动化没人去点,run 在等一个不该存在的确认,**这本身就能解释超时**(先验证这个最简单的假说)?
- 还是即便排除审批阻塞,模型/沙箱本身在 devapp 上就是慢很多(网络、机器规格、并发)?
- 若是后者,需要 devapp 上的逐段耗时(技能发现/建图/模型轮次/execute/回传),复用 #3401 的测量方法(`pdf-perf-measure.live.ts`,已支持自定义 prompt)。
**判别方法**:先看 trace.zip 里 +63.3s 那个审批框之后发生了什么——如果 run 一直卡在等审批直到超时,①②是同一个根因,优先修①;如果审批框出现又消失(有人/有机制点了)、后面继续跑却依然慢,那是两个独立问题。
## 要求
- **先从 trace.zip / 证据包取证,不要从代码结构推断**。
- 判据必须落在「devapp 真机重跑这条 spec,8/8 通过」,本地测试不算数——这条本身就是本次教训。
- 三步反证:造出缺陷形状 → 断言变红 → 撤掉 → 恢复绿,只贴绿不算数。
- 若①②确认是同一根因,先修①,再重跑整条 spec 验证②是否随之解决,不要两个都动。
## 相关
#2782(pdf-create 应为 L0 的既有裁决)、#3305/#3404/#3420(漏分级/授权粒度错配的同族历史)、#3401/#3406(PDF 本地性能修复)、#2795(devapp SSE/WS 掐断的既有教训,本次 ⑦ 已排除)。
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with trace.zip from run 34594941550 and the +63.3s approval event, then inspect real-model-pdf-smoke.spec.ts and real-model-chat-evidence.yml. Determine whether the run remains blocked by approval or continues slowly; use pdf-perf-measure.live.ts for segmented timing if needed. Done means a devapp real-device rerun of the spec passes all 8 assertions, with regression evidence for the confirmed cause.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- devops, performance, security, testing-qa
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100