Skip to content

Release Notes v1.4.0

Choose a tag to compare

@CyberSphinxxx CyberSphinxxx released this 27 Jun 22:13

Mobile Experience & UI Enhancements

The mobile layout and navigation have been significantly improved to reduce clutter and optimize spacing on smaller devices.

  • Mobile Navigation Menu (Header.tsx): Implemented a responsive hamburger menu that consolidates secondary navigation links (How To Play, Answer Dictionary, Archive, Stats, Account Settings) into a clean, collapsible dropdown, decluttering the header on mobile devices.
  • Landing Page Refactoring (LandingPage.tsx): Fixed mobile layout issues with the call-to-action buttons. The "Log In" and "Play" buttons are now properly centered and utilize proportional maximum widths on mobile screens, rather than breaking formatting due to fixed sizing constraints.

Authentication Flow Improvements

  • Account Security & Intent (login/page.tsx): Replaced instantaneous logouts with a dedicated, themed Logout Confirmation modal. This modal utilizes existing design system variables to ensure proper styling across light and dark modes, preventing accidental sign-outs.

P1 Outage Overhaul

The P1 Outage mode has been heavily modified to ensure a playable, infinitely replayable experience for advanced diagnostics.

  • Data Pipeline Fix (generate-static-data.mjs): Fixed an issue where P1 Outage would crash or show no data because the game engine specifically queried for "Hard" puzzles. The build script now automatically detects if a puzzle contains rawLogs and tags its metadata difficulty as "Hard" during static generation.
  • Autocomplete Integration (P1Game.tsx, GuessInput.tsx): Resolved a game-breaking bug where the P1 Outage guess input lacked autocomplete suggestions. The component now correctly ingests the global dictionary aliases, allowing players to actually submit complex root cause diagnoses.
  • Unlimited Play Refactoring (useP1OutageGame.ts, puzzles.ts): Transitioned P1 Outage from a single daily puzzle constraint into an endless game loop. The state machine now tracks solved incidents in memory (seenIds) to dynamically load random "Hard" puzzles without repetition.
  • Continuous Action Buttons (P1Game.tsx): Added "Next Incident" and "Try Another Incident" buttons to the resolution ticket screen, allowing players to immediately jump into the next P1 crisis upon success or failure.

Zero-Cost Infrastructure & Optimizations

  • 100% Vercel API Elimination: Completely removed all serverless API routes (/api/guess, /api/dictionary). Guesses are now securely evaluated natively in the browser against base64 decoded static payloads. The Dictionary page now statically fetches its data, entirely removing API invocations.
  • O(1) Firestore Writes & Lazy Sync: Migrated user game history to a highly-optimized historyMap architecture in Firestore using dot notation, effectively reducing Firestore document rewrites to 0 reads. Implemented a 5-minute lazy sync cache algorithm to prevent unnecessary database queries on rapid page reloads.
  • Data Management: Added a "Clear Local Data / Reset Stats" button to the Settings page with a dedicated safety confirmation screen to allow users to wipe local player history without contacting the cloud.

Full Changelog: v1.3.0...v1.4.0