Changelog
All notable changes to Generous.nz are recorded here, grouped by version. Every deployed build has a version number, a git tag, and an entry below.
Versioning scheme
Versions follow MAJOR.MINOR.PATCH:
- 0.x — pre-launch. Minor bumps mark a completed build phase or major feature set; patches are bug fixes on the current build.
- 1.0.0 — first public launch.
- 1.x+ — post-launch: minor = new features, patch = fixes, major = breaking changes or significant re-architecture.
Each version is tagged in git (v0.2.0) and the current version is kept in
package.json. See docs/version-control.md for how to cut a release.
[0.9.229] — 2026-08-27
Fixed
- Auto-generated voucher codes are now globally unique across every
product (and every manually-entered code): the generator checks the whole
database for collisions instead of just the current product, and a new
unique index on
VoucherCode.codeenforces it at the database level. Codes remain random — 10 characters from a 32-char unambiguous alphabet (~50 bits of entropy) — so they can't be guessed or sequenced.
[0.9.228] — 2026-08-27
Changed
- The Generous.nz Community Campaign restriction now does what it says: when a wholesaler ticks it on the Restrictions page, their items are no longer offered for direct purchase on the public wholesale pages (the Community Campaign fallback is suppressed and the fund listing is paused), while fundraisers can still add the items to their stores and sell them with the listed commission. Cause restrictions continue to hide items from fundraisers raising for those causes.
[0.9.227] — 2026-08-27
Changed
- The Generous.nz Community Campaign preference on the wholesale Restrictions page is now one of the tick boxes in the "Causes you won't fundraise for" grid, instead of a separate row below the list. Ticking it keeps your items off the public wholesale page; fundraisers can still sell them.
[0.9.226] — 2026-08-27
Added
- Voucher products can now use auto-generated codes: tick "Auto-generate a unique voucher code per sale (up to your stock)" in the voucher area, and each sale mints its own unique single-use code on demand — no bulk pools to manage, and stock caps the number of sales. The voucher fields (how to redeem, conditions, auto-codes option) now appear directly under the Type selector when Voucher is chosen. The wholesale go-live checklist treats auto-code vouchers as ready without needing pre-loaded codes.
[0.9.225] — 2026-08-27
Changed
- The community campaign hide preference on the Restrictions page is now a simple tick box like the other options (no explanation paragraph).
[0.9.224] — 2026-08-27
Changed
- The "Hide Generous.nz Community Campaign items from my store" preference moved from the Account page to the wholesale Restrictions page, as a tick box in the same preferences form (saved with the same Save button).
[0.9.223] — 2026-08-27
Fixed
- Sidebar navigation no longer highlights "Catalogue products" as active on the "Add product" page (or product edit pages). The link now only highlights on the catalogue list itself.
[0.9.222] — 2026-08-27
Changed
- Wholesale commissions now settle on a weekly cadence
(
COMMISSION_BILLING_CADENCE_DAYS, default 7): the hourly job only invoices settlements older than the cadence, and held settlements are released once their hold expires (previously held commissions were never invoiced — a bug now fixed). - New fundraiser accounts: the wholesale-commission hold is now anchored to 30 days from their first wholesale sale (FRESH_ACCOUNT_DAYS), then commissions settle weekly. Own product sales and donations are unaffected — they pay straight to the fundraiser via Stripe.
- Go-live checklist and help centre now explain the payment timing (own sales/donations direct; wholesale commissions: 30-day hold for new fundraisers, then weekly). Wholesaler Agreement updated to 3.2 with the same wording.