Skip to content

Send Reply to Another Chat: pass a reply between Claude and Codex chats (#248) - #339

Merged
kellylford merged 5 commits into
mainfrom
agent-relay
Oct 21, 2026
Merged

kellylford merged 5 commits into
mainfrom
agent-relay

Conversation

@kellylford

Copy link
Copy Markdown
Collaborator

Phase 1 of #248: File, Send Reply to Another Chat (Ctrl+Shift+E), also on a reply's menu in the messages list.

What it does

  • Takes the selected reply in the loaded chat (or the latest reply if one of your messages is selected) and sends it to another of The Chat Place's own chats, Claude or Codex. Desktop app, terminal, hidden and archived chats are never targets; a desktop session's reply can be the source (read only).
  • The message starts with a label: From Codex, another AI agent, forwarded by the user from their chat "…":, so the receiving agent doesn't take it as your own words. You read and edit it in the dialog first.
  • It goes as an ordinary message through the existing send paths (Claude's queue, follow-up and new turn, now factored into _send_claude; Codex's _send_codex_owned, waiting for preparation when the Codex chat isn't ready). It can never answer a question or approve a tool; tests cover both providers.
  • The window goes to the target chat. The source chat is first in the list next time, so Ctrl+Shift+E then Enter sends the answer back.
  • Text that can't be sent is never lost: it's left in the target's reply box, or put on the clipboard when there's no reply box for it.
  • The dialog title says when the source chat is still mid-turn.

Not in this PR

Phase 2 of #248 (agent conversation records, a combined view, automatic relaying with turn limits) has four open questions in the issue and is a much larger build.

Testing

  • New windowless tests: test_relay.py, test_relay_chats.py (Claude and Codex routing, Codex preparation success, failure and leaving the chat, same-chat reload, other providers refused, a relay never answering a Codex approval).
  • New hidden-window tests at the end of test_ui_hidden.py: end to end with the fake runner, queueing behind a pending permission without answering it, a failed send left in the reply box, the target's attachments kept, a target still stopping, the real dialog's checks.
  • Full suite in the test VM (ClaudeTesting-3); see the comment below for the result.
  • Independent code-reviewer review: 11 findings, then 2 more on re-review, all fixed.

Visual check (#155)

New probe surface relay. Ran light-100 and hc-aquatic-100 in the VM: no layout problems flagged. ui_compare: 2 new, 0 changed. Pictures reviewed and accepted into the baseline, with a descriptions.md entry. Measured contrast: 4.53:1 for the light selected row (Windows' highlight), 7.89:1 for High Contrast's selected row and default button, 16:1 or more elsewhere.

Docs: README, user guide (assets/user-guide.md + regenerated docs/), SHORTCUTS, and release-notes/v0.1.10.md.

🤖 Generated with Claude Code

kellylford and others added 4 commits October 21, 2026 01:18
…ts (#248)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…; Codex approval test (#248)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#248)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kellylford

Copy link
Copy Markdown
Collaborator Author

Test results for 8569c2d:

  • CI: pytest passed on Windows and macOS.
  • Test VM (ClaudeTesting-3): test_ui_hidden.py 603 passed, 7 skipped, 1 failed. The failure is test_from_github_lists_filters_and_uses_a_clone: the clean VM has no git (or internet), and the test passes in CI. The rest of the suite: 1887 passed, 27 skipped.
  • An earlier push hung in test_alt_enter_in_the_messages_shows_the_message_properties, which presses the messages menu's last item expecting Properties. The new item now goes above Properties, as on the session list's menu (8569c2d).

@kellylford
kellylford deployed to azure-signing October 21, 2026 07:45 — with GitHub Actions Active
@kellylford
kellylford merged commit c38b24c into main Oct 21, 2026
8 checks passed
@kellylford
kellylford deleted the agent-relay branch October 21, 2026 07:50

This branch was successfully deployed

1 active deployment
azure-signing — 8569c2d0 Deployed Oct 21, 2026 by kellylford via Windows #417
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