Skip to content

feat(chat): reply to something in a bot's chat - #153

Merged
httpsphl merged 1 commit into
mainfrom
feat/reply-to
Oct 4, 2026
Merged

httpsphl merged 1 commit into
mainfrom
feat/reply-to

Conversation

@httpsphl

@httpsphl httpsphl commented Oct 4, 2026

Copy link
Copy Markdown
Owner

Part 5a of the ideas from 2026-10-04 (reactions come next, in 5b).

Daemon

  • messages.send takes replyTo (a chat item id). The item must be in that bot's chat (not_found otherwise) and be a reply or an inbound message with text (validation).
  • The message keeps replyTo { itemId, text }, the text on one line and cut at 300 characters (migration 0018_message_reply.sql, no foreign key since chat items leave before messages on delete).
  • The bot reads Replying to: "<quote>" above the owner's words (spec 9.3).

App

  • Hovering a bot's reply or another bot's message shows a reply button in its corner (keyboard: on focus).
  • The quote goes over the composer ("Replying to Scout", X, Esc cancels) and the field takes the focus.
  • Sent, the quote shows over the owner's bubble (Markdown marks taken off); a click jumps to the quoted item.

Spec 9.3, 11.2, 12 and 15.3 updated.

Test plan

  • cargo fmt, clippy -D warnings, cargo test --workspace (new tests/reply_to.rs, envelope and courier render tests)
  • pnpm check (new reply.test.tsx)
  • Preview: reply to Scout's summary, quote over the bubble
  • Real Claude: reply to a bot's answer and check it understands which one you mean

The owner can reply to one of the bot's replies, or to a message it got.
messages.send takes replyTo; the daemon checks the item is the bot's and
keeps its text on one line (migration 0018), and the bot reads it quoted
above the owner's words. The app shows the quote over the composer and
over the owner's bubble, which jumps to the quoted item.
@httpsphl
httpsphl merged commit 90d6b76 into main Oct 4, 2026
4 checks passed
Sign up for free to 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