GLMCHAT V2.2.1 — LOAD AND INSTALL REMEDIATION REPORT Completed: 2026-07-29T20:55:57Z Protected baseline: GLMCHAT_V2.2.1_ZIP_VERIFIED_HANDOVER_29072026172338.zip REQUESTED TASK The supplied application did not load or install. Reproduce and repair the failure without changing unrelated application behaviour. CONFIRMED ROOT CAUSES 1. The normal browser experience was hard-blocked behind the install gate. When beforeinstallprompt was unavailable, delayed or previously dismissed, there was no route into the application. 2. The InstallGate component registered its beforeinstallprompt listener only after React mounted, so an earlier browser event could be lost. 3. The Open in Chrome button called GLMChatNative.openInChrome, but that function did not exist, making the control a no-op. 4. Plain HTTP returned a generic 403 rather than a useful secure hand-off, making an HTTPS/PWA requirement appear to be a broken application. 5. Host preflight failures were reduced to a generic error screen rather than displaying the exact missing PHP requirements. REPAIRS - Captured beforeinstallprompt in platform-enhancements.js before React loads and retained the deferred prompt for the install gate. - Added an explicit promptInstall API and install-ready/app-installed events. - Added Continue in browser as a persistent, explicit recovery route. It does not alter PIN, session, API-key or data protections. - Kept installation available after browser bypass through the existing PWA notice surface. - Implemented the missing Android Chrome intent hand-off with same-origin URL validation and browser fallback. - Added a minimal HTTP-only https-required.html page and same-origin redirect helper. Private and sensitive paths remain blocked before the hand-off rule. - Added detailed environment failure rendering so missing PHP extensions and storage prerequisites are visible. - Advanced the service-worker cache generation so existing installations can receive the repaired assets through controlled update activation. - Updated direct-deploy instructions. FILES ADDED - app/https-required.html - app/assets/https-redirect.js - source/runtime/https-redirect.js - tests/node/load-install-recovery.test.mjs - evidence/LOAD_INSTALL_RECOVERY_29072026205557/HTTP_HTTPS_ACCEPTANCE_29072026205557.txt - documentation/current/LOAD_AND_INSTALL_REMEDIATION_REPORT_29072026205557.txt - documentation/current/CURRENT_ISSUE_STATUS_29072026205557.txt - README_NEW_CHAT_BUNDLE_29072026205557.txt VALIDATION - Deterministic frontend build: Passed. - Type-check: Passed. - Lint: Passed. - PHP static contracts: 66 passed. - Node tests: 22 passed, including 6 load/install recovery checks. - Migration and rollback checks: Passed. - Privacy/reset contracts: Passed. - HTTP preflight contract: Passed. - Target-host acceptance regression tests: Passed. - Apache HTTP hand-off and private-path checks: Passed. - Apache HTTPS shell, manifest, service-worker and application-asset checks: Passed. - PHP runtime integration: Not run; local PHP lacks sqlite3, curl, mbstring and zip. - Physical Android installation: Not run; no physical Android browser was available. SCOPE REVIEW - No backend route, database schema, migration, authentication rule, provider behaviour, workflow logic or user data was changed. - No unrelated feature or style change was made. - Historical migrations remain unchanged. RELEASE DISPOSITION The load/install deadlock is repaired. The new direct-deploy ZIP is suitable for extraction into the intended HTTPS directory. A target host must still provide PHP 8.2+, sqlite3, curl, mbstring, zip, json, openssl and fileinfo, plus writable protected storage. Physical Android installation remains an external acceptance check.