mirror of
https://github.com/pyMC-dev/pyMC_Repeater.git
synced 2026-11-06 13:22:27 +01:00
Fourth review round (opencode; codex hit its usage limit): - update_identity's hot reload was always refused: the identity manager rejects a name or hash already registered, which the running room's own entry always is. The ACL name index then lagged the config, so a renamed room was unmanageable by name, and a later rekey left a second live, writable ACL. The old entry is now unregistered first and restored if the new registration is refused (IdentityManager.unregister_identity), and a move falls back to the store key when the name misses. - A key change whose save and cleanup both failed left a copy at the new key that blocked every retry. A copy under the room's own label is replaced on retry; another identity's entries still refuse the move. - A registration now detaches the ACL it replaces before loading, warns when it displaces another identity sharing its hash byte, and the no-store guard for a key change lives in LoginHelper.move_room_acl. - /acl_stats is documented as it has always answered; store_error and store_errors say they clear once a later read succeeds; the example config says room servers keep their own security settings.