Centralize copyright in examples/platform/footer.config.php, render via
footer.php in crashes/builder/login layouts, and serve hub through index.php.
Co-authored-by: Cursor <cursoragent@cursor.com>
This restores the interrupted stash work on a dedicated feature branch, including backend decoding support, Dockerized build scripts, and staging channel artifacts for end-to-end OTA validation.
Co-authored-by: Cursor <cursoragent@cursor.com>
This resolves stash replay conflicts and keeps the report/tag UI and backend endpoints aligned for the feature branch review.
Co-authored-by: Cursor <cursoragent@cursor.com>
Globe with mercator grid, rocket arc, and palette aligned to crash console;
hub.css at 3% opacity background; styles split from inline HTML.
Co-authored-by: Cursor <cursoragent@cursor.com>
Three card links (reports, git, tickets) match crash console styling with stronger hover lift; nginx serves index.html at /app/androidcast_project/ instead of redirecting to crashes.
Co-authored-by: Cursor <cursoragent@cursor.com>
The script lived under examples/crash_reporter/backend/scripts but pointed at examples/tmp/; smoke notes live at project root tmp/alpha_smoke_round1.txt.
Co-authored-by: Cursor <cursoragent@cursor.com>
Auth: :user() returns early when companies are cached, so requireTicketsTable() ran with no PDO and always failed. Always open the connection before checking tickets.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use SHOW TABLES/COLUMNS instead of information_schema so requireTicketsTable() works when the table exists but the app user cannot read metadata catalogs.
Co-authored-by: Cursor <cursoragent@cursor.com>