Skip to content

docs(sdk/py): refresh README for v0.10.0 daemon-mediated path#641

Merged
ojongerius merged 6 commits into
mainfrom
claude/festive-davinci-492t8
May 26, 2026
Merged

docs(sdk/py): refresh README for v0.10.0 daemon-mediated path#641
ojongerius merged 6 commits into
mainfrom
claude/festive-davinci-492t8

Conversation

@ojongerius
Copy link
Copy Markdown
Contributor

@ojongerius ojongerius commented May 26, 2026

Summary

Refreshes the Python SDK README (the PyPI publish surface) so adopters land on the canonical daemon-mediated signing path per ADR-0022, matching the site Quick Start (#625) instead of being steered to the deprecated in-process flow.

Closes #630.

Changes

  • Quick start now leads with the daemon: Install → start agent-receipts-daemon → emit via DaemonEmitter → confirm with agent-receipts verify.
  • In-process create/sign/verify moved to an appendix ("tutorial and testing only") carrying the ADR-0022 D2 "Not for production" note linking back to the daemon path.
  • Remote/HTTP path documented: new "Delivering receipts to a remote collector" section covering HttpEmitter (sync vs fire-and-forget) and WalEmitter — including the v0.10.0 retain-and-replay at-least-once behaviour, FileWal vs MemoryWal, and the footgun that fire-and-forget breaks the WAL guarantee.
  • agent-receipts verify referenced as the in-SDK confirmation path.
  • ActionInput re-exported from the top-level agent_receipts package; Quick Start snippet and the first-run contract test now use the top-level import.
  • Ecosystem table repointed at the agent-receipts/ar monorepo, dropping the dead agent-receipts/sdk-py reference. (CI badge was already on agent-receipts/ar.)

Acceptance (from #630)

  • README leads with daemon-mediated signing (Install → daemon → emit → agent-receipts verify)
  • In-process appendix carries the ADR-0022 D2 "Not for production" note
  • Documents DaemonEmitter for the local daemon path
  • Documents HttpEmitter + WalEmitter (incl. WAL retain-replay)
  • References agent-receipts verify
  • Re-exports ActionInput from top-level and updates the Quick Start snippet
  • CI badge and Ecosystem links point at agent-receipts/ar

Test plan

  • README Python snippets type-check against the in-tree SDK (scripts/readme_snippets/check.py --lang py, 9 units clean)
  • uv run pytest — 411 passed, 6 skipped
  • uv run pyright src — 0 errors (strict)
  • Full pre-push gate green (go / ts / mcp-proxy / py)

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Python SDK’s published README to steer adopters toward the canonical daemon-mediated signing workflow (per ADR-0022) and aligns examples/imports with the v0.10.0 surface.

Changes:

  • Reworks the README Quick Start to: install → run agent-receipts-daemon → emit via DaemonEmitter → confirm via agent-receipts verify, and moves in-process signing to an appendix.
  • Documents remote/HTTP delivery via HttpEmitter and WalEmitter, including retain-and-replay WAL behavior and the sync vs fire-and-forget caveat.
  • Re-exports ActionInput from the top-level agent_receipts package and updates the “first run” contract test accordingly.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
sdk/py/README.md Refreshes Python SDK README to lead with daemon flow; adds remote collector delivery guidance; reorganizes in-process signing into an appendix; updates ecosystem links.
sdk/py/src/agent_receipts/__init__.py Re-exports ActionInput from the top-level package via imports and __all__.
sdk/py/tests/contracts/test_first_run.py Switches ActionInput import to the new top-level re-export.

Comment thread sdk/py/README.md Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

Comment thread sdk/py/README.md Outdated
Comment thread sdk/py/README.md Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Comment thread sdk/py/README.md Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Comment thread sdk/py/README.md Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

Refresh the PyPI README so Python adopters land on the canonical
daemon-mediated signing path (ADR-0022) instead of the deprecated
in-process flow:

- Quick start now runs Install -> start daemon -> emit via DaemonEmitter
  -> confirm with `agent-receipts verify`, matching the site Quick Start.
- In-process create/sign/verify moves to a tutorial-and-testing appendix
  carrying the ADR-0022 D2 "Not for production" note.
- Document the v0.10.0 emitters package for the remote/HTTP path
  (HttpEmitter + WalEmitter retain-and-replay at-least-once delivery).
- Re-export ActionInput from the top-level agent_receipts package and use
  the top-level import in the snippets and first-run contract test.
- Point the Ecosystem table at the agent-receipts/ar monorepo, dropping
  the dead agent-receipts/sdk-py reference.
Restore the footgun warning: HttpEmitter in "fire-and-forget" mode returns
before the POST lands, so WalEmitter clears the WAL entry prematurely and
the at-least-once guarantee is lost. Use the default "sync" mode.
The "future milestone (M3)" note was stale — classify_tool_call,
load_taxonomy_config, and resolve_action_type already ship and are
exported from the top-level package. Replace it with an accurate
description and a runnable snippet.
Address review feedback: "agent-receipts verify CLI" implied verify was
the CLI name rather than a subcommand, and the in-process appendix link
sat at the tail of a nested parenthetical. Reword to "the agent-receipts
CLI (including the verify command)" and restructure the emitters intro
with an em-dash so the link clause ends cleanly.
The daemon errors on non-linux/darwin GOOS (daemon.go: "Phase 1 supports
linux and darwin only"), so "install it for your platform" could lead
Windows users into a dead end. State the supported platforms explicitly.
The remote-collector example built the emitter and called replay() inside
deliver(), implying a full WAL drain on every emission and contradicting
the "call once at startup" guidance. Move construction + replay() to
module scope so deliver() only emits.
@ojongerius ojongerius force-pushed the claude/festive-davinci-492t8 branch from 82e4dff to 5af420d Compare May 26, 2026 10:42
@ojongerius ojongerius requested a review from Copilot May 26, 2026 10:42
@ojongerius ojongerius merged commit 51f604e into main May 26, 2026
@ojongerius ojongerius deleted the claude/festive-davinci-492t8 branch May 26, 2026 10:43
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Comment thread sdk/py/README.md
Comment on lines +373 to 374
| Component | Description |
|:---|:---|
ojongerius pushed a commit that referenced this pull request May 26, 2026
main landed ADR-0023 (Canonical Go Module Path), colliding with this branch's
ADR-0023 (Emit Failure Contract). Resolve by renumbering the emit failure
contract to ADR-0024 across the ADR, all three SDKs, docs, changelogs, and the
conformance vector.

- docs/adr/README.md: list both ADR-0023 (go module path) and ADR-0024.
- sdk/py/README.md: take main's restructured README (PR #641) and re-apply the
  surface-by-default emit wording to its new "Emit a receipt" section.
- test_first_run.py: reconcile the auto-merged module docstring — the
  silent-drop test was renamed/flipped, and PY-P4 is decoupled from #599 per
  ADR-0024 §3.

All three SDK suites pass after the merge.

https://claude.ai/code/session_01KgF1mix4aL1nATwYGAeXSD
ojongerius added a commit that referenced this pull request May 28, 2026
main landed ADR-0023 (Canonical Go Module Path), colliding with this branch's
ADR-0023 (Emit Failure Contract). Resolve by renumbering the emit failure
contract to ADR-0024 across the ADR, all three SDKs, docs, changelogs, and the
conformance vector.

- docs/adr/README.md: list both ADR-0023 (go module path) and ADR-0024.
- sdk/py/README.md: take main's restructured README (PR #641) and re-apply the
  surface-by-default emit wording to its new "Emit a receipt" section.
- test_first_run.py: reconcile the auto-merged module docstring — the
  silent-drop test was renamed/flipped, and PY-P4 is decoupled from #599 per
  ADR-0024 §3.

All three SDK suites pass after the merge.
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.

docs(sdk/py): refresh README for v0.10.0 daemon-mediated path

2 participants