I understand the motivation behind this, but reducing from 4GiB to 3GiB is somewhat drastic. What about a smaller increment, like from 4GiB or 3.8-3.9GiB? That still leaves 100-200MB of heap available if the developer hits the new wasm memory limit which should be enough for recovery or migration, right?
Also, I remember proposing the canister_on_low_heap_memory
hook for canisters in Canister Lifecycle Hooks
Would a higher “safe” limit plus adding a heap memory lifecycle hook suffice?
Also, as a follow-up, what are the implications of this feature on the work that’s being done to bring 64-bit heap memory to canisters?