Repository navigation
A room board reached from a Bot board counts its active cards twice in the rail - #2076
Conversation
A room board is only ever reached from a Bot board, and that board's default read has already filled `own` with the room's active cards. The rail added `own` to the room's own list, so every card the room board drew was counted twice: a room drawing two cards read `1/3` where the drawn columns said `1/2`. Count the list the scope draws from -- `groupTasks` on a room board, `own` on a Bot board -- and seed the room fixtures from the Bot board's read so the old shape cannot pass again. Fixes ThinkFlowLab#2069
|
Self-test: PASS at c99b9c8 Team self-test on the named tip (read-only; no review event, no merge authorization — the repository reviewer's own verdict stays the authority). Ran:
Readings:
Notes (not counted against this change):
Unverified by me:
|
|
@Birfy — review request for this pull request at Checks are green at that exact tip ( What the change is, in one line: a room board is only ever reached from a Bot board, whose default read already filled the rail's own list, so the rail counted the room's active cards twice (a room drawing one active and one finished card read |
|
Self-test: PASS at c99b9c8 Team advisory self-test, independent of the earlier self-test comment Ran:
Red first on
Mutation arms (red = which of the 16 fail):
Fixture and scope:
One gap, not a regression (the behaviour on this tip is right, the test cannot tell the two branches apart):
Body, doc row and the new Not verified by me:
|
|
Verdict: PASS at c99b9c8 Ran at this tip: Red first — tip tree with only the changed source The three reds are Scope: the tip tree differs from base Checks on this tip: 15 check runs, all terminal, no failure — Body: checkpoint block present and compliant (pr 2076, claim Dev-2, issue 2069, summary 407 chars, 8 files all in this diff, checks green at this tip), Judgement: a room board is only reached from a Bot board, whose default read already fills the rail's own list; counting |
Fixes #2069
Written-by: Dev-2
Owner: Dev-2
Reviewer: Birfy
Claim-Id: e4910b8f53384edcbdfb47a9540eefb9
Branch: dev/2-room-rail-double-count
Base: 8626664
Tip SHA: c99b9c8
What changed
The rail counted
ownand then the room's own active list on top of it. A room board is onlyever reached from a Bot board — the dialog opens on
rail.bots[0]— and that board's default readis the unfiltered active list, so the room's cards were already in
ownwhen the rail switched.Every card the room board drew once was counted twice in the rail: a room drawing one active card
and one finished card read
1/3where the columns said1/2.The rail now adds up the list the scope actually draws from —
groupTaskson a room board,ownon a Bot board — plus the one archive page.
#2045's page cap, its20 newestheading and its20+ donelower bound are untouched, and P-360's key is untouched.The room fixtures were false green and are corrected in the same change:
boardWithpresetown = []for a room board, a state the real path never produces — the dialog opens onrail.bots[0], a Bot board, and a room board is only reached from it — so the double count couldnot be seen. A room fixture now seeds
ownfrom the Bot board's read of the same cards.That fixture correction is why the red first count is three and not one. Measured on the same base
8626664d, source untouched: with the oldown = []preset the new cases give 16 tests / 15pass / 1 fail — only
#2069— because a preset emptyownhappens to give the two existing roomcases the corrected list shape; seeded from the Bot board's read they go red with it,
16 / 13 / 3.
Red first — base
8626664d, source untouched, three runscore/test/kanban.test.js, run three times: 16 tests / 13 pass / 3 fail, identical each time,exit 1.
#2069: a room board reached from a Bot board counts each active card once in the rail1/31/2P-364: a room board rail counts the room's active cards, not only its archive page{done}/{total}, not{done}/{done}1/71/4#2045: a Bot whose share of a full group page is drawn reads as a lower bound, not a total1/31/2The new case drives the real path through the stateful harness: the board opens on Chief's Bot
board (the default
{}read fillsownwith the room card, which the rail already counts as0/1), then the room rowwaris clicked, the room read arrives, and the rail must read1/2while the drawn columns hold one card each. The other two reds are the existing room assertions
after their fixtures were seeded from a Bot board's read — they stay verbatim (
1/2,2/3,0/1,1/4,3/5,19/21,20+ done,18+ done,2+ done,0/20).Mutations
[...own, ...(group ? groupTasks : [])]group ? own : groupTasks#2045page-not-full3/5,#2045hedge0/20,#2069)Verified on the tree this tip carries
TZ=UTC ARCH_DOCS_BASE=8626664d0d1d84fdd8fdc28869d8f4e032225123 npm run verify, exit 0, on thetree
ce626f2dee1cdd4701003d1adcbfae80d98a20e5this tip carries (c99b9c8234, one commit, oneparent
8626664d).plugins/social541,plugins/tree127,plugins/timeline135,plugins/workflow336,.github/scripts563,interop37,live-e2e24arch-docs: OK (8 changed file(s))against base8626664dbuild-client.mjs --check0,ds-bot-patches.mjs checkok (10 patches apply,core/equalsds-bot/+ patches),canonicalok (generateis a no-op)core/test/kanban.test.js16/16 after the change+122/−13, one commit, one parent, not a draftNot run
Testworkflow (CI runsverifyitself; nothing here was run on another machine).packagejob's pack check, typecheck and actionlint, and the smoke test —npm run verifydoes not run them, and this change touches no host code.
Scope and limits
core/src/client/kanban.js— the one rail line and its comment.core/test/kanban.test.js— the new case, the room-row helper in the stateful harness, and theroom fixtures seeded from a Bot board's read.
core/client.jsandpatches/ds-bot/— written bynpm run buildandgenerate, not by hand.docs/subsystems/core-client.md— the P-364 sentence now says one list, never both, and givesthe
1/3→1/2shape;changelog.d/2069-room-rail-double-count.fixed.mdis new.#2045's page cap and hedges, the host's task reads.Checkpoint
{ "pr": 2076, "claim": "Dev-2", "issue": 2069, "summary": "A room board is only reached from a Bot board, whose default read already filled the rail's own list, so the rail counted the room's active cards twice. The rail now counts groupTasks on a room board and own on a Bot board, plus one archive page, and the room fixtures are seeded from a Bot board's read so the old shape cannot pass again. The drawn columns never showed the double count; only the rail did.", "files": [ "core/src/client/kanban.js", "core/test/kanban.test.js", "core/client.js", "docs/subsystems/core-client.md", "changelog.d/2069-room-rail-double-count.fixed.md", "patches/ds-bot/0008-client-bundle.patch", "patches/ds-bot/files/src/client/kanban.js", "patches/ds-bot/files/test/kanban.test.js" ], "checks": { "ran": "TZ=UTC ARCH_DOCS_BASE=8626664d npm run verify", "result": "green", "at": "c99b9c82340b40a68b3c2749cac3978c6957ef91" }, "next": "none — ready for the reviewer" }