Payments, Guarantees, Several-instances: an error of unknown outcome reconciled, a replay past keyRetention never sent (#657, #658)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Kh8JmysuhZyQRSpNyJdPg
Payments, Payment-gateways, Payment-scenarios, Example: the payment examples land (#654, #655)
The example links point to 12-payment-gateways/src/gateways/<slug>; the
"land with" notes are gone; Example lists 11-safe-payments and
12-payment-gateways. "How to wire a gateway" gains three rules found while
building them: a lookup's hit counts only when it is the order's (escaped
search text, order id, amount, currency checked); a caller's payment id
moves money only when the shop's own books tie it to the order and tenant;
a webhook belongs to one tenant and only updates its existing orders. The
#658 workaround records the attempt's start in a row of your own — a fenced
effect's stored result is removed after fencedEffects.retention.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Kh8JmysuhZyQRSpNyJdPg
Payments: the gateway contract, every payment race (PS1–PS23) and ten gateways (#653)
New pages Payments (the notice, the contract in short, whether the guarantees hold on a gateway,
what stays the application's, how to wire a gateway, how to check your own call) and
Payment-scenarios (each race: wrong, mechanism, guarantee, assumptions, boundary, proof).
Payment-gateways: the capability table of ten gateways read 2026-11-01, the support rule, quotes
and links. Guarantees: A12, the retention a repeat must come within. Cross-links from
Several-instances and Guarantees-across-processes; a Payments group in the sidebar; Changelog.
Gaps found: #657, #658.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Kh8JmysuhZyQRSpNyJdPg
docs(#556): invisible, private and unassigned characters in keys refused
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Kh8JmysuhZyQRSpNyJdPg
docs(#547): keys with look-alike spaces are refused
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Kh8JmysuhZyQRSpNyJdPg
docs(#538): a business key's text — Several-instances, Payment gateways, Your own store, Changelog
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Kh8JmysuhZyQRSpNyJdPg
docs(#532, #529–#531): Payment gateways — fit call.idempotencyKey to the gateway; Changelog of the 0.1.1 acceptance
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Kh8JmysuhZyQRSpNyJdPg
docs(#508): Payment gateways — a hung send's bound, and G1 past it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Kh8JmysuhZyQRSpNyJdPg
docs(#508): Payment gateways — every combination answers a late replay
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Kh8JmysuhZyQRSpNyJdPg
docs(#508): Payment gateways — the requirements, what six gateways document (sources, 2026-10-30), the checklist; Testing, Several-instances, Changelog
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Kh8JmysuhZyQRSpNyJdPg