fix(daemon): a needsReply report resumes the parent session-only, never as a conversation post - #985
Conversation
There was a problem hiding this comment.
Approved. I found no blocking issues in the trusted eaa18e9e6cb550c3dec506667159b361d6e74096 revision.
The daemon-only parentReport marker is applied consistently to local session replies and cross-daemon lineage replies, and it is checked both before minting a canonical conversation-post ID and before live inbound fan-out. Ordinary unmarked agent-initiated wakes retain the existing #926 behavior.
Verification completed:
- daemon TypeScript typecheck
- 187 relevant daemon tests across message-agent, webchat, inferred-reply, and durable-inbox behavior
- 4 scripted webchat night-collection/Werewolf tests
- ESLint and Prettier checks on all changed files
sent by review-bot (Codex · gpt-5.6-sol) · open in session
…er as a conversation post (#966) The niche half of the #966 scoping: replyToSession's local branch, the relay's lineage-reply branch, and the #800 inferred reply now stamp their delivery parentReport, and the #926 agent-wake inbound rendering (postAgentWakeInbound + its transcriptPostId mint) skips report deliveries — a child's private report into a webchat-conversation parent is injected into the parent's transcript and turn exactly as before, but is no longer committed as a live conversation post fanned to the roster. Measured before the fix: every role ack and night statement of the webchat Werewolf game ('We kill player-4 tonight.' included) was room-visible. Unmarked agent wakes keep the #926 behavior untouched (the existing daemon-webchat pin still passes verbatim). Sanctioned pin flips in the scripted games: postedPublicly false per reply, privateReportsPostedPublicly === 0 in both Werewolf games — previously pinned > 0 as the measured surface. The deeper half (report rows in the shared conversation transcript remain readable to peers' catch-up) stays open on #966 by design — it needs the report-row scoping decision documented there. Refs #966, #926. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
eaa18e9 to
572c1ca
Compare
There was a problem hiding this comment.
Approved. I found no blocking issues in the synchronized 572c1cab62bc0036e3e4dfb5a78deb990e81dc5f revision.
I verified the exact trusted head and reviewed the full new-base-to-head patch. The daemon-only parentReport marker remains consistently applied to local session replies and cross-daemon lineage replies, and it prevents both canonical conversation-post ID minting and live inbound fan-out while leaving ordinary unmarked agent wakes unchanged. The background-wake change visible in the synchronization delta is already part of the new base and does not conflict with this patch.
Verification completed:
- daemon TypeScript typecheck
- 187 relevant daemon tests across message-agent, webchat, inferred-reply, and durable-inbox behavior
- 4 scripted webchat night-collection/Werewolf tests
- ESLint and Prettier checks on all changed files
sent by review-bot (Codex · gpt-5.6-sol) · open in session
What
Stacked on #984 (retargets to
mainwhen it merges). The niche half of the #966 scoping (the deeper transcript-row half stays open there by design):replyToSession's local branch, the relay's lineage-reply branch, and the #800 inferred reply stamp their deliveryparentReport, and the #926 agent-wake inbound rendering (postAgentWakeInbound+ itstranscriptPostIdmint) skips report deliveries.A child's private report into a webchat-conversation parent is injected into the parent's transcript and turn exactly as before — but is no longer committed as a live conversation post fanned to the roster. Measured before the fix: every role ack and night statement of the real webchat Werewolf game ("We kill player-4 tonight." included) was room-visible (
privateReportsPostedPublicly: 8–11per game).Unmarked agent wakes keep #926 untouched — the existing daemon-webchat pin ('an agent-initiated wake posts the INBOUND message live') passes verbatim; only report-stamped deliveries change.
Sanctioned pin flips:
postedPublicly === falseper reply in the night-collection cell,privateReportsPostedPublicly === 0in both scripted Werewolf games — both previously pinned> 0as the measured surface.Refs #966 (remaining half documented there), #926.
🤖 Generated with Claude Code