Skip to content

fix(ci): reformat 09-event-schema.md table to unbreak the Prettier lane - #13588

Closed
he-yufeng wants to merge 1 commit into
QwenLM:mainfrom
he-yufeng:fix/prettier-09event-schema
Closed

he-yufeng wants to merge 1 commit into
QwenLM:mainfrom
he-yufeng:fix/prettier-09event-schema

Conversation

@he-yufeng

Copy link
Copy Markdown
Contributor

What this PR does

Reformats the pending-prompt-queue table in docs/developers/daemon/09-event-schema.md so the repo passes the Prettier lint lane again. Whitespace and table alignment only, no wording changes.

Why it's needed

Current main fails the Prettier gate. #13281 merged a table edit that Prettier 3.6.1 (the version pinned in pnpm-lock.yaml) rewrites, and the lane checks the whole repo, so every PR that runs the full Lint & Static job goes red. First observed on #13567's CI after it was rebased onto 1753948.

Linked Issues

No tracking issue; the regression came in with #13281.

Reviewer Test Plan

How to verify

Run the same command the gate runs: node scripts/lint.js --prettier (which invokes prettier --experimental-cli --check .). On main it reports docs/developers/daemon/09-event-schema.md; on this branch the run is clean.

Evidence (Before & After)

$ npx [email protected] --experimental-cli --check .
Checking formatting...
All matched files use Prettier code style!

Version note: verified with the locked 3.6.1, not a floating 3.x. A floating 3.9.9 restyles 703 files repo-wide and is not what the gate installs from pnpm-lock.yaml.

Tested on

OS Status
🍏 macOS ✅
🪟 Windows N/A
🐧 Linux N/A

Environment (optional)

Formatting-only change, verified with the gate's own command; no runtime behavior involved.

Risk & Scope

  • Main risk or tradeoff: none beyond markdown table reflow; cell text is byte-identical, only padding and emphasis-marker style move.
  • Not validated / out of scope: the drift between locked Prettier 3.6.1 and floating 3.9.9 (703 files repo-wide). Flagged here so the lock pin is not accidentally floated in a future dependency bump.
  • Breaking changes / migration notes: none.
中文说明

重新排版 docs/developers/daemon/09-event-schema.md 中的 pending-prompt 队列表格,让仓库重新通过 Prettier lint lane。#13281 合入的表格改动不符合 pnpm-lock.yaml 锁定的 Prettier 3.6.1 的规则,而该 lane 是全仓检查,导致所有跑完整 Lint & Static 的 PR 全部变红(在 #13567 rebase 到 1753948 之后的 CI 上首次暴露)。用门禁同款命令验证:node scripts/lint.js --prettier,main 上报该文件,本分支全绿。注意必须用锁定的 3.6.1:浮动的 3.9.9 会把全仓 703 个文件重排,并不是门禁实际安装的版本。

@qwen-code-review-bot

qwen-code-review-bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Collaborator

✅ Qwen Triage finished — view run. See the stage comments in this thread for the result.

✅ Qwen Triage 已完成 —— 查看运行。结果见本线程中的各阶段评论。

@qwen-code-review-bot

Copy link
Copy Markdown
Collaborator

Thanks for the PR — and for digging into why the lane went red instead of just papering over it. The diagnosis in your description is accurate. The problem is that it has since been fixed underneath you.

Template looks good ✓

Problem: real when you filed it, no longer real on main. The violation did land — #13281 (merged 04:45Z today) put *genuinely queued* plus over-padded table cells into docs/developers/daemon/09-event-schema.md, and because that PR was docs-only it never ran a lint lane at all, so nothing caught it. A PR that does run the full lane goes red on exactly this: #13567's Lint & Static job fails at step Run Prettier, and its tree still carries the asterisk form. Your reasoning about the repo-wide --check . is correct.

But #13536 merged at 08:29:34Z — six minutes after you opened this at 08:23:32Z — and its own patch to this same file is the identical +4/-4 (*genuinely queued* → _genuinely queued_, same re-padding). I pulled both blobs and compared them directly: main's copy of docs/developers/daemon/09-event-schema.md is now byte-identical to your head — both md5 6d9f5fb8a87e67a4cbf9e4b69b8b366c, 369 lines / 47224 bytes. compare main...5826353a reports diverged (ahead 1, behind 1) with a +4/-4 file entry, but that is measured against the merge base; the net content delta against today's main is zero.

Direction: aligned — a gate that any merged commit can break for everyone is worth fixing fast, and fixing it with formatter output rather than by hand is the right instinct. Simply overtaken by events here.

Size: not applicable — one docs file, no core paths.

Approach: minimal and appropriate for the goal: four lines, formatter output only, no wording changes. Nothing I'd cut.

One thing beyond this PR that a maintainer should see: this is a four-way duplicate. #13580 (06:51Z), #13584 (07:27Z) and #13587 (08:01Z) are all still-open qwen-code-dev-bot PRs with the same +4/-4 on the same single file. All four were obsoleted by #13536 within the hour.

Risk: no elevated risk signals — no revert-correlated paths touched.

Flagging this before diving deeper, since the substantive finding is that there is nothing left to merge. Code review and CI evidence follow in the next comment.

中文说明

感谢贡献——也感谢你查清了 lint lane 变红的原因,而不是简单糊过去。描述里的定位是准确的,只是这个问题已经在背后被修掉了。

模板完整 ✓

问题: 提交时是真实存在的,但在当前 main 上已不存在。违规内容确实进了主干——#13281(今天 04:45Z 合入)把 *genuinely queued* 和过宽的表格填充带进了 docs/developers/daemon/09-event-schema.md;而因为那是个 docs-only PR,它根本没有跑 lint lane,所以没人发现。真正跑完整 lane 的 PR 就会因它变红:#13567 的 Lint & Static 作业正是在 Run Prettier 这一步失败,而它的代码树里仍是星号写法。你关于全仓 --check . 的推断是对的。

但 #13536 在 08:29:34Z 合入——比你 08:23:32Z 开这个 PR 晚了六分钟——它对同一个文件的改动是完全相同的 +4/-4(*genuinely queued* → _genuinely queued_,同样的重新填充)。我把两个 blob 都取下来直接比对:main 上的 docs/developers/daemon/09-event-schema.md 现在与你的 head 逐字节相同——两者 md5 均为 6d9f5fb8a87e67a4cbf9e4b69b8b366c,369 行 / 47224 字节。compare main...5826353a 显示 diverged(ahead 1、behind 1)并列出 +4/-4,但那是相对 merge base 算的;相对今天的 main,净内容差异为零。

方向: 对齐——任何一个合入的提交都能把全仓门禁搞红,这种事值得快速修;而且用 formatter 输出而不是手改,思路是对的。只是这次被别的合并抢先了。

规模: 不适用——单个文档文件,未触及核心路径。

方案: 对这个目标来说已经是最小改动:四行,纯 formatter 输出,无措辞变更。没有需要砍掉的部分。

有一件超出本 PR、但维护者应该知道的事:这是一个四重复 PR。#13580(06:51Z)、#13584(07:27Z)、#13587(08:01Z)都还开着,都是 qwen-code-dev-bot 提交的、对同一个文件同样的 +4/-4。四个 PR 在一小时内全部被 #13536 作废。

风险: 无升级风险信号——未触及与 revert 相关的高风险路径。

先把这个提出来讨论,因为核心结论是:已经没有可合并的内容了。代码审查与 CI 证据见下一条评论。

— Qwen Code · qwen3.8-max-2026-09-02

Reviewed at 5826353a6d5906c7d73d7f0d6cb6f53d8271ab25 · re-run with @qwen-code /triage

@qwen-code-review-bot

Copy link
Copy Markdown
Collaborator

Independent proposal first (written before reading the diff): given "a merged docs commit broke the repo-wide Prettier lane", I would run the lockfile-pinned formatter over the offending file and commit exactly its output — nothing more, no hand-tuning, no accompanying cleanup. That is precisely what this PR does, so the approach matches my baseline. The one step I would add is checking whether the fix had already landed on main before opening — that is the step that would have caught this.

Code review: clean, no blockers, no AGENTS.md violations. The diff is formatter output and nothing else: Prettier's default markdown emphasis normalisation (*genuinely queued* → _genuinely queued_, which renders identically) plus one character of re-padding in the Trigger column, with the longest cell in that column (pending_prompt_completed) left untouched. No wording, semantics, or table-structure change.

One small inconsistency in the description, not a blocker: the summary says "Whitespace and table alignment only, no wording changes", while Risk & Scope correctly discloses that "emphasis-marker style" also moves. The Risk section is the accurate one — emphasis markers are markup, not whitespace.

Skipping both optional enrichments (sequence diagram, changed-files table): one file and four lines, so a diagram or a per-file map here would be noise rather than signal.

Test evidence — the PR's own CI, read through the API. No PR-derived code was executed.

The green lint lane on this PR is vacuous, and that matters because the description leans on it. Lint & Static (ubuntu-latest, Node 22.x) reports success, but this PR is docs-only, so the job skipped every real lane step — Install dependencies, Run ESLint, and Run Prettier (step 27) are all skipped. Nothing in this PR's CI ever invoked prettier --check. A green check that never ran the thing being fixed is not evidence for the fix.

Check Conclusion
Lint & Static (ubuntu-latest, Node 22.x) success — but all lane steps skipped, including Run Prettier
Test (ubuntu-latest, Node 22.x) success
Test (macos-latest, Node 22.x) skipped
Test (windows-latest, Node 22.x) skipped
Integration Tests (no-AK, No Sandbox) success
Integration Tests (CLI, No Sandbox) skipped
Desktop Shell (ubuntu-22.04) success
Desktop Shell (windows-2022) success
web-shell E2E Smoke (ubuntu-latest, Node 22.x) skipped
Classify PR success
precheck-pr / precheck success
verify, tmux-testing, publish-verify, publish-tmux skipped
triage, review-pr in_progress (bot orchestration, not this PR's CI)

Because this PR's own lane cannot substantiate the claim, I went and found CI that does — and it settles both directions:

The npx [email protected] --experimental-cli --check . output pasted in the description is the author's local result, not independently re-run — but it is no longer load-bearing, since #13536's Run Prettier step covers the same ground with the same pinned version. The aside about a floating 3.9.9 restyling 703 files is flagged out-of-scope by the author and nothing in the merge decision rests on it.

Sandboxed lane: none applies, and I want to be explicit about that rather than silently skip it. This is a docs-only change with no runtime surface, so @qwen-code /verify (A/B behavioural proof against the base build) and @qwen-code /tmux (TUI capture) have nothing to settle — and /tmux is unavailable to this author regardless, since they hold read-only permission. The only open question was a formatter-version one, and a real lint lane answered it above; no sandbox would have added anything.

Real-scenario testing: N/A — unattended CI run, and nothing user-visible to drive.

中文说明

先写独立方案(在看 diff 之前):面对"一个已合入的文档提交搞红了全仓 Prettier lane",我会用 lockfile 锁定的 formatter 跑一遍出问题的文件,然后原样提交它的输出——不多做别的,不手工微调,不顺手清理。这个 PR 做的正是如此,所以方案与我的基线一致。我唯一会多加的一步,是在开 PR 前先确认修复是否已经进了 main——而那一步正好能发现这次的问题。

代码审查: 干净,无阻塞项,无 AGENTS.md 违规。diff 就是 formatter 输出:Prettier 默认的 markdown 强调符规范化(*genuinely queued* → _genuinely queued_,渲染结果完全相同),加上 Trigger 列少了一个字符的重新填充,而该列最长的单元格(pending_prompt_completed)保持不动。没有措辞、语义或表格结构变化。

描述里有个小的不一致,不构成阻塞:概述写"仅空白与表格对齐,无措辞变更",而 Risk & Scope 正确披露了"强调符样式"也会变。Risk 那段才是准确的——强调符属于 markup,不是空白。

两项可选增强(时序图、变更文件表)都跳过:只有一个文件、四行改动,加图表只会是噪音。

测试证据——通过 API 读取本 PR 自己的 CI,未执行任何 PR 代码。

本 PR 上那个绿色的 lint lane 是空的,而这一点很关键,因为描述里引用了它。Lint & Static (ubuntu-latest, Node 22.x) 报 success,但本 PR 是 docs-only,作业里所有真实 lane 步骤都被跳过——Install dependencies、Run ESLint,以及 Run Prettier(第 27 步) 全是 skipped。本 PR 的 CI 从未调用过 prettier --check。一个从没跑过被修复对象的绿色检查,不能作为修复的证据。

由于本 PR 自己的 lane 无法证实结论,我去找了能证实的 CI,而它把两个方向都讲清了:

描述里贴的 npx [email protected] --experimental-cli --check . 输出是作者本地的结果,未经独立复跑——但它已不再承重,因为 #13536 的 Run Prettier 用同一个锁定版本覆盖了同样的 ground。关于浮动 3.9.9 会重排 703 个文件的附注,作者已自行标注为超出范围,合并决定也不依赖它。

沙箱验证通道:不适用,这里明确说明而不是默默跳过。 这是纯文档改动,没有运行时表面,所以 @qwen-code /verify(相对 base build 的 A/B 行为证明)和 @qwen-code /tmux(TUI 抓取)都无从验证任何东西;而且无论如何在 /tmux 上作者也不具备权限,其权限为只读。唯一悬而未决的是 formatter 版本问题,而上面那次真实 lint lane 已经回答了它,沙箱不会增加任何信息。

真实场景测试:N/A——无人值守 CI 运行,且没有用户可见行为可驱动。

— Qwen Code · qwen3.8-max-2026-09-02

Reviewed at 5826353a6d5906c7d73d7f0d6cb6f53d8271ab25 · re-run with @qwen-code /triage

@qwen-code-review-bot

Copy link
Copy Markdown
Collaborator

Confidence: 3/5 — the change itself is correct and was well-evidenced when filed, but #13536 landed the identical formatting six minutes later, so there is no delta left to merge and nothing for me to approve.

Stepping back: this is a good PR that arrived too late. The diagnosis was right, the fix was the minimal formatter output rather than a hand-edit, the description named the exact pinned version and even flagged the 3.6.1-vs-3.9.9 drift as out of scope instead of quietly widening the diff. Had main still held the asterisk form, I would have approved it without hesitation. My independent proposal was the same change, so there is no simpler path I can offer — the only thing I'd have done differently is check main first.

What stops this from being a clean approve is that approving it would attest to a change that no longer changes anything. main's copy of the file is byte-identical to this PR's head (md5 6d9f5fb8a87e67a4cbf9e4b69b8b366c on both), so merging adds a commit with a zero net diff. I'm also not going to request changes: the author did nothing wrong, and a blocking review state would be the wrong instrument for "you got raced by another merge."

So the recommendation is to close this as superseded by #13536. I'm not closing it myself — triage's only automated close path runs through a linked issue that was closed as completed by a merged PR, and this PR deliberately has no linked issue, so that path doesn't apply. @he-yufeng, if you agree, closing it from your side is the cleanest ending; if you think something here is not covered by #13536, say so and I'll re-run.

Two things a maintainer should see, neither of them this author's fault:

  1. This is a four-way duplicate. fix(docs): apply Prettier formatting to the daemon event schema (#13573) #13580, fix(docs): apply Prettier formatting to the daemon event schema (#13581) #13584 and docs(serve): fix Prettier formatting in the daemon event schema (#13585) #13587 are all still open, all from qwen-code-dev-bot, all +4/-4 on this same single file, opened 06:51Z / 07:27Z / 08:01Z. All four are obsoleted by feat(managed-agent): H6a schedule and automation run record contract #13536 and want the same treatment. I evaluated this one on its own merits, but the cluster itself is the signal — the repo's own bot generated three copies of one markdown fix in under two hours.
  2. The blind spot that caused it is still open. docs(serve): fix stale permission-route note and document pending-prompt events #13281 was docs-only, so it ran no lint lane at all, and a repo-wide prettier --check . violation reached main undetected. It only surfaced on the next non-docs PR (fix(core): resolve modelProviders-prefixed model selectors for subagents #13567), which then went red for something it didn't cause — and that red is what attracted the duplicate fixes. Check lint gate freshness was skipped on this PR too. Worth a look: either let the Prettier lane run on docs-only PRs, or add a post-merge format check on main, so a docs-only merge can't break the gate for everyone behind it. Raised as a question, not as a condition on this PR.

No approval posted in this run, and no approve-on-green marker — the verdict is defer, not approve. The deterministic maintainer resolver returned nothing here (QWEN_MAINTAINER_HANDLE unset, no area labels on the PR, no prior human reviews), so rather than guess an owner I'm routing this to @wenshao, who merged #13536 and therefore has the context on both the duplicate cluster and the docs-only lint gap. Flagging for a human call; nothing here blocks your other work.

中文说明

Confidence: 3/5 — 改动本身是正确的,提交时证据也充分,但 #13536 在六分钟后落地了完全相同的排版,因此已无差异可合并,我也无从 approve。

退一步看:这是一个来得太晚的好 PR。定位准确,修复用的是最小化的 formatter 输出而非手改,描述里点明了锁定的确切版本,还把 3.6.1 与 3.9.9 的漂移主动标为超出范围,而不是悄悄扩大 diff。如果 main 上还是星号写法,我会毫不犹豫批准。我的独立方案与它一致,所以我给不出更简单的路径——唯一会做得不同的是先查一下 main。

之所以不能干脆 approve,是因为批准它等于为一个"已经不再改变任何东西"的改动背书。main 上该文件与本 PR 的 head 逐字节相同(两边 md5 均为 6d9f5fb8a87e67a4cbf9e4b69b8b366c),合并只会增加一个净差异为零的提交。我也不会 request changes:作者没做错任何事,用阻塞式 review 状态去表达"你被另一次合并抢先了"是错误的工具。

因此建议以"被 #13536 取代"为由关闭本 PR。 我没有自行关闭——triage 唯一的自动关闭路径要求存在一个由已合并 PR 关闭(completed)的关联 issue,而本 PR 刻意没有关联 issue,所以该路径不适用。@he-yufeng,如果你认同,由你这边关闭是最干净的收尾;如果你认为本 PR 有 #13536 未覆盖的内容,请说明,我会重跑。

有两点维护者应该看到,都不是这位作者的问题:

  1. 这是四重复 PR。 fix(docs): apply Prettier formatting to the daemon event schema (#13573) #13580、fix(docs): apply Prettier formatting to the daemon event schema (#13581) #13584、docs(serve): fix Prettier formatting in the daemon event schema (#13585) #13587 都还开着,都来自 qwen-code-dev-bot,都是对同一个文件的 +4/-4,分别在 06:51Z / 07:27Z / 08:01Z 开出。四个都被 feat(managed-agent): H6a schedule and automation run record contract #13536 作废,需要同样处理。我是按本 PR 自身价值评估的,但这个集群本身就是信号——仓库自己的 bot 在不到两小时内生成了同一个 markdown 修复的三份副本。
  2. 导致这一切的盲点仍然敞开。 docs(serve): fix stale permission-route note and document pending-prompt events #13281 是 docs-only,因此完全没跑 lint lane,一个全仓 prettier --check . 违规就这样无声进入了 main。它直到下一个非 docs-only PR(fix(core): resolve modelProviders-prefixed model selectors for subagents #13567)才暴露,而后者因为一件不是它造成的事变红——正是那个红色引来了这些重复修复。本 PR 上 Check lint gate freshness 同样被跳过。值得看一下:要么让 Prettier lane 在 docs-only PR 上也运行,要么在 main 上加一个合并后的格式检查,这样一次 docs-only 合并就不会把后面所有人的门禁搞红。这是作为问题提出的,不是本 PR 的合并条件。

本次运行未提交 approve,也没有 approve-on-green 标记——结论是 defer,不是 approve。确定性维护者解析器在这里没有返回结果(QWEN_MAINTAINER_HANDLE 未设置、PR 无 area 标签、此无人工 review),所以我不去猜负责人,而是把这条转给 @wenshao:#13536 由其合入,因此对重复集群和 docs-only lint 盲点都有上下文。提请人工判断;这里没有任何内容会阻塞你的其他工作。

— Qwen Code · qwen3.8-max-2026-09-02

Reviewed at 5826353a6d5906c7d73d7f0d6cb6f53d8271ab25 · re-run with @qwen-code /triage

@qwen-code-review-bot

Copy link
Copy Markdown
Collaborator

📄 Docs-only change — the automatic review ran at --effort medium (verified findings, no reverse audit; medium posts no inline comments). Outcome:

Review complete: pr-13588 — Comment, not posted (0 Critical, 0 Suggestion)

Reviewed head: 5826353a6d5906c7d73d7f0d6cb6f53d8271ab25. Full report in the workflow run. For a full high-effort review with inline comments, comment @qwen-code /review.

中文说明

📄 纯文档变更 —— 自动评审以 --effort medium 运行(发现已验证、无反向审计;medium 不发布行内评论),结果见上方引用行。评审的 head:5826353a6d5906c7d73d7f0d6cb6f53d8271ab25。完整报告见 workflow 运行;如需带行内评论的完整高强度(high-effort)评审,请评论 @qwen-code /review。

@he-yufeng

Copy link
Copy Markdown
Contributor Author

Closing: #13536 landed the identical Prettier reformat of 09-event-schema.md on main at 08:29Z, six minutes after this was filed, so there is no delta left to merge. The diagnosis still holds (the lane break was real at filing time); the fix just arrived elsewhere first.

@he-yufeng he-yufeng closed this Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants