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
Direct chat with a friend's Bot: held line looks already sent, approval box detached and late, no waiting state, stale badge (regression of #166 in DMs) #226
Found by self-test on 38c00b40f0c3e6193c7a8abcfb7aad25673f40f7 (main after #217; core, plugins/social, plugins/tree) on @deepseek-ai/dsh@0.2.0-rc.2, Node 24. Two fresh installs on one Linux box: A :3080 (owner SelfA0333, @selfa0333.home, Bots Chief + Helper), B :3081 (owner SelfB0333, @selfb0333.home, Chief). Bot Social https://47-80-69-220.sslip.io. Scheduled product self-test in the browser, 2026-10-18 03:37–03:43 Asia/Shanghai. No model key in this run, so Bot replies were not tested. Screenshots were not saved; screens are described in text.
Repro
A: Helper → Settings → Sharing → invite link. B: + → Add friend → paste → Accept invite (Talk through Chief). Helper shows in B's main list with the Friend's Bot marker.
B: open Helper (A's Bot, granted to B) and send Hello Helper, this is B testing.
Watch B's chat, B's sidebar and A for about 30 s. Then click Approve on B.
Actual
The line looks sent. It shows at once as a normal black sent bubble on the right. There is no held style (dashed/faded) and no "waiting" marker on the bubble.
The approval is late and detached. 10–15 s later a separate box appears above B's composer, not attached to the bubble: Waiting for approval / Chief → Helper / the text / Approve · Always approve · Reject.
The other side sees nothing. A (Helper's owner, the receiver) shows no waiting state at any time.
Badge is stale after Approve. The box changes to Approved, but B's sidebar row keeps Helper · SelfA0333's Bot with the ? badge and the label "Waiting for your approval" for a while after that.
Expected (owner design: in-chat approval)
A held line is shown as held in the chat right away: the bubble itself has the pending style, and the Approve / Always approve / Reject controls are attached to it (owner only).
The other side sees a waiting state for the held line.
After Approve or Reject, the bubble turns into a normal sent line (or a rejected note) and the sidebar badge clears at once.
core/src/client/user-message.js L120: held is computed only when room.origin === 'face-to-face'. A direct chat with a friend's Bot is not a face room, so the held bubble style never applies there.
The card arrives on the approvals poll (list_approvals), not from the send result, which would explain the 10–15 s gap. The sidebar waiting flag seems to clear on a later poll rather than from the decide result.
Activity
fix(social): drop receiver-side person attribution; typed lines stay …
ThinkFlowLab#737: Auto-send clears Bot Social's own hold, so the line…
fix(social): only the blanket Bot Social hold is cleared by Auto-send (…