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 c204856
Browse filesBrowse the repository at this point in the historyBrowse files
nplog 1.3.0: make --plugin startup navigable; fix two hidden-boundary bugs
Reported: load --plugin, wait, trigger a command, press an arrow -- "no
run boundaries". Reproduced, and it was two separate bugs plus a
missing affordance.
1. Idle gaps were measured against stamps[i-1] strictly. nplog's own
notices carry no timestamp, and NaN on either side of the subtraction
makes the delta NaN -- so the lull SPANNING a notice was invisible.
That killed precisely the boundary that matters: the reset notice
sits between the old run's last line and the new run's first, so the
gap separating them never registered. Now measured against the
nearest real timestamp via prevFiniteStamp(), which walks past
stampless entries (bounded, so it can't go quadratic).
2. buildRows()'s anti-stacking guard suppressed any rule sitting
directly below another. That was correct when only run/idle rules
were `sep` rows, but 1.1.2 made notices rules too -- so the reset
notice silently swallowed the idle rule for the gap right after it.
They now merge into one navigable rule carrying both facts:
"_MCP-console.log was reset by NotePlan (new run) ... 1h40m idle".
3. Whatever is already in _MCP-console.log at startup is the tail of a
run that began before nplog did. That's now book-ended: a rule for
where retained output starts (nothing earlier survives NotePlan's
overwrite) and one for "nplog started watching here -- <clock>". The
latter is a navigable boundary, so the arrows have somewhere useful
to land even before the first reset.
pushNotice() gained a boundary flag, carried in the line text alongside
the existing sentinel rather than in a parallel array -- same reasoning
as before (see the ^L desync in 1.1.1).
Verified in pty tests: the reported scenario now yields run 2/2 (the
merged reset+idle rule) and run 1/2 (watch start); the pre-existing
4-run idle navigation still steps correctly in both directions; main-log
--json output is unchanged.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
0 commit comments