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.38] — 2026-08-24
Split dashboard menus for fundraisers and wholesalers.
Changed
- Approved wholesalers now see their own sidebar menu: Catalogue products, Orders to fulfil, Analytics & export, Billing and Voucher sales — with the fundraiser menu (New fundraiser, New listing, My listings) hidden.
- Fundraisers no longer see the wholesale menu (Wholesale catalogue adding stays approval-only on the server, so this is a UX change on top of the existing API guard).
- Staff still see the full admin section regardless of account type.
[0.9.37] — 2026-08-24
Active sidebar highlighting.
Changed
- The dashboard/admin side menu now highlights the page you're on with a solid green pill. Sub-pages stay highlighted (e.g. editing a specific email template keeps "Email templates" active), and the active state is announced to screen readers.
[0.9.36] — 2026-08-24
Wholesaler application: business location and applicant IP.
Added
- The wholesaler application form now asks for the business city (required) and region/state, alongside the existing country selector.
- The applicant's IP address is recorded on the application (stored at first submission; the audit log also captures IP, city and region).
- Admin → Wholesaler applications now shows the full business location and the applicant's IP on each row, so international and suspicious applications are easy to spot.
- Schema:
businessCity,businessRegionandsignupIponWholesalerProfile(migration0029_wholesaler_location_ip).
[0.9.35] — 2026-08-24
Moderation queue previews.
Changed
- Pending products in Admin → Moderation now show a full preview inline: photo, price, condition, stock, expiry, description, fulfilment options, pickup/shipping details, wholesale cost and commission, who listed it and on which campaign (with a link to the campaign page) — so moderators can review the item without leaving the page.
- Pending fundraisers now show their cover photo and story text alongside the Approve/Reject/Dismiss actions.
[0.9.34] — 2026-08-24
Clearer Stripe Connect setup error.
Changed
- When Stripe refuses to create connected accounts because the platform profile / Connect questionnaire isn't complete, the site now says exactly that (admins see the full explanation; other users see "payments aren't available yet") instead of the generic "couldn't start onboarding" message. The underlying fix is completing the questionnaire in the Stripe dashboard.
[0.9.33] — 2026-08-24
Password generator on signup and reset pages.
Added
- Generate a strong password button on the create-account page (and the reset-password page): one click fills the password field with a cryptographically random 18-character password containing upper/lowercase letters, digits and symbols (no confusing lookalike characters).
- The generated password is shown for copying, with Copy and New password buttons, so people can save it in their password manager before finishing signup.
[0.9.32] — 2026-08-24
Password reset flow.
Added
- Forgot password? link on the sign-in page, leading to a "reset your password" page that emails a one-time reset link (expires after 1 hour).
- The reset link opens a "choose a new password" page with confirmation; successful resets update the password hash and revoke all other outstanding reset links.
- Security: tokens are random 64-character values stored only as SHA-256 hashes (a database leak can't be used to reset accounts), are single-use, and the request endpoint never reveals whether an email is registered. Rate-limited per IP and per email; all activity is audit-logged.
- New editable password-reset email template (Admin → Email templates)
with
{{name}}and{{reset_url}}shortcodes. - Schema:
PasswordResetTokenmodel (migration0028_password_reset).
[0.9.31] — 2026-08-24
Editable email templates with shortcodes.
Added
- Every email template (all 19 types, including the new voucher-sold, wholesaler-fee-invoice, commission and platform-fee emails) can now be edited from Admin → Email templates → Edit: subject, HTML body and footer, with save, draft preview, reset-to-default and test-send.
- Each editor page shows the template's shortcode reference — clickable
{{placeholders}}(e.g.{{donor_name}},{{campaign_url}},{{voucher_codes}}) that insert at your cursor. Shortcodes are replaced with live values when the email is sent. - Custom templates are stored in the database (survive deployments) and apply automatically to real sends: donation/order receipts, campaign updates, refunds, disputes, moderation, wholesale fulfilment, vouchers, invoices, direct-debit notices, commission and platform-fee emails.
- Templates that have been customised show a "Customised" badge on the list page; resetting always restores the built-in default.
Changed
- Every transactional send now declares its template type and live variables so custom versions apply consistently across all flows.
- Test sends and previews cover all 19 templates and honour custom versions.