fix(orchestrator): Preserve error occurrences through session cleanup#19

draft1
contrib/ctm/legacy-wake-presentation
contrib/ctm/error-occurrence-preservation
openedSep 27, 2026byMMike Olson
View on GitHubTwo-way sync enabledPR last imported 3h ago

What Changed

Thread error banners on the web now track each failure as its own occurrence. A provider error stays visible after its session is released or cleaned up, and keeps its original time instead of looking like a new failure. Dismissing a banner hides that occurrence only, so a later failure with the same message appears again. Dismissing a local error reveals a newer provider error hidden behind it.

For Pi, a failure the provider already reported survives a clean end of its event stream.

Why

Session cleanup cleared or restamped the thread's error, so banners disappeared while the failure still mattered, or came back after being dismissed. Dismissal was keyed by message text alone, which also hid genuinely new failures that happened to repeat the same text.

UI Changes

The error banner looks the same; only when it appears and stays dismissed changes. No screenshots are attached.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Added 1 commit

  • fix(orchestrator): Preserve error occurrences through session cleanup145aade