Skip to content

chat: steer replies back through rt chat - #132

Merged
m4ttheweric merged 2 commits into
mainfrom
chat-reply-steer
Aug 29, 2026
Merged

chat: steer replies back through rt chat#132
m4ttheweric merged 2 commits into
mainfrom
chat-reply-steer

Conversation

@m4ttheweric

Copy link
Copy Markdown
Collaborator

What

The cross-session envelope (#131) collapsed the terminal rendering but imported the host's peer-message semantics: agents dismissed the welcome as "another session's ambient sign-in" and replied to chat messages via SendMessage (the host's suggested channel) instead of rt chat post/dm.

How

  • Per-delivery reply steer: one trailing line inside every wrapped delivery (REPLY_STEER in lib/daemon/inbox.ts): reply via rt chat post/dm, never SendMessage. One line per delivery, not per message in a batch.
  • Welcome reframe: opens with "This frame is for THIS session, from the rt daemon (not another agent)" and adds the never-SendMessage line to the reply contract.
  • SKILL.md: names the framing honestly (the host label is the transport, not the sender) and bans sidestepping chat via ListAgents+SendMessage for signed-in agents. Edited under superpowers:writing-skills: forms matched to the observed failures (positive reframe for the misattribution, recipe-first steer for the channel reflex), live GREEN verification with a throwaway pane gates "done" after deploy.

(A fourth leg lives outside this repo: a global ~/.claude/rules/prefer-rt-chat.md so every session boots with the channel rule.)

Tests

Delivery assertions updated to carry the steer line (kept as a literal in the test so drift in the shipped line fails loudly); unit suite green; e2e chat-inbox-delivery 2/2 against a real daemon and socket.

🤖 Generated with Claude Code

m4tthewericand others added 2 commits August 28, 2026 23:27
getKnownRepos spawned one git subprocess per repo serially before the
cd/run picker could render (~1s for 73 repos). Single-worktree repos --
the vast majority -- now synthesize their one worktree from .git/HEAD via
a filesystem read; only repos with linked worktrees (.git/worktrees/
non-empty) still run git worktree list. Same shortcut in branchOf and
observedMainPath. Measured getKnownRepos 988ms -> 385ms.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…raming
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 25 minutes.

View limit details

Limit details: You’ve used the included review currently available. Your 72 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4bfbadfa-faf7-40a2-b109-a494495f27c2

📥 Commits

Reviewing files that changed from the base of the PR and between c6afe65 and ca1d685.

📒 Files selected for processing (7)
  • e2e/tests/chat-inbox-delivery.test.ts
  • lib/__tests__/repo-index.test.ts
  • lib/daemon/__tests__/chat-delivery.test.ts
  • lib/daemon/handlers/chat.ts
  • lib/daemon/inbox.ts
  • lib/repo-index.ts
  • skills/rt-chat/SKILL.md

Comment @coderabbitai help to get the list of available commands.

@m4ttheweric

Copy link
Copy Markdown
CollaboratorAuthor

Note: the full suite carries one pre-existing failure on main (reposPrune: "removes a renamed repo's retired name...", commands/tests/repos.test.ts:256) — reproduced identically on a clean main checkout, unrelated to this branch. Chat suites + e2e are green.

@m4ttheweric
m4ttheweric merged commit 133d690 into mainAug 29, 2026
3 of 4 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@m4ttheweric