GLMCHAT V2.2.1 — ROUTE_NOT_FOUND REMEDIATION REPORT Generated: 2026-07-29T22:01:32Z Baseline: GLMCHAT_V2.2.1_LOAD_INSTALL_FIXED_HANDOVER_29072026210010.zip Reported symptom: {"ok":false,"error":{"code":"ROUTE_NOT_FOUND","message":"Route not found."}} ROOT CAUSE Some shared-hosting configurations select index.php before index.html or do not honour the package DirectoryIndex preference. The previous public index.php unconditionally bootstrapped the JSON API router. A normal GET request for / or a client-side route therefore reached server/index.php and returned ROUTE_NOT_FOUND instead of the PWA shell. REMEDIATION 1. app/index.php now identifies the application base path from DOCUMENT_ROOT, with a SCRIPT_NAME fallback for compatible hosts and CLI verification. 2. Non-API GET and HEAD requests now serve index.html directly with text/html and no-store headers. 3. /api and /api/* requests continue to bootstrap the JSON backend. 4. The computed front-controller base path is passed to GLMChat\Http so API classification remains correct when CGI/FastCGI reports SCRIPT_NAME as the originally requested route. 5. The target-host acceptance runner now checks index.php directly as a public HTML entry point. 6. Permanent PHP and Node regression checks cover root, direct-index, nested-directory and API classification behaviour. 7. The direct-deploy README now documents this shared-hosting compatibility behaviour. VALIDATION PERFORMED - Baseline full verification before changes: Passed. - PHP syntax for changed runtime files: Passed. - Forced-index root request /: 200 text/html with PWA shell. - Direct request /index.php: 200 text/html with PWA shell. - Client route /projects through forced index.php: 200 text/html with PWA shell. - API request /api/status through forced index.php: JSON backend response; not HTML shell. - Root and nested front-controller regression test: Passed. - PHP static contracts: 70 passed. - Node automated tests: 23 passed. - Build: Passed. - Type-check: Passed. - Lint: Passed. - Migration, rollback, privacy and HTTP preflight checks: Passed. - PHP and JavaScript syntax: Passed. - Package/PWA/security/SQLite validation: 299 passed. NOT RUN / EXTERNAL GATES - Full PHP integration tests requiring local sqlite3 and zip extensions: Not run; extensions are unavailable in this environment. - Live LiteSpeed host validation: Not run. - Live Together API validation: Not run. - Production-data migration validation: Not run. - Physical Android Chrome, Samsung Internet and TalkBack validation: Not run. RESULT The reported ROUTE_NOT_FOUND loading failure is repaired in the deployable runtime. No database migration, user-data transformation, feature removal or unrelated architecture change was made.