Change log
Preview. Built, but not yet checked against a real provider account or a live deployment; it may still change.
What changed in Payrudder, release by release. It is made when this site is built, from the history of the repository: the releases are the tags vX.Y.Z, and each entry is the title of a pull request that was merged. Nothing is written by hand and nothing is added that was not merged.
There is no release yet. The owner's rule is that nothing is tagged or published until the application is complete, so there is no version to list; the platform, the SDKs and the command line all say 0.0.0. Until the first release the page shows the latest pull requests under "Unreleased". The SDKs keep their own change logs (sdk/<language>/CHANGELOG.md) and are tagged separately (sdk/go/vX.Y.Z for the Go module).
Releases
No release has been made yet: nothing is tagged and nothing is published, so this page has no versions. The pull requests merged so far are listed below as they come.
Unreleased
Merged into the main branch so far, newest first (the latest 50). They are not part of any release.
- docs: the customers guide quotes the new search placeholder #18
- console: owner feedback round — wider shell, header bell and search, sub-page tabs, MCP page, no help desk #17
- feat(mail): send through Nafru Email's official Go SDK #16
- Sellers credit and refund their own paid invoices (POST /v1/invoices/{id}/credit-notes) #15
- console: second audit round: forms that keep their customer and show errors, sheets in address order, clearer sandbox and key forms #14
- console: propose the invoice language from the country; audit notes for section 3 #13
- console: simpler Integrations, Go live and support report #12
- SDKs public in nafrucom/payrudder-sdks (Apache-2.0) #10
- ci: run every job on our self-hosted runners (nafru-home) #3
- console: notifications page, local session in every tab, country list without geo, audit notes #11
- console: lists open on the last 30 days, not the month so far #9
- console: operator pages: the tenant list first, the price controls on a tab, a compact support report #8
- console: less on Connect, Accounting and Mail #7
- console: the timeline of an invoice's payment in the payment and invoice sheets (design C) #6
- console: status chips with counts on the payments list (design C) #5
- console: page structure of design C, sign-in methods as buttons #4
- console: new shell (redesign direction C): light sidebar, foldable groups, command palette, phone tab bar #473
- deploy/railway/setup-secrets.sh: every key a staging or production deploy needs, with where to get it #470
- feat(payments): dual read of accounts through the binding (PAYMENTS_ACCOUNT_READ_BOUND, off), old row as fallback #469
- account_id migration step 4: ids on the ledger and its neighbours (rehearsed on 1M synthetic rows) #463
- billing itest: the test clock follows real time (an hour ahead), not a fixed 2026-11-05 12:00Z that real time overtook #468
- Deploy: staging on every push to main, production on a published release; the console's config as wrangler.toml (plan 23) #466
- Sandbox reset: integration_bindings is a table with tenant rows it keeps (fixes main after #461) #462
- feat(payments): account_id migration steps 1-3 (new account tables, backfill with verify, shadow read) and a rehearsal harness #461
- Snippets: the PHP quick-start is run against the fake API, not only linted (plan 18) #460
- MCP: the rejected-event log is deliberately not a read tool; ADR 0026: the iyzico webhook gap was closed by #408 #459
- Deploy: staging and production on payrudder.com, one Railway environment each (plan 23) #458
- docs(geo): nafru-geo lives in its own repository #457
- Docs: the iyzico compatibility matrix names the adapter by its repository path, not a local one #456
- feat(gateway): read the geo lists from nafru-geo #454
- Ingest: a log of rejected events and a viewer on the Connect page (plan 18) #455
- Console: the ban card's reason field is only marked wrong after it was left empty, not right after a success cleared it #453
- Runbook: the rehearsal of the account_id migration, with checks and stop conditions (ADR 0026) #452
- Organisation-level e-mail accounts: one account several apps of an organisation use (plan 10, ADR 0026; e-mail only) #450
- Deploy: the gateway's OAuth settings (resources, shared secret, live switch) in compose and the Helm chart (plan 20) #451
- MCP: sign in with OAuth, the identity service as authorization server (plan 20) #449
- Notifier: a provider message id that two tenants' mail share is attributed to neither (security-4 item 11) #448
- Account and person bans: the operator bans an organisation (live tenants read as banned) or a person (no sign-in, sessions revoked) (plan 14) #447
- Console: viewer write gating and RTL dark e2e; Button dark ring fix (plan 4) #445
- Tests: console and mcp unit tests live in a __tests__ folder next to the code they test #446
- Price changes: hold the notice mail until N days before the new price (plan 15) #444
- Operator roles: a read-only support operator (PAYRUDDER_OPERATOR_SUPPORT_EMAILS) beside the admin list (plan 14) #443
- Customers: a blocked customer can appeal, and the seller decides (plan 13) #442
- Gateway: a key can have a rate limit of its own, a percentage of the tenant's (plan 20) #441
- Docs: a "Sending usage well" page (plan 18) #440
- Makefile: stock macOS make (3.81) no longer stops at "missing separator" when the default SDK works #439
- Payments: a saved-card notification that arrives late no longer brings the older card back (plan 22 payments review, item f) #438
- Console: a viewer is not offered row-menu and sheet actions that write (meters, partners, payouts, commissions, codes, agreements, withdrawals) #437
- Console tests: a viewer is not offered "New coupon" (main was red since #435) #436
- Console: viewers do not see the write buttons of four tabs, two price cards retry a failed read, two forms say they saved, the canned-reply dialog fits a phone and keeps focus #435