Skip to content

How a call's key and a claim's number reach the server; a single-value item is the deciding agent's message - #18

Merged
dittops merged 1 commit into
masterfrom
claim-conventions
Nov 12, 2026
Merged

dittops merged 1 commit into
masterfrom
claim-conventions

Conversation

@dittops

@dittops dittops commented Nov 12, 2026

Copy link
Copy Markdown
Member

Follows #17. Mostly words in the schema's help, plus one gap in workflow_runtime.given_to.

What a runtime must match

  • A call's own key (same-request-key: the-call): the Idempotency-Key header on a url: tool; dev.pact/request-key in the request's _meta on a connected one.
  • A claim's fencing token: Pact-Fence with Pact-Claim on a url: tool; dev.pact/fence with dev.pact/claim in _meta on a connected one. Both or neither, only for a claim taken from a store, never as an argument. PACT's reference harness records the token (Ledger.fences) and sends neither; a host does.
  • A claim is taken when the call is let through, after a person has said yes, and not while anybody is being asked.
  • An item that is one value is the deciding agent's message. A for each over a list of texts handed the sorter the stage's says: and nothing about the text. Found by Bud Agent Flow while implementing the rule from Held to a second runtime: what reviewing Bud Agent Flow found in PACT, and the shared conformance cases #17.

Agreed with Bud Agent Flow, which already sends Idempotency-Key in production.

Checked

scripts/test-all.sh exits 0: 4871 tests (1623 Rust + 3248 adapter), was 4869. Two new shared cases in tests/conformance/workflows.json on tests/conformance/trees/sorted-notes; no existing case's expect changed. mkdocs build --strict builds. newest-pydantic-ai fails on master with the same five failures and is not touched here.

🤖 Generated with Claude Code

…is one value is the deciding agent's message

The help for same-request-key: said the call's own place in the run is
"sent to the server as the request's idempotency key" and left how to
each host; claim-lasts: said nothing of when a claim is taken or of the
number that makes a late write refusable. Agreed with Bud Agent Flow,
which already sent the first in production: Idempotency-Key as a header
on a url: tool and dev.pact/request-key in the request's _meta on a
connected one; Pact-Fence with Pact-Claim, and dev.pact/fence with
dev.pact/claim, for a claim taken from a store — both or neither, never
as an argument. A claim is taken when the call is let through, after a
person has said yes, and not while anybody is asked. PACT's reference
harness records the token (Ledger.fences) and sends neither; a host does.

rung.agent: an item that is one value and not a set of fields is the
agent's message. A for-each over a list of texts handed the sorter the
stage's says: and nothing about the text (workflow_runtime.given_to;
found by Bud Agent Flow implementing the rule). Two shared cases in
tests/conformance/workflows.json, on trees/sorted-notes.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
@dittops
dittops merged commit 0fe177e into master Nov 12, 2026
4 of 5 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.

2 participants