You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 40a5d74
Browse filesBrowse the repository at this point in the historyBrowse files
Clear the second review's findings, though it approved
**A derive that throws was retried for ever, silently.** `sweepMissingAnalyses`
discarded `analyseMissing`'s `skipped` map, so a video whose derive throws — an
imported map with `holeRadius_px: 0` reaches this, since the map file accepts
any finite radius and `geometry.ts` demands a positive one — was retried on
every notification, with nothing said and the figures reporting only "1 of 3
videos not analysed yet" beside a button to the Track step that cannot help,
because the video is tracked. The failures are now remembered until the maze map
or the parameters change, announced once, and named on the figures' own line
with the Track button hidden: the Track step fixes "not tracked", not this.
**The try/catch added last commit was dead under test.** happy-dom returns null
from `getContext`, so no test in the suite ever entered the draw path, and the
assertion I wrote about the cards after a failure ("still current, not stale")
was checking captions written before the try block from `describe()`, which
cannot throw — it passed whether or not `draw()` threw. That is the same shape
of error as the tier test the first pass caught. The path is now driven with a
stubbed context and a figure whose `draw` throws, asserting the failed card's
note, its disabled Save button and the next card drawing normally.
Nits: the comment claiming 3.4 million cells understated it by three orders of
magnitude (the platform is 92 cm across, not 46, so 0.001 cm asks for 8.46e9
cells); `CELL_CM_RANGE` no longer claims any positive number works;
`trimNumber`'s comment no longer promises behaviour the clamp makes
unreachable; and `app-smoke.spec.ts` names the button this chunk actually
shipped rather than one that never existed.
One limitation recorded: a maze nudge re-derives the whole cohort from a step
the user is not on — 10.5 ms for three videos, but roughly 0.4 s for sixty.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HLagxs47Fmp7TGEidN8wqk
/** The video on screen; null when none can be shown. */
85
85
videoId: string|null;
86
+
/**
87
+
* Videos that are tracked but whose analysis could not be computed at all, and
88
+
* why. Different from "not analysed yet": the Track step cannot help, so the
89
+
* reason is shown and the button to it is not (D16 — say what went wrong
90
+
* rather than a true-but-misleading count).
91
+
*/
92
+
problems?: readonlystring[];
86
93
}
87
94
88
95
exportinterfaceReviewFiguresCallbacks{
@@ -365,10 +372,20 @@ export function createReviewFigures(
365
372
}
366
373
367
374
functionrenderMissing(): void{
375
+
constproblems=current.problems??[];
368
376
constline=notAnalysedInFigures(current.session);
369
-
missing.hidden=line===null;
370
-
missingLine.textContent=line??'';
377
+
missing.hidden=line===null&&problems.length===0;
371
378
const{ notAnalysed, total }=notAnalysedCount(current.session);
379
+
380
+
if(problems.length>0){
381
+
// The Track step cannot fix a derive that throws, so it is not offered.
382
+
missingLine.textContent=`${problems.length} of ${total} video${total===1 ? '' : 's'} could not be analysed, so ${problems.length===1 ? 'it is' : 'they are'} not in these figures: ${problems.join('; ')}.`;
383
+
trackButton.hidden=true;
384
+
return;
385
+
}
386
+
387
+
missingLine.textContent=line??'';
388
+
trackButton.hidden=line===null;
372
389
trackButton.setAttribute(
373
390
'aria-label',
374
391
`Go to the Track step to analyse the ${notAnalysed} of ${total} videos that are not in these figures`,
0 commit comments