Actual scope: global balance change
This variant makes all HP/SP auto-recovery items processed by AutoRecoveryItemProcess non-depleting. It removes capacity consumption and hides the remaining-percentage line in the tooltip. It is not a duration extender, selected-VNUM premium feature or whitelist. Do not install it if only a few event items should be permanent.

M2City r1 correction
The supplied deficit calculation could overflow signed 32-bit arithmetic when adding current HP/SP and pending recovery. The reviewed helper computes the deficit in 64 bits and caps the addition so pending recovery stays within signed 32-bit limits. Nonpositive maximum values and corrupt negative pending recovery add nothing. Existing dead, stun, player and arena checks are retained; commented-out legacy capacity code was removed from the reviewed copy, with the untouched original preserved.

Integration and policies
Merge the helper and reviewed AutoRecoveryItemProcess into game/char_item.cpp without discarding protections added by your branch. This review assumes signed 32-bit HP, SP and recovery points, as in the supplied code. A fork using wider point types needs its matching range, not a blind cast. The optional ENABLE_PVP_ADVANCED BlockPotion guard only covers HP in this copy; reconcile SP and duel rules with your intended game design.
The Python tooltip fragment hides remaining capacity globally and does not add an Infinite locale label. Make client/server changes together. If you need permanent items alongside normal consumable elixirs, implement a shared VNUM/type policy and preserve the normal branch for excluded items. No SQL migration, item proto or new item assets are provided.

Validation
Both supplied text fragments were read. The revised arithmetic compiled with signed-overflow traps and passed normal/full/overfilled recovery, negative pending values, INT_MIN/INT_MAX boundaries and 512 combinations. UBSan runtime was unavailable, so no sanitizer result is claimed. The full affect/item lifecycle, login restoration, arena transitions and game server were not run. Original archive and review notes are included; exact upstream author/version was not established.

Editorial resource — M2City
Version: Legacy integration fragments; exact fork unspecified; M2City r1 (2026-11-04)
Rights: Public redistribution confirmed by owner; upstream notices retained. No blanket open-source relicensing.
Validation: Revised recovery arithmetic compiled with signed-overflow traps (-ftrapv). Normal/full/overfilled, negative pending, INT_MIN/INT_MAX and 512 boundary combinations passed. UBSan runtime was unavailable; no sanitizer result is claimed. The full character/affect lifecycle and game server were not built or run.
Source: Owner-supplied source; public creator/feature reference where established
SHA-256: 279828a281f1e61a049c35f3a20e9ee300d9acc06d73a49076983eb82ca3ee52