Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,55 @@ All notable changes to **stunt** are documented here. The format is based on

## [Unreleased]

## [0.38.0] — 2026-08-16

### Adapters

- **stripe-style: full API coverage** — 48 → **158 endpoints**, 15 → 32
collections. Every core Stripe resource family is now simulated:
- **Test Clocks** (`/v1/test_clocks` + the real-path
`/v1/test_helpers/test_clocks` aliases): a KV time offset drives every
adapter timestamp, so subscription renewals, dispute settlement, payout
lifecycles, capability activation and session expiry are deterministic
and assertable without sleeps.
- **Disputes**: test-card triggered (fraudulent / product_not_received)
with the `needs_response → under_review → won/lost` derive-on-read
lifecycle, all 27 evidence fields, submit/close, evidence due-by, funds
withdrawn and reinstated through the ledger, the full
`charge.dispute.*` event set.
- **Balance transactions**: a real ledger over every money movement
(charge incl. the 2.9%+30¢ processing fee, refund, refund_failure,
payout, transfer, transfer_reversal, application_fee(+refund), dispute,
dispute_reversal), account-scoped rows, full filter set.
- **Billing**: products, prices, subscriptions (clock-driven renewal +
auto-charge, `past_due` on decline/no-PM, coupon + tax support),
subscription items, usage records (metered), invoices (draft → open →
paid/void/uncollectible; finalize/pay/void/send/lines/upcoming),
invoice items, credit notes (issuing real refunds), coupons, promotion
codes, tax rates (exclusive + inclusive).
- **Checkout Sessions**: payment/subscription/setup modes, hosted
`/c/pay/{id}` completion page with `{CHECKOUT_SESSION_ID}` redirect
substitution, decline injection via `payment_method`, expire, line
items. **SetupIntents** with SCA challenge + decline behavior.
- **Webhook endpoints**: CRUD + registration-gated delivery per
`enabled_events` (events always recorded in `/v1/events`).
- **Files + file links**: multipart upload with real purpose enum.
- **Connect depth**: persons, capabilities (requested → pending → active),
external bank accounts (last4 only, default resolution), application
fees (+ partial refunds, both refund routes), login links, transfer
partial reversals (`trr_*`, list/retrieve), payout full lifecycle
(pending → in_transit → paid) + cancel with funds return.
- **Refunds completion**: cancel (pending → canceled with
`failure_reason` + `refund_failure` ledger row), charge/payment_intent
list filters, `balance_transaction` linkage, uncaptured-charge refunds
release the authorization.

### Engine

- Adapter lint: the provider-ID heuristic now requires a digit in the
suffix, so real API names (`file_links`) are no longer flagged while
actual ids (`ch_1Mio2eLkdIwHu7ix`) still are; regression tests added.

## [0.37.0] — 2026-08-16

### Adapters
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ synthetic-data-only, with a DISCLAIMER). Browse them with `stunt catalog search`

| Adapter | Simulates | Backing |
|---|---|---|
| `stripe-style` | payments — **PaymentIntents (confirm/capture) + PaymentMethods + Refunds**, charges, customers, Connect, **Idempotency-Key**, cursor-paginated lists, **signed webhooks** | Collection + Starlark |
| `stripe-style` | payments — full API surface (158 endpoints): **PaymentIntents, disputes, refunds, the Billing suite (subscriptions/invoices/credit notes), Checkout Sessions, SetupIntents, balance transactions**, Connect (persons/capabilities/application fees), **Test Clocks** (deterministic billing), **Idempotency-Key**, cursor-paginated lists, **signed webhooks + registration-gated delivery** | Collection + Starlark |
| `salesforce-style` | CRM — sObjects CRUD, **general SOQL** (WHERE/IN/LIKE/AND/OR, ORDER BY, LIMIT/OFFSET), OAuth (password/auth-code/**refresh**) | Collection + Starlark |
| `discord-style` | bot API — REST + **WebSocket Gateway (HELLO→IDENTIFY→READY→dispatch)** + **Ed25519-signed interactions** | Collection + Starlark |
| `drive-style` | files API — upload/get/download/list/patch/delete, folders, about/quota, resumable uploads | Blob + Collection |
Expand Down
811 changes: 494 additions & 317 deletions adapters/stripe-style/README.md

Large diffs are not rendered by default.

Loading
Loading