The module-level EOS table caches in src/proteus/interior_energetics/aragog.py (_entropy_eos_cache and _entropy_eos_jax_cache) grow without bound. Each table regeneration produces a new content key, and each miss adds a permanent entry holding a full interpolator set (and JAX artifacts on that path) for a table set that will never be read again, since regenerated tables never revert to an old content key.
On a long accretion run with #817, every impact regenerates the tables, and composition-triggered regenerations add more entries. Keep-last-N eviction (N=2 is enough for any rollback the solver can perform) would bound memory with no behaviour change.
The module-level EOS table caches in
src/proteus/interior_energetics/aragog.py(_entropy_eos_cacheand_entropy_eos_jax_cache) grow without bound. Each table regeneration produces a new content key, and each miss adds a permanent entry holding a full interpolator set (and JAX artifacts on that path) for a table set that will never be read again, since regenerated tables never revert to an old content key.On a long accretion run with #817, every impact regenerates the tables, and composition-triggered regenerations add more entries. Keep-last-N eviction (N=2 is enough for any rollback the solver can perform) would bound memory with no behaviour change.