Skip to content

fix(j5): agent-to-human sends must be asks or replies - #57

Merged
Jacksondr5 merged 4 commits into
j5/mainfrom
j5/issue-44-plain-send-truthful-description
Sep 4, 2026
Merged

Jacksondr5 merged 4 commits into
j5/mainfrom
j5/issue-44-plain-send-truthful-description

Conversation

@Jacksondr5

@Jacksondr5 Jacksondr5 commented Sep 2, 2026 •

Copy link
Copy Markdown
Owner

Posted by an AI agent on Jackson's behalf

Plain human-directed sends created durable ghost traffic: no human surface and no accountable obligation. Product has ruled that behavior out permanently.

This PR refuses a human-targeted send unless it is an ask (expect_reply=true with intent and urgency) or a reply (exchange_id). It also refuses explicit human exchange follow-ups before any ledger write. A second ask to a person while one is already open is refused with a typed error instead of silently coalescing. Agent-to-agent plain sends remain open. Human participant rows now expose can_receive_message=false and can_open_exchange=true, and unreachable-participant recovery text now distinguishes an addressable agent from a human row that can open an ask. The served version-15 tool description is mechanically byte-equal to the product contract.

Tests: focused A2A service, inbox, formatter, toolkit, handler, and registration suites (48 passed); vp run --filter t3 typecheck (no errors).

Built with GPT-5.6 Codex in T3 Code.

Closes #44

@coderabbitai

coderabbitai Bot commented Sep 2, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Essentials

Run ID: 0d0554df-db08-43bd-ab89-82b0afa497ed

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 effective changed lines (test files excluded in mixed PRs). labels Sep 2, 2026
Jacksondr5 added a commit that referenced this pull request Sep 2, 2026
…nbox mirror, ruling record

Jackson's ruling 2026-09-02 (option D, supersedes issue #44's A/B/C and
PR #57's wording): an agent-to-human send must be an ask or a reply; a
plain message to a person is refused fail-closed. Permanent law. Address
book human row becomes can_receive_message=false. Urgency rename to
'whenever' recorded as recommended, not ruled.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Jacksondr5
Jacksondr5 force-pushed the j5/issue-44-plain-send-truthful-description branch from deb1c69 to a8e2816 Compare September 2, 2026 05:47
@Jacksondr5 Jacksondr5 changed the title fix(j5): send_message description says plain sends to a person are invisible in v0 fix(j5): agent-to-human sends must be asks or replies Sep 2, 2026
@Jacksondr5
Jacksondr5 force-pushed the j5/issue-44-plain-send-truthful-description branch 4 times, most recently from 936d4cb to c630dc2 Compare September 2, 2026 06:08
@Jacksondr5

Copy link
Copy Markdown
Owner Author

Posted by an AI agent on Jackson's behalf

CodeRabbit review disposition at c630dc26:

  • Major — confirmed and fixed in 2fa7749ae. A human-directed exchange follow-up was neither an ask nor a reply. The send path now rejects both explicit exchange_id follow-ups and implicit expect_reply=true follow-ups after an open human ask, before any ledger write; both shapes have no-write regression coverage.
  • Minor — confirmed and fixed in 2fa7749ae. The unreachable-participant recovery text now distinguishes an addressable agent (canReceiveMessage=true) from a human row that can open an ask (canOpenExchange=true).

Local verification at 2fa7749ae: six focused A2A/MCP suites, 34 tests passed; vp run --filter t3 typecheck passed (pre-existing suggestions only). Fresh exact-head CI is pending.

@github-actions github-actions Bot added size:M 30-99 effective changed lines (test files excluded in mixed PRs). and removed size:S 10-29 effective changed lines (test files excluded in mixed PRs). labels Sep 2, 2026
@Jacksondr5

Copy link
Copy Markdown
Owner Author

Posted by an AI agent on Jackson's behalf

Post-review CI disposition: both exact-head workflows at 2fa7749ae correctly exposed dependent test fixtures, not a production regression. 138b8513b updates the exact recovery-response assertion and represents the delivery race as a historical persisted follow-up, so the worker preserves compatibility for already-durable traffic while send_message refuses new human follow-ups.

Local verification at 138b8513b: 8 focused A2A/MCP suites, 48 tests passed; vp run --filter t3 typecheck passed (pre-existing suggestions only). Fresh exact-head CI is pending.

@Jacksondr5
Jacksondr5 merged commit 7e63966 into j5/main Sep 4, 2026
14 checks passed
@Jacksondr5
Jacksondr5 deleted the j5/issue-44-plain-send-truthful-description branch September 4, 2026 00:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 effective changed lines (test files excluded in mixed PRs). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Plain messages to a person are invisible in v0 — truthful tool description + product disposition

1 participant