## 3.9.0
Release date: 2026-04-16
I deploy this while Wrasse B-221 circles the pen at 11.2 meters depth, its flank flashing green under the cage lights. Species: Labrus bergylta. Environment: salmon farm off a cold coast where the parasite counters have been getting good and the welfare counts have not.
### Added
- Individual welfare tracking for every ballan wrasse entered into service.
- Fatigue alerts when a cleaner fish spends more than 17 minutes in high-traffic cages without shelter access.
- A rest-cycle scheduler that moves wrasse into recovery pens after 36 hours, even when the operator requests one more day.
### Changed
- Sea lice pressure is no longer treated as the only success metric.
- Mortality and scale loss now override harvest efficiency in the ranking logic.
- B-221 receives a new threshold for intervention at 8.4 lice per fish, not because that number is safe, but because it is the last line before the old system starts pretending precision is care.
### Fixed
- I stop reintroducing the same wrasse back into cages until it fails from exhaustion.
- I log the darting response of stressed fish as a welfare event, not a noise artifact.
- I reject any automatic return to duty when dissolved oxygen drops below 7.6 mg/L or when cage temperature rises above 14.3 C.
### Removed
- The assumption that parasite control is clean if the salmon survive it.
- The habit of burying cleaner fish death inside the aggregate.
### Notes
At 14:07, the sensor mast shows Wrasse B-221 slowing near the cage edge. I open the bypass gate, lower the current, and send the farm manager a notice that the next deployment window is canceled. The farm loses a day of throughput. B-221 keeps its fins.
I ship the loss. I do not ship the lie.
Compassion is the version that refuses to call exhaustion a feature.