Skip to main content

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.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:manage now also covers granting gift memberships, publishing news, messaging members, and triaging carer interest
  • member:view_all additionally exposes the admin onboarding status

Database Changes

  • New models: NewsPost, MemberMessage, MembershipNotification (lifecycle email idempotency), CarerInterest
  • New fields: Member.primaryMemberId (household self-relation), MembershipTier.benefitsJson and user-configurable billingInterval, 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-only imports when run directly via tsx

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_all and donation: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 an ENCRYPTION_KEY for 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-roster listing every in-care animal (status IN_CARE or READY_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 FEEDING records, 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 FEEDING record 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.ts so the numbers shown on the dashboard always match the Feed Roster page

API Changes

  • New endpoint: GET /api/feed-roster returns 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-fox covering 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/macropod covering 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 /tools page: 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: memberId on CarerProfile -- 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_condition
    • pouch_condition, fate, mark_band_microchip, life_stage
  • Added structured address fields:
    • rescue_address, rescue_suburb, rescue_postcode
    • release_address, release_suburb, release_postcode
  • Added carer NSW fields:
    • executive_position, species_coordinator_for
    • rehabilitates_koala, rehabilitates_flying_fox, rehabilitates_bird_of_prey
    • member_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.