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.89] — 2026-08-25
Admin-managed DeepSeek API key.
Added
- The admin AI page now has a "Provider key" panel where the DeepSeek API key
(and optional model name) can be entered and saved — no server
.envedit or restart needed. - The key is encrypted at rest (AES-256-GCM, keyed from
AUTH_SECRET) in the settings table. The full key is never returned to the browser; the page only shows a maskedsk-…abcdstatus. - Saved keys are used immediately by AI moderation, fraud screening, order
fraud checks, content generation, and the "Run test review" button. A
"Remove saved key" button clears it and falls back to the server
.envkey.
Changed
- The AI provider now reads its DeepSeek key from the database first and the
server
.envas a fallback.
Notes
- A valid
sk-…key from platform.deepseek.com is still required for the AI provider to authenticate; the previous server key returned 401.
[0.9.88] — 2026-08-25
AI moderation model fix.
Fixed
- The DeepSeek model name was set to a non-existent model; it now defaults to
the real
deepseek-chatmodel, and the admin AI page hint matches.
Notes
- The AI provider is currently returning "401 Authentication Fails" — the
DeepSeek key in the server
.envneeds to be a validsk-…key from platform.deepseek.com. Once a valid key is in place, product moderation runs fully automatically: approve when the AI is confident, flag with a reason otherwise.
[0.9.87] — 2026-08-25
Fully automatic AI moderation for products.
Added
- Wholesale items now auto-approve when the AI review is confident they're fine (previously they always needed a human). Anything the AI isn't sure about is flagged with the AI's reason, and banned items are still auto-rejected.
- Editing a product re-runs the AI review — a fixed or resubmitted item is re-scored automatically and approved again if it's fine, or flagged with a reason if not (previously edited items just sat in the queue with no AI check).
- The AI product review now considers the campaign/business context (what the fundraiser is for, the business name, category, brand) and is prompted to catch attempts to disguise banned or illegal items with misspellings, euphemisms or vague wording.
[0.9.86] — 2026-08-25
Voucher codes moved to the product page + sold codes never reused.
Changed
- Voucher code management moved out of the catalogue cards and into the product's edit page (where there's room): generate or paste codes there. Creating a new voucher takes you straight to its edit page so you can add codes immediately.
- Sold vouchers stay sold: a code that has been purchased is never returned to the pool, even if the order is later refunded — it stays marked as assigned to that order, so it can't be resold.
- Voucher sales page now shows the voucher code, the purchaser, and a "🎁 Gifted to [name] ([email])" line when the buyer selected the gift option at checkout.
[0.9.85] — 2026-08-25
Vouchers can be bought as gifts.
Added
- Voucher purchases now have a "This is a gift" option on the buy button. When selected, the purchaser enters the recipient's name, email and an optional message, and the voucher is emailed to the recipient (with the message) and a copy goes to the purchaser.
[0.9.84] — 2026-08-25
Brands page explainer + one-click first brand.
Added
- The Brands page now explains what brands are (sell multiple product lines under one store and one payout account) with real use cases, and how to set one up (create → tag products → it appears on the catalogue).
- One-click first brand: if the store has no brands, a highlighted card creates a brand named after the business with a single click.
[0.9.83] — 2026-08-25
Removed references to other sites.
Changed
- Removed all mentions of other platforms (e.g. "XXXXX-style") from user-facing copy and code comments. Feature descriptions now stand on their own.
[0.9.82] — 2026-08-25
Zero-downtime deploys.
Changed
- The server deploy process now builds the site into a separate directory and atomically swaps it in, so the live site keeps serving the current build throughout the update — no more "Internal Server Error" / "client-side exception" windows during releases.
- Dependencies are only reinstalled when the lockfile actually changes, so node_modules is no longer wiped on every push.
Fixed
- The intermittent
TypeError: a is not a function/ module-not-found errors during deploys were the old process serving whilenpm ciandnext buildreplaced files under it. Deploys no longer disturb the running site.