EDEN 100.9.12 — Validation Report

Release
- Version: 100.9.12
- Based on: 100.9.11

Syntax and package metadata
- 75 PHP files linted with PHP CLI: 0 syntax errors.
- update.json is valid JSON and reports version 100.9.12.
- VERSION and update.json versions match.
- Updater manifest: 294 unique paths, 0 duplicate entries, 0 missing files.
- Changed runtime files included in updater manifest: modules/Legacy/legacy.php, modules/MemberProfileAdmin/module.php, app/helpers.php.

Moderation static checks — all passed
- Warning counters are keyed to both group chat_id and target user_id.
- Warning removal queries and updates only the current chat_id + target_id pair.
- Automatic warning-based mute uses the current group's chat_id.
- Automatic warning-based ban uses the current group's chat_id and does not invoke the global-ban request flow.
- Current user profiles now separate warning totals, active mutes, and active bans.
- Administrative profile has separate warning, mute, and ban tables; history has separate warning/mute/ban filters.
- Group member card has separate warning/mute/ban status and history tables.
- Telegram getChatMember status takes priority over stored history when available. If Telegram cannot return a live status, the interface labels it as unverified instead of asserting that an old database entry is still active.
- 13 static moderation/profile checks passed.

Limitations
- No production database or live Telegram bot credentials were used. Runtime getChatMember results and actual group moderation operations require live verification after deployment.
