boardx / boardx/workspacex

P0: devapp 真机 PDF 生成 15 分钟未完成 + L0 的 pdf-create 意外弹出审批框

Open
#3,437 3 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.