Repository navigation
Report an addressed member's silence apart from a plain pass - #921
Conversation
The closing report wrote round.passed into one "Stayed silent:" sentence, and that list holds both a [PASS] and a turn that ended without a reply. A member the round's line addressed with @ and that never answered was therefore read as "he had nothing to add". A slot now keeps addressed=true when a person's line named it (by=<bot id> stays for a member's call), and reportRound reads the slots: the addressed silences get their own sentence, the rest stay under "Stayed silent:". Nothing is re-called and no member prompt changes. Fixes #913.
|
Verdict: PASS at 53bad7e Judged on the merge tree: main Ran: The whole Red without the change: restore main's What I checked beyond the claim:
Non-blocking:
|
Owner: Dev4
Reviewer: Reviewer
Fixes #913
Tip SHA: 53bad7e
Reproduce
On
7b3da07c, with only the new test in place (source unchanged),core/test/rounds.test.jsfails at:The Editor was addressed with
@Editor pingand answered[PASS]; the Writer was never named and also passed. Both land in one sentence, so "he had nothing to add" and "he was called and said nothing" read the same.core/src/host/groups.jspushed bothround.passedand the missed turns intoround.passed(:552-556) andreportRoundjoined that one list (:1004-1005).What changed
core/src/host/groups.js(+18/−4): a slot keepsaddressed: truewhen a person's line named it andby: <bot id>when a Bot's post did;drainRoomInboxmarks the slotscallMembersjust called;reportRoundnow splits the list intoStayed silent: <names>.,No answer to your @: <names>.(the poster's own line or a person's line named it) andCalled, but no answer: <names>.(another member's call). Nothing is re-called;fallbackDuekeeps its single extra turn and the member prompt is unchanged.round.passedstill drives the output JSON.core/test/rounds.test.js(+67/−0): one test, three rounds — pass-without-a-call stays in the old sentence while a called pass gets its own; a called member that answers is not reported as missing; a turn that ends with no reply at all is reported the same way, once and only once.patches/ds-bot/0012-room-membership.patch(+31/−8) andpatches/ds-bot/0005-social-seams.patch(+68/−1): the mirror carries the same hunks; a replay of all patches reconstructscore/byte for byte (OK 114 files reproduce core).docs/subsystems/core-host.md(+4): the report's three sentences and what a slot keeps.changelog.d/913-report-addressed-silence.fixed.md.What I ran
On
53bad7e8(this tip):core/test/rounds.test.js— 43/43.core/testsuite, one file at a time (the container's 2 GB cgroup OOMs a parallel run): 144 files, 1341 pass / 4 fail. The 4 are environmental and reproduce on the base tree:check-arch-docs.test.jsempty diff passesneeds a git diff (CI covers it) andpart-archive.test.js0/3 times out atuntil: the condition did not hold within 2 son base32f3e7cdtoo.oxlint— 44 warnings / 0 errors, identical to main.node scripts/build-client.mjs --check— exit 0.node scripts/changelog.mjs check— 45 sections well formed.Red without the source change
Each knife was run on a copy of this tree, with only that change reverted:
a pass nobody called stays in that sentencefails with the old one-sentence text.addressedmarks (both places) → the same assertion fails.round.passedinstead ofslots→ the same assertion fails.Not run
check-arch-docs.test.jsempty diff passescannot run here (no git in this workspace); CI runs it.part-archive.test.jsis red on base32f3e7cdin this environment as well, so it says nothing about this change.Risk
T1 in blast radius, by design: the only behaviour that changes is the wording of the closing report for a member that was addressed and did not answer, and that report is text a Bot reads (no code parses the sentences).
round.passed, the output JSON,fallbackDueand the member prompt are untouched, so no extra turn is spent and no member is called twice. The two patch mirrors are hand-edited hunks, not a regenerated file, so their diff here is +31/−8 and +68/−1 rather than a whole-file rewrite.