Commit Graph
9 Commits
Author SHA1 Message Date
Jaret Bottoms 30e32cb11e fix(cron): restrict reverse root-alias match to proven root names
The round-3 equivalence shortcut accepted any origin when the active
profile was literal 'default', so another profile's cron marker was
treated as active-owned and never cleared on switch (reverse
under-clear). Match now requires the origin name itself to resolve to
the root profile: the literal 'default' alias, or a roster entry
flagged is_default. Unknown names fall back to exact-name semantics.

Adds profile-a -> default regressions covering tagged and
legacy-untagged old-profile markers (cleared) alongside current-root,
renamed-root-alias, and non-cron markers (kept), plus a no-roster
fail-closed case.
2026-07-12 19:20:53 +00:00
Jaret Bottoms 617c1f451d fix(cron): drop stale pre-switch session-list completion marks
Greptile #5975 P1: capture _cronPollGeneration before /api/sessions await and
re-check in _applySessionListPayload before completion-unread marking so a
delayed profile-A response cannot remount cron dots after switch to B.
Also skip inactive-profile cron marks in single-profile mode. Tests cover the
race, positive path, and collateral call-shape contracts.
2026-07-12 19:20:53 +00:00
Jaret Bottoms b17e76d171 test: allow optional meta arg in polling unread mark assertion
CI shard 2 failed test_issue856 structural check that required the exact
two-arg _markSessionCompletionUnread call; #5975 now passes cron meta.
2026-07-12 19:20:53 +00:00
Jaret Bottoms 4c5a21cef3 fix(cron): close untagged persisted unread leak + root-alias over-clear
Address hermes-webui #5975 re-gate: tag session-list completion markers for
cron rows, resolve/migrate legacy untagged markers from sidebar metadata, and
use default/renamed-root profile equivalence when clearing inactive-profile
cron dots so current-root markers stay unread.
2026-07-12 19:20:53 +00:00
Jaret Bottoms 991b884ed2 fix(cron): clear persisted unread markers on profile switch
Gate review on #5975: sticky all-profile sidebars still showed old-profile
cron dots because hermes-session-completion-unread was not profile-scoped.
Tag cron markers with source+profile, drop inactive-profile cron markers in
the shared switch reset (both paths), and leave ordinary chat unread alone.
2026-07-12 19:20:53 +00:00
Jaret Bottoms 2844a5ad31 no-mistakes(document): Document profile-scoped cron unread alerts 🔧🟠 2026-07-12 19:20:53 +00:00
Jaret Bottoms a8ef99b830 no-mistakes(review): Reset cron unread state on alternate profile switches 🔧🟠 2026-07-12 19:20:53 +00:00
Jaret Bottoms 67e527fd74 fix(cron): guard profile-switch polling races 2026-07-12 19:20:53 +00:00
Jaret Bottoms 1a64fc68dd fix(cron): scope unread badges to active profile 2026-07-12 19:20:53 +00:00