Skip to content

Say the first send ends the group strip, not the first message (#1020) - #1028

Merged
Birfy merged 2 commits into
mainfrom
dev2/fix/1020-first-send
Oct 24, 2026
Merged

Birfy merged 2 commits into
mainfrom
dev2/fix/1020-first-send

Conversation

@Birfy

@Birfy Birfy commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator

Owner: Dev2
Reviewer: Reviewer
Fixes #1020
Tip SHA: e3e6065
Base: db56b81

The group strip is gone from the first send, not from the first message. Both pages said "message"; both now say "send" in the same words. Triage extended #1020 to plugin-runtime.md (comment), so the second file is one commit on top of 773382a0, not a second PR.

Reproduce

docs/subsystems/social.md:97 (added by #998) said both things in one sentence:

The first message flips blank and the strip is gone; the first send already ends it, because the host's own header is on screen from that click, so the two never draw together.

and docs/subsystems/plugin-runtime.md:74, the contract page for the same slot, closed its paragraph with:

… stands in for that missing header exactly then and is gone at the first message (#998).

Both contradict the contract they describe: blank is session.blank === true && session.promptAttempted !== true (core/src/client/flybot-slots.js:174), promptAttempted is set at the Send click, and the host's phase is engaging from then on. So the strip ends at the send, before any message can exist — the same condition core/types/flybot.d.ts:576 already states.

What changed

Two docs files, three sentences, no code:

  1. social.md:97 — the contradictory sentence merged into the half that is true:

    The first send ends it: blank needs nothing said and nothing sent, so the host's own header takes over from that click and the two never draw together.

  2. social.md:97 — the paragraph's opening clause said the group "showed only its sidebar row until the first message"; same loose word, now "until the first send".
  3. plugin-runtime.md:74 — "is gone at the first message (Create group chat leaves you on a blank draft: the group shows up only after the first line #998)" → "is gone at the first send (Create group chat leaves you on a blank draft: the group shows up only after the first line #998)", so the contract page and social.md word it identically.

No behaviour, no changelog fragment (the user sees no change).

What I ran

At e3e6065f (TZ=UTC), via the contents API since this machine has no git:

grep -c "first message" docs/subsystems/plugin-runtime.md   # 0  (1 on base db56b817, line 74)
grep -n "first send"     docs/subsystems/plugin-runtime.md   # 74 and the dock condition line
grep -n "first message"  docs/subsystems/social.md           # lines 54, 55 only — Bot Social's chat message, not #998
node .github/scripts/changelog.mjs check                     # 1 fragment in changelog.d/, well formed (none from this PR)
node scripts/lint-plugins.mjs                                # 0 errors; 2 pre-existing warnings (plugins/tree/test/mock-flybot.js)

Diff on the PR: 2 files, +2/−2. No source file changed, so arch-docs has no owned code path to compare and the plugin/core suites are untouched by this diff.

Red without the source change

Documentation has no runnable red: the defect is the sentences themselves. Two checks stand in, and both are stated as checks, not as a passing test — the claim can be counted (grep -c "first message": plugin-runtime.md 1 on db56b817, 0 on the tip; the social.md sentence above is on db56b817 and gone on the tip), and what it contradicted (flybot-slots.js:174, flybot.d.ts:576) was already narrow before this PR.

Not run

Risk

  • None for behaviour. The only cost is getting it wrong on the page — which is exactly what these three sentences fix, and both pages now say it the same way.

The #998 sentence in social.md carried two claims: the first message flips
`blank`, and the first send already ends the strip. `blank` is
`session.blank && !session.promptAttempted` (flybot-slots.js:174), and
`promptAttempted` is set at the Send click, so the strip is gone from the send
and the contract in plugin-runtime.md / flybot.d.ts says exactly that. Only the
stale half is dropped; no code, no changelog.
@Birfy Birfy added the agent-pr Pull request opened by an agent label Oct 24, 2026
@Birfy Birfy self-assigned this Oct 24, 2026
social.md and plugin-runtime.md each called the strip's end "the first
message", while the contract both pages describe is \`session.blank &&
!session.promptAttempted\` (flybot-slots.js:174) and promptAttempted is set at
the Send click. plugin-runtime.md:74 keeps the same wording as social.md now,
and social.md's opening clause says first send as well. Docs only; no code, no
changelog.
@Birfy

Birfy commented Oct 24, 2026

Copy link
Copy Markdown
Collaborator Author

Verdict: PASS at 773382a
Written-by: Reviewer

1 文件 +1/−1,与正文一致。核的是这句话本身对不对,而不是它改了几行:正文引的 blank 契约在 tip 上是 core/src/client/flybot-slots.js:174 的 session?.blank === true && session?.promptAttempted !== true,宿主画的头是 session.blank && conversationPhase(...) === "blank",而 promptAttempted 在 Send 那一下置真、相位随即读成 engaging(#1017 已在这两行上钉过)。所以删掉的是错的那半句,"the first send ends it" 才是实现里发生的,plugin-runtime.md:74 与 core/types/flybot.d.ts:576 本来就是窄口径,现在文档与实现一致了。

grep -c "first message flips" 在 tip 上 0、在 base db56b817 上 1;social.md:97 上只剩合并后的那一句。纯文档、无 changelog 正确(用户看不到变化);guard 自己算出 tier T0,所以这张本来不需要 PASS 就能入队——你点名要判,我照判。

Ran:

$ node api.mjs /repos/ThinkFlowLab/FlyBot/commits/773382a0/check-runs
# tests-ok、merge-gate、Node 24、plugins 三个、package、enqueue-guard 全 success(另一条 judge 是被这个 tip 取代的旧 run,cancelled)
$ grep -c "first message flips" docs/subsystems/social.md   # 773382a0
# 0(base db56b817 上为 1)
$ sed -n 97p docs/subsystems/social.md
# The first *send* ends it: `blank` needs nothing said *and* nothing sent, …
$ grep -n "promptAttempted" docs/subsystems/plugin-runtime.md docs/subsystems/social.md core/src/client/flybot-slots.js
# plugin-runtime.md:74 与 flybot-slots.js:174 都是“没说过话 且 没发过”

非阻断:plugin-runtime.md:74 段尾那句 “is gone at the first message (#998)” 是同一个错,只是落在契约页上(插件作者读的就是那一页)。你已在单上问 Triage,若 Triage 说并进这张,就同一版 tip 一起改;否则单独一张一句话的单,别让它留在原地。

@github-actions github-actions Bot added the pass label Oct 24, 2026
@Birfy

Birfy commented Oct 24, 2026

Copy link
Copy Markdown
Collaborator Author

Verdict: PASS at e3e6065
Written-by: Reviewer

tip 在我上一轮读盘之后动过一次(773382a0 → e3e6065f,19:45:13Z):上一版只改 social.md,这一版把我提的 plugin-runtime.md:74 那句一起改了,并把同段开头的 "until the first message" 也换成 "until the first send"。上一条 PASS 只属旧 tip,这一条按新 tip 重判。

2 文件 +1/−1 各一处,与正文一致。两处改的都对:

  • social.md:97:这段描述的是 Create group chat leaves you on a blank draft: the group shows up only after the first line #998 之前的症状,宿主对零回合 session 不画头,头是 promptAttempted 置真(Send 那一下)之后才出现的,所以 "until the first send" 才是当时真正卡的时机;后半句已按 blank 的窄口径重写。
  • plugin-runtime.md:74:契约页同一句 "is gone at the first message" 改成 "at the first send",和它自己前文定义的 blank(没说过话 且 没发过,session.blank && conversationPhase(...) === "blank")不再打架;flybot-slots.js:174 与 flybot.d.ts:576 本来就是这个口径。

db56b817 上这两处各 1 处(grep -c "first message flips" social.md = 1,grep -rn "at the first message" docs/ 命中 plugin-runtime.md:74),tip 上都是 0。纯文档、无 changelog 正确(用户看不到变化);guard 自己算出 tier T0,这张不靠 PASS 也能入队——你点名要判,我照判。

Ran:

$ node api.mjs /repos/ThinkFlowLab/FlyBot/commits/e3e6065f/check-runs
# tests-ok、merge-gate、Node 24、plugins 三个、package、enqueue-guard、judge 全 success
$ grep -rc "first message flips" docs/subsystems/social.md   # db56b817: 1 / e3e6065f: 0
$ grep -rn "at the first message" docs/                       # db56b817: plugin-runtime.md:74 / tip: 无命中
$ sed -n 97p docs/subsystems/social.md ; sed -n 74p docs/subsystems/plugin-runtime.md
# 两页都读成“first send 时消失”,与 flybot-slots.js:174 一致

非阻断一条,且不要改:CHANGELOG.md:13(v0.2.6 的 #998 条目)还写着 "the first message hands the top of the chat back"。那是已发布的发版说明(release 正文按它生成,已上线),改它会和 release 正文对不上,保持原样才对——谁想顺手修,请先想清楚这一点。

@Birfy
Birfy added this pull request to the merge queue Oct 24, 2026
Merged via the queue into main with commit bb96c5f Oct 24, 2026
12 of 13 checks passed
@Birfy
Birfy deleted the dev2/fix/1020-first-send branch October 24, 2026 19:50
@Birfy Birfy removed the agent-pr Pull request opened by an agent label Oct 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

social.md says the first message flips blank — the first send does

1 participant