Changelog
Release notesUpdated 31 August – 2 September 2026What changed in BIOGAS/OPS, newest first. Written for the people who run a plant, not for the people who write the code: one line per change you would notice. Housekeeping — dependency bumps, test plumbing, refactors — is left out.
History starts 20 July 2026, when the pilot build became the product.
31 August – 2 September 2026
- Digester volume now comes from the plant's own configuration, and any screen that needs it says so plainly when it has not been set.
- Cascade storage is reported as measured CBG mass with its unit, replacing a fill percentage that was computed from the wrong quantity.
- Pre-processing batches are single-use: feeding a batch that has already been consumed is refused rather than silently double-counted.
- Heavy-metal results can no longer be amended after a digestate batch is released; corrections go through a new batch.
- The Form 10 waste register is written from the disposal workflow itself, so the register and the disposals cannot drift apart.
- Waste can be traced back to the item that generated it.
- Spare parts can be issued directly against a work order.
- Form 4 annual return joined the inventory navigation, in every language.
- Your company logo and letterhead now appear on reports, certificates of analysis, exports and the gate pass.
- Adding a module to a company cascades to plant-level module access, so a newly bought module is usable immediately.
- Unfinished surfaces are now hidden rather than half-shown: the Intel prediction route and the sensor/alarm subsystem only appear where they are switched on.
- The landing page no longer advertises WhatsApp and SMS alerts, which are not built.
- Security: invitation-to-plant records are covered by tenant isolation, and user-supplied text in transactional email is escaped.
24 – 30 August 2026
- Production-readiness pass: 10 critical and 46 high-severity findings closed across authentication, invitations, multi-factor enrolment and the deployment runbooks.
17 – 23 August 2026
- Plant-local days everywhere: today, this month, this year and every document number now resolve in the plant's own timezone rather than the server's.
- Lab results gained a per-result review flow — approve or reject, with a segregation-of-duties guard and an audit trail — and the results index names the analyst.
- One SLA rule across the lab: four screens that each had their own idea of "overdue" now read the same setting.
- Out-of-spec and flagged results are shown as the different things they are.
- Dispatch: GST is applied per product from the standards table (18% gas, 5% FOM) instead of one blended rate, and the certificate-of-analysis release gate is enforced on the server.
- Deep links into dispatch and admin no longer flash a 404 before loading.
- A stale or missing reading now degrades to "not reporting" instead of being presented as healthy.
- Design system: shared primitives across all modules, module colour restored to a single meaning, and roughly 60 screens reworked — lab, gas, digester, dispatch, inventory, maintenance, team, spares, admin, fleet and the public certificate verification page.
- Every table and form reviewed at 390 px, the width a phone in a plant actually has.
10 – 16 August 2026
- Performance and scale pass across the API and the database.
- Waste register types, gas-reading edits and payroll denials fixed ahead of the pilot.
- Authorization boundary tightened: several endpoints that answered outside the caller's plant no longer do.
- Sign-in learned company codes, so a plant sees its own branding on the login screen; the word "tenant" is gone from the interface.
- Your profile, security and preferences moved to a proper /account area.
- An explicit light or dark choice is now preserved instead of being overridden by the device setting.
- Contrast and colour rebuilt for module and severity badges so status is legible in both themes.
3 – 9 August 2026
- Sessions refresh quietly instead of dropping you at the login screen mid-shift.
- A tab left open across a deployment no longer silently breaks shift entry.
- Gas shift readings roll up under the plant's day, not the server's.
- An empty plant now explains itself instead of drawing a screen of blank panels.
- List screens gained real pagination.
- Inventory compliance, lot lookup and breach acknowledgement are scoped to the caller's plant.
- Living Systems visual language rolled out across the dashboard, gas production, CISIM and the lab.
27 July – 2 August 2026
- New-tenant onboarding works end to end; the bootstrap platform admin is environment-driven and retired logins are disabled rather than deleted.
- An expired subscription used to lock the tenant out with no way forward — there is now a way out.
- Payroll stopped double-counting bounties and duplicate attendance.
- Reported figures are honest: invented and understated numbers removed, absent values shown as absent.
- The stockyard plan is drawn from its own origin, so the yard on screen matches the yard on site.
- Forced password change is enforced on the server, not just in the browser.
- Redis configuration is respected — cache settings that were being ignored now take effect.
- The authentication backend is chosen explicitly instead of being inferred from the environment name.
- Rebuilt landings for Feed, Gas, Lab, Dispatch, Intel, Inventory, Digester, CISIM and Team, plus a plant-manager process map and a Plant Head morning console as the home screen.
- Lab: samples now show who took them; four decisions on lab roles and permissions implemented.
20 – 26 July 2026
- Gate entry and shift entry rebuilt as operator-grade forms; supplier and transporter are search-then-create pickers.
- Net weight at the gate reads "unknown" when it is unknown, instead of zero.
- Lab: results entry was impossible on a phone and is now usable; sampling point and priority became real fields rather than free text; test packages can no longer be published with no parameters; batches and digestate rejoined the navigation.
- Chain of custody became the spine of sample detail.
- Certificate-of-analysis pages no longer report a load failure for a sample that simply has no certificate.
- Gas: the IS-16087 quality indicator was measuring a blend of two streams and now measures one; cascades fill cylinder by cylinder; flare state is shown rather than inferred.
- Digester: FOS/TAC is a dial with its bands drawn, live while you type; feeding progress no longer hides overfeeding.
- A lab result can be traced to its delivery and its supplier.
- Maintenance stopped showing operators a button that would refuse them.
- The em dash is now the app-wide way of saying "no value", so blank and zero are never confused.
- Four module and status colour collisions resolved; three real contrast failures fixed.
- Two endpoints the interface already called were never routed, and now are.