Skip to content

fix(desktop): recover group replies after renderer restart - #97577

Draft
next-devin wants to merge 1 commit into
NousResearch:mainfrom
next-devin:codex/ten-forward-recovery
Draft

fix(desktop): recover group replies after renderer restart#97577
next-devin wants to merge 1 commit into
NousResearch:mainfrom
next-devin:codex/ten-forward-recovery

Conversation

@next-devin

Copy link
Copy Markdown

Summary

  • persist a recovery marker before dispatching a group-member prompt
  • reconcile interrupted replies after renderer restart with bounded polling and exact-ID deduplication
  • preserve lifecycle safety across overlapping turns, room rename/disband, hydration, and plugin disposal
  • keep recovery/session metadata out of gateway-visible room metadata
  • surface a localized explicit unknown outcome when recovery cannot prove a reply or pass

Validation

  • npm exec --workspace apps/desktop vitest run -- src/plugins/hermes-bots/group-turns.test.ts src/plugins/hermes-bots/group-rounds.test.ts src/plugins/hermes-bots/group-chat-view.test.ts src/plugins/hermes-bots/group-chat.test.ts src/plugins/hermes-bots/plugin-panes.test.tsx — 150 passed
  • npm run typecheck --workspace apps/desktop
  • scoped ESLint on all changed files
  • npm run test:ui --workspace apps/desktop — 6,732 passed across 680 files

@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/desktop Electron desktop app (apps/desktop/*) sweeper:risk-session-state Sweeper risk: may lose/corrupt/mis-associate session or context state labels Aug 29, 2026
@dokterdok

Copy link
Copy Markdown
Contributor

@next-devin, I found this draft while preparing the full Group Chat file/handoff integration in #98307. Your recovery work is the better narrow review cut, so #98307 explicitly credits and links it; the exact-ID, rename/disband, unknown-outcome, and durable owner/hold patterns are also credited in commit history. The integration draft adds file-artifact acknowledgement, attachment rollback, Stop-during-staging, quota, and queued-follow-up cases needed for end-to-end UAT; it is not intended to replace this PR. If #97577 lands first, I will drop/rebase the overlapping recovery core rather than compete with it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/desktop Electron desktop app (apps/desktop/*) P3 Low — cosmetic, nice to have sweeper:risk-session-state Sweeper risk: may lose/corrupt/mis-associate session or context state type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants