GLMCHAT V2.2.1 — CONTINUED ENVIRONMENT AND VALIDATION REPORT Generated: 2026-07-22 15:47:33 UTC INPUT - GLMCHAT_V2.2.1_SERVER_DIRECT_DEPLOY_22072026133627.zip - Input SHA-256: e0ffe8a5430f6f53e7e2e3084adb83ee4876131bb572c269a740b7dcf8b04dbe OUTPUT - GLMCHAT_V2.2.1_SERVER_DIRECT_DEPLOY_CONTINUED_22072026154516.zip - Output SHA-256: b67db56f204c6131fea9f046601d02b39cf4f8e365237ef661c21328aa50176e - Direct-extraction layout: Passed - ZIP file entries: 85 - ZIP directory entries: 7 CHANGES - Corrected README claims that referred to a removed app/ wrapper and absent ../documentation files. - Corrected the unsupported claim that headless Chromium evidence had been completed. - Regenerated the deployment manifest from the actual final tree. - Updated the CycloneDX SBOM timestamp and README hash. - Added CHANGES_154522072026.txt with the complete unified diff and verification section. - No runtime source, routes, migrations, styles, assets, service worker, configuration, database schema or user data changed. ENVIRONMENT - Debian GNU/Linux 13 - Apache 2.4.66 compatibility harness - PHP 8.4.16 - Node.js 22.16.0 - Python 3.13.5 - Available PHP requirements: json, openssl, fileinfo - Unavailable PHP requirements: sqlite3, curl, mbstring, zip VALIDATION COMPLETED - Baseline snapshot: Passed - PHP syntax: 44/44 passed - JavaScript syntax: 7/7 passed - Structural, security, PWA and SQLite checks: 281 passed - JSON documents: 4/4 parsed - Deployment manifest: 81/81 entries verified - SBOM runtime file inventory: 80/80 entries verified - Precache references: 15/15 present and safe - HTML local references: 10/10 present - Icon dimensions: Passed - Fresh SQLite migration sequence: 13/13 passed - Repeated migration 013: Passed - Migration 12-to-13 upgrade: Passed - SQLite integrity: Passed - Foreign-key checks: Passed - Apache-compatible domain-root routing: Passed - Apache-compatible nested-subdirectory routing: Passed - History fallback: Passed - Protected server/storage/report paths: Returned 403 - Fingerprinted asset immutable caching: Passed - Runtime asset no-store caching: Passed - Plain HTTP rejection: Returned 403 - Controlled API preflight: Returned 503 ENVIRONMENT_INVALID with only the four unavailable PHP extensions - ZIP compressed-data integrity: Passed - ZIP traversal, absolute path, duplicate and symlink checks: Passed - Extracted content matched the final source tree exactly NOT RUN - Source build, type-check and original automated test suites: the deployment bundle contains no source repository, package files or tests. - Successful PHP backend, authentication and SQLite workflows: required PHP extensions are unavailable in this container. - Live LiteSpeed hosting acceptance. - Live Together text, vision, function-tool and TTS requests. - Browser automation, physical Android Chrome, Samsung Internet and TalkBack acceptance. DISPOSITION The output ZIP is verified for direct extraction into the intended HTTPS web directory. It is a conditional staging release, not a full production acceptance, until the target server provides all required PHP extensions and the outstanding live-host, provider and physical-device checks pass.