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.57] — 2026-08-24
Stores can run multiple brands from one account.
Added
- Brands on the wholesale dashboard: an approved store can now create multiple brands (organisations) from their account, or attach organisations they already manage. All brands share the same payout account — no new Stripe setup per brand.
- Brand tagging: catalogue products can be assigned to a brand when added or edited. Branded products show their brand badge in the catalogue management page and the brand name on the public wholesale catalogue ("Brand · Fulfilled by business").
- New
WholesalerOrganisationjoin table andWholesaleProduct.organisationId(migration0034_wholesale_brands). A brand can belong to only one store.
Changed
- Wholesaler applications now also reject organisations that are already a brand on another store.
[0.9.56] — 2026-08-24
Image upload buttons added to the remaining link-only forms.
Added
- Blog posts: the cover image field now has an Upload button (best at 1200×675, 16:9).
- Organisation settings: both the logo and cover image fields now have Upload buttons (logo ~400×400 square; cover ~1600×700 wide banner).
- All uploads run through the existing pipeline: auto-rotated, resized (max 1600px long edge), compressed (quality 80), and sent to Bunny Storage automatically when configured (otherwise stored on the server).
[0.9.55] — 2026-08-24
Help hints when adding products, including clear image-size guidance.
Added
- Image hints on every product form:
- Product listings and wholesale catalogue items: square photos look best (e.g. 800×800), uploaded images are auto-resized so any size works, files up to 5 MB, and the first image is the main photo.
- Fundraiser covers: aim for a wide 1600×700 (16:7) banner; uploads are auto-resized.
- Small guidance hints on titles, prices and descriptions so sellers know what to enter.
- The wholesale catalogue form now has an Upload photo button (it only accepted pasted URLs before), matching the other forms.
[0.9.54] — 2026-08-24
Reject requires a reason; rejected items go back to the seller to fix and resubmit (never deleted).
Changed
- Reject now requires a reason. The moderator must type why an item is rejected before confirming. The reason is stored on the item and included in the email to the seller.
- Rejected items are never deleted. They stay in the seller's dashboard
with the rejection reason shown, and each now has an Edit & resubmit
link that opens the full item in a prefilled edit form:
- Fundraisers: the dashboard card shows the reason and an Edit & resubmit link.
- Product listings: "My listings" now shows a red "Rejected" status with the reason, plus Edit & resubmit.
- Wholesale catalogue items: the card shows the reason plus Edit & resubmit.
- Editing a rejected item sends it back to moderation for a fresh review (the previous rejection reason is cleared). Editing a live item's content also returns it to review, while extending an expiry alone no longer pulls an approved listing back into the queue.
[0.9.53] — 2026-08-24
Stronger automated moderation: banned items auto-rejected, high-fraud campaigns auto-banned, and AI rating/comment shown for human review.
Added
- Banned items are auto-rejected with the reason. Fundraisers, product listings, wholesale catalogue items (and bulk-import rows) that hit a critical prohibited term (weapons, drugs, counterfeit goods, stolen property, identity documents, gambling) are automatically rejected, the reason is recorded on the item, and the decision is flagged and audited — no human review needed.
- High-fraud campaigns are auto-banned. When the risk score reaches 9/10 or higher, the fundraiser is auto-rejected ("high fraud risk detected by AI screening") and the account is suspended. Both actions are audited and can be reversed by an admin.
- AI rating and comment on moderation items. Items awaiting human review now show an AI rating out of 10, the AI verdict, and the AI's comment explaining why it was flagged, on both the moderation queue and the preview page. Fundraisers also show their fraud risk flags.
Changed
- Wholesale catalogue items now get an AI review (rating + comment) when they are submitted, matching fundraisers and product listings.
[0.9.52] — 2026-08-24
Voucher code entry made easy to find.
Changed
- On the Catalogue products page, each voucher product now shows a clear "Add voucher codes" button (amber-highlighted when the product has no codes yet) instead of a faint text link. Opening it reveals the two bulk options side by side: Generate automatically (choose how many) and Paste your own codes (one per line, up to 500).
- The Voucher sales page now has a banner pointing to Catalogue products for adding or generating codes, so the area is discoverable from either place.
[0.9.51] — 2026-08-24
Version badge more visible in the site footer.
Changed
- The version number in the footer of every page (public site and dashboard) is now a small, clearly visible badge instead of faint grey text, so the deployed version can be checked at a glance.
[0.9.50] — 2026-08-24
Clickable moderation items with a full preview page.
Added
- New staff-only preview page for every item in the moderation queue:
/admin/moderation/preview/<fundraiser|product|wholesale>/<id>. It shows the full content — images, price, story/description, owner details, AI review score, expiry, delivery and voucher info — with the Approve / Reject / Dismiss controls right on the page.
Changed
- The moderation queue's item titles are now clickable: pending fundraisers, pending products, pending wholesale items and flagged fundraisers/products all open their preview when clicked (previously nothing was clickable and pending items had no public page to view).