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.58] — 2026-08-24
XXXXX-style wholesale catalogue: clickable cards, full product pages, and product options/variations.
Added
- Full product pages (
/wholesale/p/[id]): photo gallery, title, brand & business, rating, full description, options/variations, delivery and voucher details, and an "Add to my store" box — laid out like a XXXXX deal page. - Clickable cards: wholesale catalogue cards link to the product page (whole image/title/info area clickable). Explore cards link to the fundraiser or the full deal.
- "More items" section on product pages: arriving from a fundraiser shows that fundraiser's other items at the bottom; a general visit shows similar deals in the same category.
- Options / variations (XXXXX-style): a wholesaler can define options on a catalogue item — e.g. "Location" with Auckland, Wellington, Christchurch — marked required or optional. Buyers choose their option at checkout, and the selection appears on the wholesaler's order for fulfilment. Stored in existing metadata (no schema migration needed).
Changed
- Fundraiser pages now show a "View full deal →" link on wholesale items.
- Order confirmations and the wholesale orders page include the buyer's option selections.
[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.