Paladium Bot v100.3.77 — Final Test Report
==========================================

Source baseline:
- paladium-single-bot-100.3.76-final.zip

User-reported regressions addressed:
1. RICH1 leaked into folder file button titles.
2. Folder/default-caption Premium Emoji downgraded to ordinary glyphs in preview/edit UI.
3. Statistics requested in table format.
4. Button Premium Emoji path intermittently failed because mb_substr() was called with an invalid argument position.
5. Text-file deep-link delivery path retained.

Implemented:
- Folder file list and previous/next navigation use plain button labels; internal RICH1 envelopes never reach button text.
- Stored custom_emoji entities are promoted to Telegram native icon_custom_emoji_id for eligible inline buttons.
- Leading Premium Emoji map entries are converted to native button icons without losing their registered ID.
- Folder captions are canonicalized from default_caption + default_caption_entities_json and missing custom_emoji entities are reconstructed from the configured Premium Emoji Map.
- Folder caption preview/edit/render uses the same Rich entity payload instead of plain-text downgrade.
- Statistics are rendered as readable fixed-width tables inside <pre>; RICH1 is stripped from table cells.
- The malformed mb_substr() call in the Premium Emoji button-map path was corrected to use a null length and explicit UTF-8 encoding.
- Text files continue to resolve through pu_file_* and send their stored text body to the member.

Validation:
- PHP syntax lint: PASS — 73 PHP files, 0 errors.
- RICH1 payload decode: PASS.
- Native custom_emoji entity and custom_emoji_id preservation: PASS.
- Premium Emoji Map -> native custom_emoji entity reconstruction: PASS.
- Folder caption canonicalization -> exact Premium Emoji ID preservation: PASS.
- Ordinary Premium Emoji button -> icon_custom_emoji_id + plain label: PASS.
- RICH1 button -> native icon + no RICH1 leakage: PASS.
- Statistics -> table block: PASS.
- Statistics -> no RICH1 leakage: PASS.
- No executable tg('sendRichMessage', ...) calls: PASS.
- ZIP integrity: PASS after packaging.

Production limitation:
- Live Telegram/cPanel production requests cannot be executed from this environment. Deploy and test one real folder caption containing a registered Premium Emoji, then open the folder/member link once.
