Skip to content

fix(desktop): group chats stop leaking (empty) sentinels and stop swallowing real answers behind (pass) (#94308, #94376) - #96239

Merged
teknium1 merged 5 commits into
mainfrom
salv/s5-sentinel-protocol
Aug 27, 2026
Merged

teknium1 merged 5 commits into
mainfrom
salv/s5-sentinel-protocol

Conversation

@teknium1

Copy link
Copy Markdown
Collaborator

Summary

Group-chat turns stop leaking protocol sentinels and stop swallowing real answers (#94308, #94376). Consolidates the two halves of the sentinel-protocol seam, both filed Aug 25:

Validation

Result
vm suite 604 (main) → 607 → 609/609 after both halves
sabotage one test per half fails with its hunk reverted
eslint clean (2 no-unused-vars in the raw test file fixed in follow-up)

Live A/B (real Electron + backends, room "大司命, Testbot"): on main, an (empty) reply renders as a literal (empty) bubble; on this branch the same flow renders "⚠️ The model returned no response…" instead.

Main Fix
raw sentinel friendly notice

Fixes #94308, #94376. Source PRs #94310 + #94386 to be closed with credit after merge.

Infographic

Sentinel protocol

@teknium1
teknium1 force-pushed the salv/s5-sentinel-protocol branch from 18fd070 to 18b74cc Compare August 27, 2026 09:35
@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/desktop Electron desktop app (apps/desktop/*) labels Aug 27, 2026
chelsealong and others added 5 commits August 27, 2026 03:15
…pass)

runGroupChatMemberTurn (and harvestStrandedGroupReply) selected only the
last assistant message in a finished turn. A Codex intent-ack continuation
nudge can land a complete, substantive room answer and then get a
synthetic "(pass)" reply to the nudge itself — the terminal message picked
by the old scan, which silently discarded the real answer (#94376).

Both call sites now scan the messages appended this turn for the last
substantive (non-pass) assistant reply, falling back to a pass only when
no substantive answer exists in that window.
…path

Address review feedback on #94386: the new tests only exercised
runGroupChatMemberTurn's use of pickGroupTurnReply. Add the analogous
case for harvestStrandedGroupReply (substantive answer -> synthetic
continuation nudge -> (pass) tail) and document the pass-only tie-break
(newest wins) in pickGroupTurnReply's docstring.
… group chat

The agent loop writes an internal "(empty)" sentinel when the
nudge/prefill/empties/fallback ladder all fail. The gateway converts it
into a user-friendly notice at delivery, but the desktop group-chat
bridge appended the raw sentinel into the room log (seen posting
"(empty)" in a Bot Mode group room), and it synced to the shared
ui_meta for mobile.

Normalize at the single choke point, appendGroupChatEntry, mirroring
gateway/run.py substitution so group chat and gateway surfaces show the
same text. (pass)/empty silence semantics unchanged. Includes a
regression test proven to fail on the pre-fix code.

Fixes #94308
@teknium1
teknium1 force-pushed the salv/s5-sentinel-protocol branch from cba5609 to 6b6f876 Compare August 27, 2026 10:15
@github-actions

github-actions Bot commented Aug 27, 2026 •

Copy link
Copy Markdown

૮ >ﻌ< ა ci review

ran on 6b6f876 — chore(contributors): map aydinhrrs@gmail.com -> RibatTRW

⚠️ Warnings

CI timings · View report · View job

Wall time 5m14s vs 1m11s (+342.3%). 2 job(s) slower, 2 faster,

  • OSV scan / Emit review status: +82.0s
  • Detect affected areas: -38.0s
  • OSV scan / Scan lockfiles / osv-scan: +12.0s
  • All required checks pass: -2.0s

OSV vulnerability scan · View job

6 known vulnerabilities found in pinned dependencies.

How to fix:

Review the findings in the Security tab. Update the affected dependencies if a patched version is available.

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 type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Desktop Bot Mode group chat appends the raw "(empty)" sentinel as a bot message

4 participants