Sometimes it helps to rethink the boundaries.
A refactoring approach that has worked for me is to move that instability into a single shim layer:
– specify the exact behavior you rely on (via tests),
– isolate it behind a small interface,
– vendor/duplicate only the minimal internal logic needed there,
– and confine Julia-version adaptations to that boundary.
In similar situations, this reduced patch churn and clarified ownership of the contract.