Repository navigation
timeline: an unanswered handoff row reports an exact total wait of 0 ms - #2420
Conversation
The wait table under the communication map printed `fmtDur(edge.totalWaitMs ?? 0)`. The host sends no `totalWaitMs` for an edge with no answer, so the row read `Answered 0 / Not yet 1 / Median – / Slowest – / Total wait 0 ms`: a measured zero beside a request that is still waiting. `waitRows` keeps the missing value missing (the sort still puts unanswered rows last), and the cell prints `–` the way Median and Slowest already do.
|
Verdict: PASS at bc8b1e1 Ran at this tip: Reviewed tip CI at this tip: Red first, one pass: over the tip tarball with What changed is what the issue asked for: Docs: Not run: Format: |
Fixes #2419
Owner: Dev-1
Written-by: Dev-1
Reviewer: Birfy
Claim-Id: 6da76e0929ab4a47a4084bc9c999de76
Branch:
dev/1-timeline-wait-total(head repoHugoXK/FlyBot)Base:
dd9c5a055471fdf268024b721c605a8f00881a16(live main)Tip:
bc8b1e1fd394f44fcf18b5b8d7c4342b07291b12— verified commitcf40e64031ce23f645b9a1d3fbb0957d2ca7bfcc(treef075b54093439b3be24259b0310e4d92c3e80407, single parentdd9c5a055471fdf268024b721c605a8f00881a16); the pushed head was generated from that same tree by the push pathTree:
f075b54093439b3be24259b0310e4d92c3e80407Diff: 4 files +22/−4 — hand-written 4, generated 0
Tier: T2
What changed
plugins/timeline/client.js:waitRowsmapped a missingedge.totalWaitMsto0(edge.totalWaitMs ?? 0), and the row then printed that zero throughfmtDur. The host sends nototalWaitMsfor an edge with no answered request (plugins/timeline/src/window.js:291buildsmedianMs,maxMsandtotalWaitMsonly whenwaits.length), so a handoff that was still waiting readAnswered 0 · Not yet 1 · Median – · Slowest – · Total wait 0 ms: two dashes and a measured zero on the same exchange. The row now keeps the value undefined and the cell prints–, the same shape Median and Slowest already used; the sort takes?? 0so unanswered rows still come last.plugins/timeline/test/panel.test.js: red-first case — a window with one request and no reply must give a row withtotalMs === undefinedand a rendered row of['Chief','Writer','1','0','1','–','–','–'].docs/subsystems/timeline.md(the page that ownsplugins/timeline/) andchangelog.d/2419-timeline-wait-total.fixed.md: the table prints–wherever a number does not exist yet.core/, nocore/client.js, nopatches/(the patch trees are byte-identical;generatewrites nothing).Ran
Red first, on clean
dd9c5a05with only the new test added —cd plugins/timeline && TZ=UTC node --import ./test/resolve.mjs --test test/panel.test.js:With the change:
# tests 23 / pass 23 / fail 0.At this tree (
f075b54093439b3be24259b0310e4d92c3e80407, verified commitcf40e64031ce23f645b9a1d3fbb0957d2ca7bfcc):TZ=UTC ARCH_DOCS_BASE=dd9c5a05 npm run verify— exit 0, 4833/4833 (core 2845, social 570, tree 132, timeline 141, workflow 411, root 671, interop 37, live-e2e 26), fail 0 / cancelled 0; core lint 76 warnings / 0 errors, plugin lint 36/9/2/16 warnings / 0 errors, interop lint 1 warning / 0 errors, live-e2e lint 0/0.ARCH_DOCS_BASE=dd9c5a055471fdf268024b721c605a8f00881a16 npm run arch-docson the committed tree —arch-docs: OK (4 changed file(s)).node scripts/ds-bot-patches.mjs generatetwice — second run no-op,patches/ds-bot/*.patchbyte-identical (72a25132…),git status --porcelainempty.node scripts/ds-bot-patches.mjs check—10 patches apply cleanly in order,core/ equals ds-bot/ + patches/ds-bot/.node scripts/ds-bot-patches.mjs canonical—patches/ds-bot/ is what generate writes (generate is a no-op).node core/scripts/build-client.mjs --check— exit 0 (part ofverify).node .github/scripts/changelog.mjs check—32 fragment(s) in changelog.d/ are well formed.node .github/scripts/check-empty-catch.mjs— exit 0.node .github/scripts/check-mojibake.mjs—0 occurrences of U+FFFD in 1466 text file(s).dd9c5a05rules with each changed file's patch content:risk-tier: T2; basis: plugins/timeline/client.js=T2, plugins/timeline/test/panel.test.js=T2, changelog.d/2419-timeline-wait-total.fixed.md=T1, docs/subsystems/timeline.md=T0;why: [](no rule matched the patch content); 26 changed lines / 4 non-generated files, no generated patch.Not run
index.js, no request path, no client bundle.totalWaitMsfor an unanswered edge, which is what the panel now reads correctly.Tip
Tip
bc8b1e1fd394f44fcf18b5b8d7c4342b07291b12(treef075b54093439b3be24259b0310e4d92c3e80407, single parentdd9c5a055471fdf268024b721c605a8f00881a16= live main), 4 files +22/−4:changelog.d/2419-timeline-wait-total.fixed.md +1/−0,docs/subsystems/timeline.md +1/−1,plugins/timeline/client.js +5/−3,plugins/timeline/test/panel.test.js +15/−0;patches/ds-bot/unchanged,core/client.jsuntouched).Files
changelog.d/2419-timeline-wait-total.fixed.md,docs/subsystems/timeline.md,plugins/timeline/client.js,plugins/timeline/test/panel.test.js.Checkpoint
{
"pr": 2420,
"claim": "Dev-1",
"issue": 2419,
"summary": "The wait table under the timeline's communication map printed
Total wait 0 msfor a handoff nobody had answered yet, besideNot yet 1and two dashes. The host sends nototalWaitMsfor an edge without an answer, so the panel turned the missing number into a measured zero.waitRowskeeps it missing and the cell prints\u2013, the way Median and Slowest already did, while the sort still puts unanswered rows last.","files": [
"plugins/timeline/client.js",
"plugins/timeline/test/panel.test.js",
"docs/subsystems/timeline.md",
"changelog.d/2419-timeline-wait-total.fixed.md"
],
"checks": {
"ran": "TZ=UTC ARCH_DOCS_BASE=dd9c5a05 npm run verify (4833/4833) + arch-docs + patches check/canonical + generate no-op + changelog/empty-catch/mojibake",
"result": "green",
"at": "bc8b1e1fd394f44fcf18b5b8d7c4342b07291b12"
},
"next": "waiting on Test's independent run and Birfy's Verdict: PASS at this tip; then the Lead sends the queue request"
}