Repository navigation
fix(client): read one task row in the Inbox and on the Board - #1746
Merged
Merged
Conversation
The Inbox showed a task that was never claimed as "In progress" and aged it from its creation, so the same rows read "In progress · for 63h" while the Board painted them Not started (0/5). The Inbox now reads the row through the board's own column mapping, so a not-started row is not an In progress card, and a card ages from the moment the row started instead of its creation (#1739). Docs-not-needed: the Inbox and the Board now share the existing task-row mapping; no subsystem contract changes, only the client rendering of it.
The fragment is assembled behind a bullet, so it carries no leading "- " (#1739). Docs-not-needed: the Inbox and the Board now share the existing task-row mapping; no subsystem contract changes, only the client rendering of it.
The generated 0008 patch ended two lines early, so a strict applier read blank lines as hunk lines (#1739). Docs-not-needed: the Inbox and the Board now share the existing task-row mapping; no subsystem contract changes, only the client rendering of it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Written-by: Claim 8c6c
Fixes #1739
Owner: Chief
Reviewer: Reviewer
Tip SHA: 55b1100
Base: 4916bd5
Docs-not-needed: the Inbox and the Board now share the existing task-row mapping; no subsystem contract changed, only the client rendering of it.
What was wrong, and which side changed
The Inbox was the side that read the row wrong. A task row that was never claimed carries
status: 'open'(or'claimed'), whichsrc/shared/task-board.js:columnOfmaps to the board columnnot-started— so the Board painted the reported five cards Not started, counter 0/5, and that read was correct. The Inbox had its own status derivation insrc/client/inbox.js: it pushedopen,claimedandworkingrows into the In progress group and aged every one of them fromtask.createdAt. That is exactly the reported picture: five never-started rows, created 63h earlier, shown as "In progress · for 63h" while the Board said Not started.So this PR changes the Inbox read, not the Board and not the task row: the Inbox now classifies a row through
columnOf(task)(the one mapping the Board already uses), and a card's age comes from the row's own clock — theworkingtransition in the row'sactorslog, falling back to its ownupdatedAt— never from its creation and never from a wall clock or session/turn recency.open/claimedrowcreatedAtnot-started)workingrowcreatedAt(63h)workingtransitionFiles:
core/src/client/inbox.js(the read),core/client.js(rebuilt bynpm run build),core/test/inbox-task-status.test.js(the test),patches/ds-bot/(the generated mirrors and patch 0008), one changelog fragment.Red first
4916bd5f,node --test test/inbox-task-status.test.js→ 3 failing (a never-started row appears in In progress; the Inbox progress list is not the board's in-progress column; the age is the row's creation).core/src/client/inbox.jsback to the base blob is what I ran for the red evidence.What I ran
cd core && node --test test/inbox-task-status.test.js— 3/3 green at the tip, 3/3 red on the base blob.cd core && npm run build—core/client.jsregenerated, not hand-edited.node scripts/ds-bot-patches.mjs check—core/ equals ds-bot/ + patches/ds-bot/.npm run verifyat the repo root — see theRannote below.node --test ".github/scripts/*.test.mjs"at the repo root — the strict git-free applier test (#978) and the changelog check pass; the twoupdate-branchtests that clone/fetch cannot run in this sandbox (no git transport), they pass on CI.Not run
inboxModel, the same entry the Inbox renders from.{ "pr": 1746, "claim": "Chief", "issue": 1739, "summary": "The Inbox classified a never-claimed task row as In progress and aged it from its creation, so five rows read 'In progress for 63h' while the Board painted the same rows Not started. The Board's read was correct; the Inbox now classifies through the shared columnOf mapping and ages a card from the row's own working transition. A row that never started gets no card and no age. Test covers both paths over one set of rows and is red on the base blob.", "files": ["core/src/client/inbox.js", "core/client.js", "core/test/inbox-task-status.test.js", "changelog.d/1739-task-status-one-source.fixed.md", "patches/ds-bot/files/src/client/inbox.js", "patches/ds-bot/0008-client-bundle.patch"], "checks": { "ran": "cd core && node --test test/inbox-task-status.test.js; node scripts/ds-bot-patches.mjs check", "result": "green", "at": "55b1100c0e8368cbd8f639c449445986cc59e963" }, "next": "Reviewer: judge the Inbox read against columnOf; then queue check, tests-ok and merge." }