EDEN 100.99.31 — Validation report

Source baseline: EDEN 100.99.30
Release date: 2026-10-18

Implemented
- Owner notification on my_chat_member transitions to left/kicked for known destinations.
- Owner notification when getChat identifies the bot as kicked/not a member or reports chat not found/deleted.
- Temporarily disables active publication and forced-membership configuration while awaiting the owner decision.
- Owner-only decisions: remove from all lists; remove publication and preserve forced-membership config for rejoin; remove forced membership and preserve publication config for rejoin; keep both until rejoin.
- Publication cleanup includes managed destinations, challenge destinations/defaults, Uploader folder publication selections and reference links, role-matching defaults, group/global moderation targets, collection managed links, and forced-membership mappings when requested.
- On rejoin, restores only the configuration the owner chose to preserve.
- Suppresses repeated generic System Error logging for expected kick/not-member API responses and skips repeated sync attempts while a decision is pending.
- Historical publication/financial records are preserved; destinations are deactivated from active lists rather than physically deleting history rows.

Validation completed
- PHP syntax checks: 78 files passed php -l.
- API reason classifier tests passed: kicked, bot not a member, chat not found, group chat deleted, and unrelated error not classified as a removal.
- Static assertions passed for owner-only callback routing, all four choices, module-list cleanup paths, and sync de-duplication.
- update.json parsed successfully, version 100.99.31 confirmed, and manifest file paths exist.
- ZIP archive integrity checked with unzip -t; project files are stored at archive root.

Limitations
- No live Telegram webhook/Cron test, production database migration, or delivery-to-owner test was possible in this environment.
