Changelog & Release Notes
:::warning Legal Notice All compliance features described in this changelog are based on our interpretation of regulations at the time of development. Regulations change frequently. Users are responsible for ensuring their use of this software meets current legal requirements. We take no responsibility for compliance violations or out-of-date information. :::
Version 3.13.0 - Community Beta
Released: July 2026
This release adds an invite-only Community beta where signed-in people from participating organisations can ask questions, share practical field experience, and join staff-managed topic chats.
User-facing features
- Cross-organisation Community: create discussions or questions, save drafts, reply, react, follow, bookmark, mention other members, and mark accepted answers. Feed filters cover questions, unanswered posts, followed conversations, saved posts, drafts, and your own contributions. See Community Beta.
- Topic chats: join persistent, staff-managed rooms for shorter conversations. Rooms can be read-only or use slow mode.
- Community identity: choose a display name, optional broad region, and whether to show a verified organisation badge. Email addresses, account identifiers, and WildTrack360 roles are not shown.
- Notifications: choose in-app updates for replies, mentions, accepted answers, followed posts, category activity, chat mentions, reaction summaries, and beta announcements. Optional Community email is off by default and supports immediate, daily, or weekly delivery when configured.
- Navigation: Community appears in the workspace bar and command palette when the active organisation has the
COMMUNITY_BOARDflag enabled. The Community pages then check access against the home organisation saved in the person's community profile.
Admin, role and permission changes
- All five workspace roles can read and contribute when their home organisation is enabled and they have accepted the current guidelines. Community access is not filtered by species assignment.
- Organisation Admin does not grant Community moderation. Platform administrators appoint Community moderators separately. Moderators review held contributions, reports, and appeals, and can manage content and chat rooms.
- Community warnings, timed mutes, and bans are separate from organisation roles. A mute blocks posting but allows reading. A ban blocks Community access.
API and integration changes
- Added the Community web API under
/api/communityfor profiles, posts, replies, reactions, follows, bookmarks, chats, search, members, notifications, reports, appeals, moderation, feedback, and platform administration. - Added internal scheduled routes for moderation work and Community email delivery. They use
CRON_SECRET. - Community routes use Zod validation but do not yet have individual OpenAPI contracts. They are not included in the generated API Reference.
- Added configuration for Community platform administrators, optional Resend email, unsubscribe signing, and a separate Amazon Bedrock model and guardrail for Wally's Community moderation.
Database and schema changes
- Added a forward-only Community migration with 21 models covering profiles, categories, posts, replies, reactions, follows, bookmarks, chat rooms, reports, moderation history, notifications, feedback, rate limits, appeals, sanctions, and email delivery.
- Added an idempotent seed command for 12 starter categories and five staff-managed chat rooms.
- Community identity stores Clerk user and home-organisation identifiers but does not link to operational animal, care, photo, location, or carer records.
Bug fixes and operational changes
- Expanded Playwright coverage across all five organisation roles. This verifies role-specific navigation, route access, animal scope, writes, and tenant isolation without changing product behaviour.
- Upgraded Next.js to a patched 15.5 release for security fixes. No application behaviour changed.
- Moved the production container build to pnpm and moved nightly end-to-end workflows to the private deployment pipeline. These are internal changes.
Documentation
- New Community Beta guide
- Updated Roles & Permissions, Getting Started, Introduction, and API Reference
Version 3.12.0 - Build Your Own Forms & a Navigation That Follows You
Released: July 2026
This release adds Custom Forms — build your own data-capture forms without waiting for a WildTrack360 release — and gives the workspace a persistent, role-aware navigation bar that stays with you on every page instead of only the dashboard.
User-facing features
- Custom Forms (new module): coordinators and admins can build organisation-defined forms from eleven field types (text, numbers, counts, dates, yes/no, choice lists, species), publish them to the whole organisation, and review or export the submissions. Forms are versioned — every save snapshots the questions, submissions stay pinned to the version they were captured under, and rolling back creates a new version rather than erasing history. Includes location capture, manual weather entry, notes, and photos, plus an offline-friendly batch submission API for the mobile apps. Ships behind a per-organisation feature flag; see the new Custom Forms guide. (Custom forms are for your own observations — animal care still belongs on the record timeline.)
- Navigation that follows you: the header used to live on the dashboard only, so it vanished the moment you opened an animal or a compliance page. There is now a persistent workspace bar on every page — a sticky top nav on desktop, and a fixed bottom tab bar on phones and tablets with a More sheet for the overflow. It carries a Search button that opens the command palette without a keyboard, and an account menu with your name, organisation, role, and Sign out. Print and receipt views stay clean — the bar is deliberately suppressed there.
- The navigation matches your role: carers get Dashboard, My Animals, Feed Roster, Forms, and Care Tools; coordinators and admins additionally get Call Logs, Compliance, and Organisation. See Roles & Permissions.
- A tidier dashboard header: the greeting is now a page heading reading
Good morning, Samwith your organisation and jurisdiction beneath it. The large centred logo and the coloured role badge have moved into the workspace bar and account menu. - Notifications you can actually dismiss: every toast now carries an always-visible close button. It was previously hover-only, which made it unreachable on touch devices. Success and error messages also now appear on a number of screens — animal detail, incident and call log creation, feed roster, record and photo uploads, growth tracking — where they had been raised but never rendered.
- Plain-English errors: error messages across the app are rewritten into something actionable — "We couldn't connect. Check your internet connection and try again." instead of
Failed to fetch, and "You don't have permission to do that." instead ofForbidden. Database, network, and internal errors are replaced with a safe general message rather than leaking technical detail. Genuine guidance from the server (for example "Enter a valid email address.") is left exactly as written. The rewrite covers the admin panel, member portal, compliance pages, the public donate and join forms, and the public pindrop form.
Admin, role & permission changes
- Three new permissions govern Custom Forms:
form:manageandform:view_submissions(admin and coordinator) andform:submit(everyone). Carers can fill in any published form but see only their own submissions and cannot export. See Roles & Permissions → Custom Forms permissions. - Custom Forms is gated per organisation by a
CUSTOM_FORMSfeature flag. While it's off, the Forms nav entry is hidden and the routes report as not found. - The command palette now filters to your role: carers see only Dashboard, Animals, Care Tools, and the feed and growth calculators — the compliance, reporting, admin, and quick-action groups are hidden. Coordinators see everything except the admin people and organisation-settings shortcuts. The palette is also now scoped to workspace pages, so
Cmd/Ctrl+Kno longer opens on marketing, portal, or print views.
API or integration changes
- New Custom Forms API under
/api/custom-forms: list, create, read, update, and delete forms; read version history and roll back; list, submit, and delete submissions; and export a form's submissions as CSV or JSON. All routes are Clerk session-authenticated, tenant-scoped, permission-checked, and documented in the generated API Reference. - Offline batch submission:
POST /api/custom-forms/submissions/batchaccepts 1–50 records with client-generated IDs and de-duplicates replays, so a mobile device syncing a queued backlog twice won't create duplicates. Each record returns individually as created, de-duplicated, or rejected.
Database & schema changes
- New migration adding a
CustomFormStatusenum (draft, published, archived) and three tables:custom_forms,custom_form_versions(immutable per-save snapshots), andcustom_form_submissions(answers, location, weather, photos, notes, device metadata). Submissions carry a unique constraint on organisation, submitter, and client submission ID — this is what makes offline sync idempotent. - Deleting a form cascades to its versions and submissions. Unlike animal records, custom form submissions are hard-deleted and are not retained.
Bug fixes & behaviour changes
- Fixed a validation error that blocked creating a form from the title-and-description dialog before any fields had been added.
- Photo handling for custom forms: submissions now accept photos uploaded through WildTrack360's image service, render them as a gallery in the submission detail view, and clean up the stored files when a submission is deleted. Photo upload from the web form is still pending — it accepts pasted
https://links for now. - Fixed a build break in the compliance error copy that had frozen the staging and production images between 10 and 12 July. No user-visible change to the text itself.
- Added Trivy dependency, secret, and misconfiguration scanning to continuous integration, with findings surfaced in the repository's security tab. Internal only.
Documentation
- New Custom Forms module page
- Updated Roles & Permissions with the Custom Forms permissions and a navigation and command palette section
- Updated Getting Started with the new workspace navigation
- Updated Introduction and Data Export
Version 3.11.0 - Connect Your AI Tools, Record Deletion & Smarter Maps
Released: July 2026
This release opens WildTrack360 to outside AI assistants through a new MCP server, adds the ability to remove records from an animal's timeline (kept for compliance), and makes location maps start where you are.
User-facing features
- Connect an AI assistant (MCP server): connect Claude, ChatGPT, Cursor, or Claude Code to your workspace and ask it — in plain English — to list animals, look one up, add a care record, or run a report. The client signs in with Clerk OAuth and acts as you, with your exact role and species access; only one tool writes data and it is audit-logged. See the new MCP Server guide. (Unlike Wally, which lives inside the app, this connects the AI client you already use.)
- Delete records from the timeline: each entry on an animal's record timeline now has a trash button with a confirmation dialog. Deletion is a soft delete — the record is hidden from all normal views but retained in the database and in the full data export (flagged with Deleted, Deleted At, and Deleted By columns), so the record ledger stays intact for compliance.
- Maps start at your location: pindrop, carer, and location-picker maps now prompt for your browser location and centre on it, falling back to an Australia-wide view if you decline — instead of always opening on a fixed city. See Pindrop Location Requests.
- Consistent dates: feed roster date displays now include the year alongside the day, month, and time.
Admin, role & permission changes
- MCP tools respect the same RBAC as the app:
list_carers,run_report_query, andlist_saved_report_queriesrequire coordinator or admin;create_care_recordis gated to animals you can access; everything is tenant-scoped. See MCP Server → What the AI can do.
API or integration changes
- New MCP endpoint
POST /mcpwith Clerk OAuth 2.0 (RFC 9728 discovery + dynamic client registration). Requires a one-time Dynamic client registration toggle in the Clerk Dashboard. See MCP Server → One-time setup. - Record deletion endpoint
DELETE /api/records/[id](soft delete, org- and access-scoped, audit-logged). - Friendlier user references in API responses: endpoints and Wally/MCP outputs now surface user email/name instead of raw Clerk user IDs. Audit storage stays ID-based; raw exports keep the underlying Clerk IDs.
- Clerk invite errors clarified: the admin invite flow now returns a clear
403for permission failures and a502when the invitation provider fails, both documented in the API reference.
Database & schema changes
- Added
deletedAt/deletedByto the record model (plus an index) to support soft-deleted records; deleted records are excluded from all normal reads. - Audit logging no longer copies user name/email into new entries — those are resolved live from Clerk at view time. See Audit Logging.
Bug fixes & behaviour changes
- Faster dashboards: Custom Reporting aggregations (counts, sums, group-bys) are now pushed down to the database instead of loading every row and summing in memory, so dashboard widgets and reports stay fast as your history grows — with identical results. See Custom Reporting.
- User and carer details now display cleanly across dashboards, rosters, compliance pages, and training-expiry alerts, with safe fallbacks when a name or email can't be resolved.
Documentation
- New MCP Server module page
- Added a Deleting Records section to Animal Record History
- Updated Data Export, Audit Logging, Pindrop Location Requests, and API Reference
Version 3.10.0 - Wally Takes Action
Released: July 2026
Wally, the in-app AI assistant, can now do things for you instead of only answering questions. Everything Wally does uses your existing role and species-access permissions, is confirmed with you before saving, and is recorded in the audit log.
Wally can now act on your behalf
- Admit a new animal (admins and coordinators) — Wally collects the details, confirms them, and creates the record with the next animal ID in your organisation's sequence
- Add care records — feeding, medical, behaviour, weight, location, release, or general notes, for animals you have access to
- Log training certificates — for yourself, or for other carers if you're a coordinator or admin
- Record growth measurements — weight and body lengths saved straight to the animal's growth history
Wally can look things up and calculate
- Live lookups of your animals (including recent care records and growth measurements), carers, species, and training records — always scoped to what your role can see
- Growth calculator in chat: estimate an animal's age and birth date from measurements, or check whether a weight is on track for a known age, using the same species reference curves as the Growth Calculator
- Run Custom Reporting queries (coordinators and admins) and show the results in chat, with the query line included so you can reuse it at Tools → Reporting
Easier to get started
- Opening Wally now shows ready-made options — like "Admit a new animal", "Log a training certificate", and "Is this weight on track?" — so you can click instead of working out what to type
- Wally's welcome message explains what he can do and always confirms details before saving anything
Documentation
- Rewritten Wally AI Assistant page covering actions, permissions, confirmation rules, and audit trail
- "Ask Wally" tips added to Wildlife Admission, Carer Training, and Growth Calculator
Version 3.9.0 - Interactive API Reference & NSW Reminder Countdown
Released: July 2026
This release adds a live, self-documenting API reference for developers and integrators, and sharpens the NSW reporting reminders so their countdown stays accurate as deadlines approach.
API or integration changes
- Interactive API reference at
/api/docs: a browsable Scalar UI listing every endpoint, its parameters, request body, and responses, with a built-in "try it" console - OpenAPI 3.1 specification at
/api/openapi: the raw machine-readable spec, ready to import into Postman, Insomnia, or an OpenAPI code generator - The spec is generated from the code's per-route Zod contracts, so it always matches what the server validates, and a CI drift check keeps it from going stale
- Access: in production both routes require any signed-in user (no admin role); in local development they're open. Calling the underlying endpoints is still governed by the usual roles and permissions
- See the new API Reference guide
Bug fixes & behaviour changes
- NSW reminder countdown: the NSW reporting reminder banners and emails now count down to the real deadline — showing "in 14 days", "in 1 day", then "today" — instead of displaying a fixed label for the entire window, so the count no longer goes stale as the deadline nears. Applies to both the 30 June end-of-financial-year window and the 30 September annual-return window. See NSW Reporting Reminders
Documentation
- New API Reference module page
- Added an NSW Reporting Reminders section to the Compliance module
Version 3.8.0 - Member Engagement: Communications, Gifts, Households & Tax Statements
Released: June 2026
This release builds on the Membership & Payments platform with member engagement and lifecycle tools: admin-to-member communications, gift and household memberships, a member impact dashboard and digital membership card, cover-the-fees, end-of-financial-year tax statements, and automated renewal/lapse emails. Everything here stays behind the same opt-in MEMBERSHIP_PLATFORM feature flag, so organisations that haven't enabled it are unaffected.
Member-facing (Portal)
- Impact dashboard (
/portal/impact): members see organisation-wide care stats (animals cared for, released to the wild, species helped, in care now), animals released this financial year, and their own contribution (supporter-since, total donated) - Digital membership card (
/portal/card): a branded card with name, tier, membership number, validity, and a scannable QR code for event check-in, with add-to-home-screen guidance - Household (family) memberships: members on a household tier can add and remove secondary household members, who sign in with their own email, self-claim, and get their own card — all under one family membership
- EOFY tax statements: members self-serve a consolidated 1 Jul–30 Jun tax-deductible donation statement and print or save it as a PDF
- News feed & message inbox: members read organisation announcements and direct messages in the portal, with an unread badge
- Become a carer (
/portal/carer): members can express interest in volunteering as wildlife carers
See the new Member Portal guide for the full member-facing walkthrough.
Membership tiers
- Flexible billing intervals: tiers can now be One-off, Monthly, Annual, or Lifetime (previously every tier was a fixed annual commitment)
- Structured tier benefits: each tier carries an ordered list of member-facing benefit lines, shown as a checklist on the public join form and in the portal
- Starter tiers: one-click creation of a Supporter / Family / Lifetime starter set
Payments & donations
- Cover-the-fees: donors and members can opt to gross up their payment (~7.2%) so the organisation receives 100% of the intended amount; for memberships this carries through to every future renewal automatically. The charged amount is derived server-side from the tier price and cannot be tampered with client-side
- Gift / complimentary memberships: admins can grant a membership without payment (offline gifts, prizes, grants), which records the giver, reactivates lapsed members, and emails the recipient a welcome
Admin
- Member communications: publish organisation news (broadcast by email on first publish) and send personalised messages to selected members using merge tokens (
{{firstName}},{{orgName}},{{animalsHelped}},{{animalsReleased}}) - Tax statements view (Admin → Payments → Statements): per-donor totals and printable statements for a chosen financial year
- Member → carer interest triage (Admin → Carer interest): move applications through New → Contacted → Approved / Declined and link to carer onboarding
- Onboarding checklist: a "Set up your membership program" checklist on the Members page tracks Square connection, ABN, tiers, public join page, member import, and a welcome post, with deep links and live progress
Automated membership lifecycle
- A daily scheduled job expires finished membership periods and lapses members no longer covered, and sends renewal reminders (30/7/1 days before expiry for one-off annual memberships), a lapse notice, and win-back emails (~30 and ~90 days). Recurring memberships auto-renew and are not reminded. Emails are idempotent (sent exactly once per stage)
Admin / Role & Permission Changes
member:managenow also covers granting gift memberships, publishing news, messaging members, and triaging carer interestmember:view_alladditionally exposes the admin onboarding status
Database Changes
- New models:
NewsPost,MemberMessage,MembershipNotification(lifecycle email idempotency),CarerInterest - New fields:
Member.primaryMemberId(household self-relation),MembershipTier.benefitsJsonand user-configurablebillingInterval,Membership.giftedBy - New enums:
NewsPostStatus,MembershipNotificationKind,CarerInterestStatus - Delivered as Prisma migrations dated 2026-06-14; no new environment variables were required for this release
Operational fixes
- Multi-tenant URLs: Square OAuth callbacks and emailed links now derive each organisation's own subdomain at runtime instead of relying on a baked-in site URL, fixing callbacks that previously fell back to localhost in production
- Header hardening: forwarded host/proto headers are now sanitised (first hop only, restricted to the configured root domain) to prevent host-header spoofing and open redirects
- Scheduled tasks: the charge-due, membership-reminders, and token-refresh cron jobs no longer crash on startup from
server-onlyimports when run directly viatsx
Version 3.7.0 - Membership & Payments Platform
Released: June 2026
This release adds an opt-in Membership & Payments platform: an online member register, configurable membership tiers, public donate and join pages, a self-service member portal, and online payments through Square. See the Membership & Payments module for full details.
:::info Opt-in rollout
The whole bundle ships switched off for new organisations and is enabled per-organisation via a MEMBERSHIP_PLATFORM feature flag. Organisations that don't turn it on are unaffected.
:::
Members & Memberships
- Member register under Admin → Members: a sortable, filterable, paginated table of members with status and an editable joined date
- CSV import/export for members, including a downloadable sample template and row validation on import
- Custom member fields (Members → Fields) that also appear on the public join form
- Membership tiers with name, description, annual price, and GST handling; only active tiers appear publicly
- Carer ↔ member linking so existing carers can use the member portal and receive receipts (admin-run backfill)
Public Pages & Member Portal
- Public donate page (
/donate) and join page (/join) served on your organisation's subdomain — no login required - Embeddable Donate/Join buttons generated from Admin → Payments → Settings
- Member portal (
/portal) where members manage their membership, donate, manage or cancel recurring payments, update their profile, and download receipts
Payments, Receipts & Billing (Square)
- Square integration using the Payments API application-fee model: each organisation connects its own Square account via OAuth, funds settle directly to them, and the platform takes a flat 5% fee
- Automatic emailed receipts with sequential receipt numbers, using the organisation's registered legal name and configurable thank-you messages
- Annual auto-renewing memberships and recurring donations are self-billed via a vaulted card-on-file; repeated failures auto-cancel the subscription and notify admins
- Admin payment notifications by email for new payments, donations, and renewals
- Recurring charges and Square token refresh run as scheduled server tasks (replacing the previous queue/worker), so renewals happen automatically
Admin / Role & Permission Changes
- New permissions:
member:view_all,member:manage,membership:configure,donation:view - Admins receive all four; all-species coordinators receive
member:view_allanddonation:view
Organisation Settings
- New registered/legal name, organisation URL, and donation/membership thank-you message fields that drive public pages and receipts
Database Changes
- New tables for members, membership tiers, memberships, payments, donations, recurring subscriptions, form templates, receipt sequences, per-org feature flags, and Square connection/OAuth/webhook state, delivered as Prisma migrations
- New server-side environment variables for Square (
SQUARE_ENVIRONMENT,SQUARE_APPLICATION_ID,SQUARE_APPLICATION_SECRET,NEXT_PUBLIC_SQUARE_APPLICATION_ID,SQUARE_OAUTH_REDIRECT_URL,SQUARE_WEBHOOK_SIGNATURE_KEY,SQUARE_WEBHOOK_NOTIFICATION_URL) and anENCRYPTION_KEYfor encrypting Square tokens at rest
Version 3.6.0 - Command Palette, Customisable Dashboard & Mobile Weather
Released: June 2026
This release documents quality-of-life features that rolled out across late May and early June 2026.
Command Palette
- Quick navigation from anywhere in the app: press Cmd+K (macOS) or Ctrl+K (Windows/Linux) to open a search-as-you-type command palette
- Jump to any destination including the Dashboard, Animals, Compliance registers (register, carers, call logs, release checklist, hygiene, incidents, preserved specimens), the NSW Annual Report, Care Tools (Feed Roster and the feed calculators), and the Admin Panel
- Fuzzy search matches on title, description, and keywords, with the best matches ranked first (up to 12 shown)
- Keyboard driven: arrow keys move the selection, Enter opens the highlighted item, and Esc closes the palette. The shortcut is ignored while you are typing in a text field so it never interrupts data entry
Customisable Home Dashboard
- Drag to reorder the dashboard widgets (Call Log, Feed Roster, Key Stats, Training Alerts, Species Distribution, Recent Admissions, Carer Workload, Releases vs Admissions, Animals, and any saved custom-report widgets) into the layout that suits your role
- Resize widgets between full-width and half-width, and hide or show widgets you do not need
- Trend window control: choose the default timeframe for trend charts (4, 8, 12, or 26 weeks; default 8 weeks)
- Per-device persistence: your layout, sizes, hidden widgets, and trend window are saved in your browser's local storage, so the dashboard remembers your arrangement on that device. New widgets added in future releases appear automatically
- Note: because the layout is stored per-browser, it is not synced between devices and clearing browser data resets it to the default arrangement
API & Integration Changes
- New mobile weather endpoint:
GET /api/weather?lat={lat}&lng={lng}returns current conditions (description, an icon category, temperature and apparent temperature in °C, and relative humidity) for a location, used by the WildTrack360 mobile app. Requests require an authenticated, organisation-scoped session and validate the organisation subdomain - New environment variable:
GOOGLE_WEATHER_API_KEY(server-side only) must be set for the weather endpoint to work. It is backed by the Google Weather API and is independent of the OpenStreetMap mapping services, which still require no API key
No Database Changes
None of these features add schema, migrations, or seed data. Dashboard customisation is browser-local and the weather endpoint is a read-only proxy.
Version 3.5.0 - Wally Documentation Knowledge
Released: June 2026
Wally AI Assistant
- Docs-aware answers: Wally now uses the WildTrack360 public documentation when answering questions, so users can ask about modules, workflows, reporting, compliance, admin settings, and care tools without leaving the app
- Expanded starter prompts: Wally's example prompts now include documentation help, workspace summaries, reporting, compliance, admin, and care-tool scenarios
- Guidance constraints tested: New prompt tests verify that Wally includes documentation guidance and follows reporting rules
No Database Changes
Wally's documentation knowledge update changes assistant guidance, examples, and tests only. No schema changes or migrations are required for this release.
Version 3.4.0 - Feed Roster & Dashboard Surfacing
Released: May 2026
Feed Roster Tool
- New tool at
/tools/feed-rosterlisting every in-care animal (statusIN_CAREorREADY_FOR_RELEASE) with last-fed time, time since last feed, computed next-due time, and a status badge (overdue, due soon, or on schedule) - Smart interval inference: when an animal has two or more recent
FEEDINGrecords, the next feed is scheduled using the gap between the two most recent feeds (clamped to 2-24 hours). When fewer records exist, a life-stage-based fallback is applied (3h for neonates/pinkies, 4h for joeys/chicks, 12h for subadults/adults, 6h otherwise) - Sortable schedule: rows can be sorted by Most overdue (default) or Next feed due, with overdue rows highlighted in red on both desktop and mobile layouts
- Quick Log Feed dialog: carers can record a feed directly from the roster (fed-at time, food type, amount, notes) without opening the animal detail page. Submissions create a new
FEEDINGrecord and refresh the roster - Role-aware filtering: ADMIN, COORDINATOR_ALL, and CARER_ALL see all in-care animals; COORDINATOR sees animals in their assigned species groups plus their own; CARER sees only animals where they are the assigned carer
Dashboard Surfacing
- Carer summary widget on the home dashboard for CARER and CARER_ALL users, showing Overdue / Due soon (within 2 hours) / On track counts, the top 5 most-overdue animals with last-fed time and due time, an Open feed roster link, and a red banner when feeds are overdue
- Organisation summary widget on the home dashboard for ADMIN and COORDINATOR users, placed between the Call Log and Dashboard Stats sections, showing organisation totals (In-care animals / Overdue / Due soon / On track), a per-carer breakdown sorted by overdue count with badges for each carer's status, an Unassigned bucket flagged in orange when in-care animals have no assigned carer, the top 5 most-overdue animals with the responsible carer, and a follow-up banner prompting coordinators to verify or reassign
- Empty states are friendly and role-specific (e.g., "No animals currently assigned to you for feeding" vs "No animals currently in care")
- Same compute as the full roster: dashboard widgets share
src/lib/feed-roster.tsso the numbers shown on the dashboard always match the Feed Roster page
API Changes
- New endpoint:
GET /api/feed-rosterreturns the role-filtered list of feed roster items for the active organisation. Used by the home dashboard for client-side refresh after navigation or after a feed is logged - No breaking changes to existing endpoints
No Database Changes
Feed Roster reads from existing Animal and Record (type FEEDING) tables. No new schema, migrations, or seed data are required for this release.
Version 3.3.0 - Feed Calculators
Released: April 2026
Flying Fox Feed Calculator
- New tool at
/tools/feed-calculator/flying-foxcovering Grey-headed Flying Fox and Little Red Flying-fox pups - Two input modes: age in days or forearm length in mm
- Milk formula options: Wombaroo Flying-fox Milk Replacer, Wombaroo Impact (colostrum substitute), Di-Vetelact
- Per-stage outputs: expected weight, total daily mL, feeds per day (6 → 2 as pups mature), per-feed mL, stage husbandry notes, formula-specific guidance
- Conflict warnings: raised when age and forearm imply different stages
Macropod Joey Feed Calculator
- New tool at
/tools/feed-calculator/macropodcovering Eastern Grey Kangaroo, Red-necked Wallaby, Swamp Wallaby, and Common Wallaroo joeys - Flexible inputs: weight (recommended) and/or age
- Wombaroo stage recommendation: Impact, 0.4, 0.6, 0.8, or >0.8 based on species-specific weight thresholds
- Feed plan outputs: daily mL (10-20% of body weight), feeds per day (6 → 3), per-feed mL, stage guidance
- Transition warnings: raised when a joey is within 10% of the next stage threshold to prompt a 3-5 day blended transition
- Age-weight cross-check: warns when age and weight imply different stages
Tools Landing Page
- New
/toolspage: discoverable from a dedicated Tools link added to the desktop and mobile header navigation, visible to all roles - Client-side only: calculators run entirely in the browser with no database writes
No Database Changes
Both calculators are pure client-side tools; no schema changes or migrations are required for this release.
Version 3.2.0 - Animal IDs & Member IDs
Released: April 2026
Org-Configurable Animal IDs
- Animal ID template: Admins configure an ID format (e.g.,
{ORG_SHORT}-{YYYY}-{seq:4}) from a new Organisation Settings page in the admin panel - Auto-generation with peek/commit: New animals are assigned the next available ID automatically; abandoning a form does not consume a sequence number
- Always editable: Users can override the auto-generated ID at creation or any time during editing
- Uniqueness validation: The system prevents duplicate Animal IDs within the same organisation
- Displayed everywhere: Animal IDs appear on the animal detail page, dashboard cards, and all data exports
Member IDs
- New field on carer profiles: Optional free-text Member ID for mapping to your organisation's internal membership system
- Editable from two locations: The carer profile edit page and the admin People Management inline editor
- Per-organisation: The same person can have different Member IDs in different organisations
Organisation Settings
- New admin tab: Organisation Settings page under Admin > Admin Options for configuring the Animal ID template and organisation short code
- Live preview: See what generated IDs will look like as you configure the template
Compliance Readiness Checklist Updates
- New check: Member IDs: Flags members who are missing a Member ID
- New check: Animal IDs: Flags animals who are missing an Animal ID
- Dashboard banner: Admins see a standalone alert on the home dashboard when animals are missing IDs
Database Changes
- New model:
OrganisationSettings-- stores org short code and animal ID template per organisation - New model:
AnimalIdSequence-- per-org-per-year sequence counters for auto-generated IDs - New field:
memberIdonCarerProfile-- optional free-text member identifier
Version 3.1.0 - Growth Calculator
Released: April 2026
Growth Calculator
- Growth Chart: Interactive Recharts line chart showing actual weight (red) vs predicted weight (blue) over age in days, displayed on the animal detail page Growth tab
- Weight For Age (WFA): Calculates the difference between actual and predicted weight at each measurement date, colour-coded green/amber/red to flag animals falling behind
- Birth Date Estimator: Estimates date of birth from physical measurements (weight, foot length, arm length, etc.) using linear interpolation against species reference data. Appears automatically when an animal has no DOB and the species has reference data
- Growth Measurements: Dedicated measurement recording with weight (grams) and body part lengths (mm) -- head, ear, arm, leg, foot, tail, body, wing. Form adapts to show only relevant fields per species type
- Species Growth Reference Data: Pre-loaded reference curves for 8 species across macropods, possums, and flying foxes (male and female), sourced from published scientific literature (Poole et al. 1982, ARAZPA, Kerle 1984, How 1983, Divljan 2006, Hall & Richards 2000)
- Admin Growth Data tab: View reference data by species and sex with full academic citations
- Automatic deployment: Growth reference data loaded via database migration -- no manual seeding required
Database Changes
- New model:
SpeciesGrowthReference-- system-level growth reference data (age/weight/measurements per species+sex) - New model:
GrowthMeasurement-- per-animal measurement records with structured numeric fields
Version 3.0.0 - RBAC, Audit Logging & Admin Enhancements
Released: February 2026
🔐 Role-Based Access Control (RBAC)
- Three-tier role system: Admin, Coordinator, and Carer roles with granular permissions
- Species-Based Access Control (SBAC): Carers only see animals in their assigned species groups
- Self-service role provisioning: New users select their role on first sign-in
- Role migration tooling: Existing Clerk users can be grandfathered into the new role system
- UI guards: Navigation, pages, and actions adapt based on user role
- Defence-in-depth: Server-side role validation on all API endpoints
📋 Audit Logging
- Comprehensive event tracking: All CRUD operations, role changes, assignments, and logins are recorded
- Admin audit log viewer: Searchable, filterable, sortable, and paginated UI in the admin panel
- User identity capture: Logs include user names and email addresses
- Input validation hardening: Strict server-side validation on all audit log API parameters
✅ Compliance Readiness Checklist
- Dashboard widget for admins: At-a-glance EOFY readiness across three categories
- Carer profile checks: Verifies phone numbers, emails, and licence numbers for all members
- Training & licence checks: Flags expired certifications and licences
- Organisation profile checks: Confirms org name, jurisdiction, contact details, and licence number
- Direct action links: Each incomplete item links to the page where it can be resolved
- 24-hour dismissal: Checklist can be temporarily hidden
👥 Carer Profile Improvements
- Clerk-sourced identity: Names and emails are now read-only, sourced from Clerk
- Profile completion tracking: Dashboard alert for incomplete profiles
- Admins as universal carers: Admins can be assigned to any animal without species group restrictions
🐾 Animal Management Enhancements
- Quick-add animal button: New "Add New Animal" button on the dashboard for faster admission
- Simplified carer assignment: Dedicated "Assign Carer" / "Change Carer" button on animal detail pages
- Enhanced record timeline: Records now show who recorded each entry, description, notes, location, and timestamps
- Default admitted status: Animals are now created with "Admitted" status by default
🐛 Bug Fixes
- Fixed species combobox search losing focus inside dialogs
- Fixed silent PATCH failure when assigning carer to animal
- Fixed timezone issues in audit log timestamps
- Added wombat species (Common, Northern hairy-nosed, Southern hairy-nosed)
- Permanent care categories expanded with COMPANION and RESEARCH
Version 2.0.0 - NSW DCCEEW Compliance Update
Released: August 2025
🎯 Major Features
NSW Wildlife Rehabilitation Combined Annual Report
- Automated Report Generation: Complete Excel workbook generation matching DCCEEW template exactly
- All Required Worksheets: Nil Return, Transferred Animals, Permanent Care, Preserved Specimens, Register of Members, Privacy Notice
- Pre-populated Organization Data: Automatic population from Clerk authentication system
- Calendar Year Defaults: Reports default to current calendar year for easy annual reporting
NSW-Specific Data Collection
- Encounter Types: 70+ DCCEEW-specified categories organized into logical groups:
- Attacks & Collisions (bird, cat, dog, vehicle, etc.)
- Dependency & Diseases (abandoned, disease, dependent young)
- Environmental Factors (fire, flood, storm damage)
- Human Interference (illegal activity, entanglement)
- Animal Condition Assessment: 5-level scale (Good, Fair, Poor, Emaciated, Moribund)
- Pouch Condition Tracking: 15 developmental stages for marsupials
- Fate/Outcome Options: 30+ NSW-specific outcomes including all DCCEEW categories
- Weight Recording: Initial weight capture in grams for all admissions
Enhanced Location Management
- Automatic Address Extraction: Drop a pin on the map and get:
- Street address automatically populated
- Suburb/town automatically filled
- Postcode automatically captured
- State automatically determined
- Structured Address Storage: Separate database fields for address components
- Release Location Tracking: Automatic address capture when marking animals as released
- Google Maps Integration: Visual map interface for all location selection
- OpenStreetMap Nominatim: Reverse geocoding for accurate address extraction
🔧 Technical Improvements
Database Schema Updates
- Added NSW-specific fields to animals table:
encounter_type,initial_weight_grams,animal_conditionpouch_condition,fate,mark_band_microchip,life_stage
- Added structured address fields:
rescue_address,rescue_suburb,rescue_postcoderelease_address,release_suburb,release_postcode
- Added carer NSW fields:
executive_position,species_coordinator_forrehabilitates_koala,rehabilitates_flying_fox,rehabilitates_bird_of_preymember_since,training_level
Prisma Schema Mappings
- Proper snake_case to camelCase field mappings
- Support for both legacy and new field names
- Backward compatibility with existing data
Form Improvements
- Conditional Field Display: NSW fields only show when jurisdiction is NSW
- Smart Defaults: Forms pre-populate with sensible defaults
- Validation Enhancement: Comprehensive field validation with user-friendly errors
- Auto-population: Address fields populate automatically from map selection
- Controlled Inputs: Fixed React controlled component warnings
🐛 Bug Fixes
- Fixed form refresh issue that was clearing fields during data entry
- Resolved uncontrolled input warnings for number fields
- Corrected transfer animal filtering logic in NSW reports
- Fixed date validation to allow current year end dates
- Resolved Prisma client field mapping issues
📊 Animal Detail Page Enhancements
- Complete Field Display: All animal data now visible without entering edit mode
- Organized Sections:
- Basic Details (sex, age, dates)
- NSW Compliance Data (all NSW-specific fields)
- Address Details (structured rescue and release addresses)
- Notes section with formatted display
- Removed Image Placeholder: Cleaner interface without unused image section
📝 Documentation Updates
- Comprehensive NSW DCCEEW compliance documentation
- Detailed field reference for all NSW requirements
- Step-by-step NSW Annual Report generation guide
- Automatic address population feature documentation
- Updated compliance scoring information
🔐 Data Privacy & Security
- Privacy Notice included in NSW reports
- Secure data handling for member information
- Proper authorization tracking for special species
- Audit trail for all compliance-related changes
💡 User Experience Improvements
- Clerk Integration: Organization and user data auto-populated
- Smart Location Entry: No manual address typing required
- Release Workflow: Streamlined process with automatic data capture
- Error Messages: Clear, actionable validation feedback
- Responsive Design: Works on all screen sizes
🌐 Jurisdiction Support
- Full ACT Wildlife Code of Practice 2020 compliance (existing)
- NEW: Complete NSW DCCEEW reporting compliance
- Jurisdiction-aware field display and validation
- Automatic compliance rule application based on location
Previous Versions
Version 1.5.0
Released: July 2025
- Initial release checklist implementation
- Basic compliance scoring system
- ACT jurisdiction support
- Core animal admission workflow
Version 1.0.0
Released: June 2025
- Initial public release
- Basic wildlife admission and tracking
- Carer management
- Simple reporting capabilities
Coming Soon
Planned Features
- Queensland wildlife rehabilitation compliance
- Victoria wildlife rehabilitation compliance
- Automated report scheduling
- Mobile app for field data entry
- Advanced analytics dashboard
- Multi-organization data sharing
- Veterinary integration
- Training module with certification tracking
Known Issues
- Manual report submission still required (no automatic email to authorities)
- Limited batch editing capabilities
- No offline mode support yet
For feature requests or bug reports, please contact your system administrator or submit an issue through the support portal.