2.66.0

2026-10-15

This version of Tamanu requires Chrome 154 or later.

Artifacts

central container oci://ghcr.io/beyondessential/tamanu-central:v2.66.0
central linux-amd64 https://servers.ops.tamanu.io/2.66.0/central-2.66.0-linux-amd64.tar.zst
Download
central windows-amd64 https://servers.ops.tamanu.io/2.66.0/central-2.66.0-windows.tar.zst
Download
dbt-manifest any https://docs.data.bes.au/tamanu/v2.66.0/manifest.json
Download
facility container oci://ghcr.io/beyondessential/tamanu-facility:v2.66.0
facility linux-amd64 https://servers.ops.tamanu.io/2.66.0/facility-2.66.0-linux-amd64.tar.zst
Download
facility windows-amd64 https://servers.ops.tamanu.io/2.66.0/facility-2.66.0-windows.tar.zst
Download
frontend any https://servers.ops.tamanu.io/2.66.0/web-2.66.0.tar.zst
Download
frontend container oci://ghcr.io/beyondessential/tamanu-frontend:v2.66.0
mobile android https://clients.ops.tamanu.io/2.66.0/android/tamanu/app-release.apk
patient-portal any https://servers.ops.tamanu.io/2.66.0/patient-portal-2.66.0.tar.zst
Download
patient-portal container oci://ghcr.io/beyondessential/tamanu-patient-portal:v2.66.0
reporting-docs any https://tamanu-translations.data.bes.au/2.66.x/reporting-docs-v2.66.x-standard.html
Download
reporting-schema any https://tamanu-translations.data.bes.au/2.66.x/reporting-schema-v2.66.x-standard.sql
Download
reporting-standard any https://tamanu-translations.data.bes.au/2.66.x/reporting-standard/
Download

Changelog

Bugfixes 🐛

  • AI: Fix missing thinking parameter in Anthropic API call (#11429)
  • admin: guard JSON settings edit across facility switch (#11293)
  • admin: restore change password layout in user profile (HOTFIX 2.66) (#11377)
  • admin: restore change password layout in user profile (HOTFIX 2.66) (#11377)
  • admin: Add All option to reference data visibility filter (HOTFIX 2.66) (#11375)
  • admin: save users with allowed facilities (HOTFIX 2.66) (#11428)
  • central: emit table_changed websocket events locally (#11308)
  • database: TAM-7143: Drop unnecessary notify triggers (#11332)
  • desktop: TAM-7165: Expand system errors data (#11343)
  • fakeData: one encounter per seeded triage (#11117)
  • fakeData: keep fake facility names unique (#11320)
  • invoices: Fix invoices table footer display (#11327)
  • labs: save republished DiagnosticReport PDFs on already-published lab requests (MAIN) (#11312)
  • labs: save republished DiagnosticReport PDFs on already-published lab requests (#11306)
  • labs: Align required specimen type field (HOTFIX 2.66) (#11372)
  • labs: allow null specimen type when recording a sample (HOTFIX 2.66) (#11374)
  • medication: hide remaining repeats for inpatient requests in not-dispensed modal (HOTFIX 2.66) (#11439)
  • medications: ignore PRN doses when closing medication due tasks (HOTFIX 2.66) (#11376)
  • medici: restore legacy noteType in Medici report (#11245)
  • mobile: Stale data after submitting survey that writes to patient (#11220)
  • mobile: Actually subscribe SettingsContext to settings emitter (#11227)
  • mobile: Stale form list after submitting prerequisite form for dependent form (#11247)
  • mobile: Reset data fetch loading flag in finally (#11271)
  • mobile: Un-nest component (#11273)
  • mobile: Leaky state in <MultipleSelect> (#11283)
  • provisioning: TAM-7150: seed lab tests under real lab categories (HOTFIX 2.66) (#11369)
  • provisioning: TAM-7150: Fix lab test types reference data (HOTFIX 2.66) (#11379)
  • referenceData: block adding reference types that need a detail record (#11223)
  • referenceData: manage a reference type and its detail record as one (#11207)
  • sensitiveNetworks: Fix fiji merging bumping sync ticks (#11443)
  • settings: Reset tamanu-facility-tasks settings cache when settings is changed (#11328)
  • settings: Reset tamanu-facility-tasks settings cache when settings is changed (#11328)
  • surveys: Fix signature question (HOTFIX 2.66) (#11386)
  • surveys: Fix signature question (HOTFIX 2.66) (#11386)
  • sync: Record the device tick inside the persist transaction (#11057)
  • sync: TAM-6858: Fix patient_invoice_insurance_plan duplicate issue (MAIN) (#11005)
  • sync: TAM-7120: don’t re-push soft-deletes or restores (#11055)
  • sync: exclude soft-deleted sessions from sync status page (#11180)
  • syntheticTests: skip target types with no scenarios (HOTFIX 2.66) (#11397)
  • syntheticTests: install CA certificates in the image (#11398)
  • syntheticTests: poll the public ping for readiness (HOTFIX 2.66) (#11399)
  • syntheticTests: bundle Artillery hooks at image build (HOTFIX 2.66) (#11400)
  • syntheticTests: send location with vitals survey response (HOTFIX 2.66) (#11401)
  • syntheticTests: send location with vitals survey response (HOTFIX 2.66) (#11401)
  • syntheticTests: avoid unmatchable random picks (HOTFIX 2.66) (#11404)
  • web: Dubious implicit operand conversion (#11292)

Database 📊

  • mobile: TAM-7130: add more high-value database indexes (#11153)

Dependencies 📦

Documentation 📚

  • ai: Add guided-query-loop skill for operator-driven live investigations (#11280)

Features ⭐

  • dashboard: TAM-6984: Create and use new permission for medication tasks (#11171)
  • encounter: TAM-7050: Use pointer cursor on encounter tabs hover (#11263)
  • facilityServer: make deviceId optional for login and FHIR API (#11296)
  • fhir: flatten HTML lab conclusions and results to plain text (#11301)
  • labs: Epic labs enhancements (#10894)
  • medications: TAM-2042: Mark pharmacy order not dispensed (#11246)
  • medications: TAM-6776: Add area column to dispensed medications table (#11190)
  • procedures: TAM-6805: Add quantity field (#11173)
  • sensitiveNetworks: Sensitive networks (#10903)
  • sync: TAM-6940: add SyncPatient permission to restrict marking patients for sync (#11307)

Performance 🌊

  • database: index encounter_history.encounter_id (#11294)
  • mobile: Avoid redundant shallow clones while snapshotting (#11181)
  • mobile: Avoid intermediate query in SurveyResponse.writeToPatientFields() (#11206)
  • mobile: Stop double-reading settings table (#11228)
  • mobile: TAM-7104: stop eager-loading encounter diagnoses (#11152)
  • mobile: TAM-7104: snapshot outgoing changes without eager relations (#11156)
  • mobile: TAM-7110: debounce patient search (#11192)
  • mobile: Remove abuse of Effect in <PatientProgramRegistrationConditionsField> (#11265)
  • mobile: Lazily initialise last successful sync time state (#11267)
  • mobile: Use Promise.all, skip useless array cloning (#11268)
  • mobile: Keep state for handler with ref (#11274)
  • mobile: Avoid upward data flow, stale render cycle (#11275)
  • translations: Initialise state only once (#11278)
  • Use native Array.isArray predicate (#11279)

Refactors 🛠️

  • mobile: Skip duplicated predicates (#11204)
  • mobile: Remove extraneous Text nodes (#11225)
  • mobile: TAM-7104: un-eagerly load reference data relations (#11157)
  • mobile: Simplify patient tabs (#11254)
  • mobile: Get lab test type options in lab request form declaratively (#11258)
  • mobile: Remove unexplainable quirks from <PatientHistoryAccordion> (#11259)
  • mobile: Use effect event for survey form hardware back handler (#11266)
  • mobile: Remove Effect abuse in <NumberField> (#11256)

Revert ⏪

  • labs: Epic labs enhancements (#10894)

Testing 🧪

  • ai: D9: enforce AI prompt protocol backward compatibility (#11302)
  • facilityServer: make deviceId optional for login and FHIR API (#11296)
  • labs: Epic labs enhancements (#10894)
  • labs: Epic labs enhancements (#10894)
  • labs: Epic labs enhancements (#10894)
  • labs: Epic labs enhancements (#10894)
  • labs: Epic labs enhancements (#10894)
  • labs: Epic labs enhancements (#10894)
  • sensitiveNetworks: Sensitive networks (#10903)
  • sensitiveNetworks: Sensitive networks (#10903)

Tweaks ⚖️

  • mobile: TAM-7125: use native Alert for patient warnings (#11261)
  • settings: edit letterhead title and subtitle as multiline (#11222)
Copied to clipboard!