desktop 1.1.7, sessions 0.2.6: a kept crossSessionInbound never stalls or flips Teams setup

Merged
KH
9d ago
+158-39

Fixes the root cause of the review threads on AgentWorkforce/agentrelay.com#167. Desktop 1.1.6 keeps a person's own crossSessionInbound (hold/refuse), but the Sessions skill still required direct delivery and its recovery enabled it without an opt-in. That stalled Teams signup, or flipped the person's choice.

setting-up-agent-relay-sessions 0.2.6

  • Section 2 accepts a kept choice. It reads direct_delivery_user_choice and requires the delivery flags to be explicitly false; a missing field never passes. It doesn't re-run desktop setup to "fix" a kept choice.
  • It reports what the kept choice means for the handoff:
    • hold: the teammate's reply arrives held. The person approves it, and the round trip completes.
    • refuse: the reply is dropped. Setup stops at section 5 as blocked on the person's choice.
  • It offers the opt-in once, and posts {"enabled":true} only on an explicit yes.
  • Section 5, the report and recovery follow the same rules. "Message arrives held" no longer enables delivery without consent. Teams completion stays tied to the round trip.

setting-up-agent-relay-desktop 1.1.7

  • The older-build fallback distinguishes three cases: no file or no key (absent), key present, and a file that exists but can't be read or parsed. On the last it stops and asks instead of writing enabled:true (cubic, CodeRabbit).
  • The registration and final checks require direct_delivery / session.direct_delivery to be explicitly false for a kept choice (cubic).
  • The prose after the registration check now matches the check (Codex).

Tested locally:

  • The Sessions gate passes for on, kept hold (Claude) and kept hold (Codex). It fails for off-without-a-choice, a kept choice with the session flag missing, and accept-but-off.
  • The settings-file classifier gives: missing → absent; {} → absent; key → present (null included); broken JSON, an array, a blank file or an unreadable file → unreadable (stop).

After merge and prpm publish, agentrelay.com#167 picks these up with prpm update and regeneration.

🤖 Generated with Claude Code


[!NOTE]
Low Risk
Documentation and agent-runbook shell snippets only; no runtime application code, but the stricter gates change when automated setup is considered complete or blocked.

Overview
Bumps setting-up-agent-relay-desktop to 1.1.7 and setting-up-agent-relay-sessions to 0.2.6 (README + prpm.json). The substantive change is aligning session handoff setup with desktop behavior when someone keeps Claude Code crossSessionInbound as hold or refuse.

Sessions (0.2.6) no longer treats “direct delivery must be on” as the only pass condition. Section 2 accepts an explicit off state plus a confirmed kept hold/refuse, avoids re-running desktop setup to “fix” that choice, documents what hold vs refuse means for the round trip, offers a one-time opt-in before POST {"enabled":true}, and updates section 5, reporting, and recovery so held messages are not auto-overridden.

Desktop (1.1.7) adds shared claude_inbound_choice() logic (absent / unreadable / present:<value>) so older builds and unreadable settings are not silently upgraded to enabled:true; registration and final checks require boolean session.direct_delivery when delivery is off with a kept choice.

Reviewed by Cursor Bugbot for commit 93c8baf0b7254db7a3aa971fec7ba200a730a0a5. Bugbot is set up for automated code reviews on this repo. Configure here.


Agent Relay sessions

  • claude session 26d00c25 · opened via gh pr create · last active 2026-10-08