GLMChat V2.2.1 Release Hardening Report Generated: 22 July 2026 12:56 UTC Implemented: - AES-GCM protection for sensitive IndexedDB cache records, drafts, conflict payloads and queued mutation payloads after PIN unlock. - Automatic migration of existing plaintext V2.2 offline records after the next successful PIN unlock. - Seven-day maximum age for offline credentials before online sign-in is required. - Offline lock now clears both the in-memory session and local data-decryption key. - Service-worker updates wait for explicit user installation rather than activating over a live tab. - Normal update-ready and service-worker-failure user notices. - Fixed the non-navigation service-worker fallback to always return a Response. - No-cache headers for non-fingerprinted runtime helper scripts. - Production preview-query bypass removed. - Mock Together provider restricted to APP_ENV=test. - New-chat manifest shortcut added. - Unused Workbox Window asset removed. - Light-only production palette applied. - Public-root duplicate documentation removed; external documentation remains authoritative. - SBOM and deployment manifest regenerated for the final V2.2.1 tree. - Third-party licence notices added to the distribution. Not claimed as completed: - Live LiteSpeed root and nested-path acceptance. - Live Together text, vision, tools or TTS calls. - Physical Android Chrome, Samsung Internet or TalkBack acceptance. - Reproduction of the original source-level Node/PHP/browser suites, because their source and test files are absent from this deployment-only bundle.