Period: November 25, 2025 Total Commits: 8
Hey, here’s what we’ve been working on. Today was a lot of UI fit-and-finish for mobile landscape, some quality-of-life on desktop, and a push to make our testing/CI stricter so regressions get caught early. Nothing flashy, but it removes friction across a few core screens.
What’s New
-
Encyclopedia fits cleanly in mobile landscape. The layout now keeps the items grid on the left and details on the right, both scrollable, with compact icons and text to avoid wasted space. We also trimmed non-essential chrome so the content gets more of the screen.
- Impact: Easier to browse towers and minions on phones without fighting vertical scroll or hiding details.
- Desktop also got a small header tidy-up so navigation and status are clearer.
[screenshot: encyclopedia in mobile landscape with side-by-side grid and details at 5558f71]
-
Main menu cleanup. We removed the heavy border box and tightened spacing for a cleaner first impression. On mobile landscape, the top bar and title get out of the way so every button is visible without scrolling. Buttons are consistent in size and the social links are more compact.
- Impact: You see what you need immediately and can launch a mode without extra gestures.
[screenshot: cleaner main menu in mobile landscape at c08cf9b]
-
Single-player level browser is tuned for phones. It keeps the left-right split in landscape, trims extra headings, and uses tighter spacing. Portrait mode nudges the detail panel into view when you select a level so you don’t miss the start button.
- Impact: Faster level selection with fewer taps and no awkward dead space.
[screenshot: single-player level browser side-by-side on mobile landscape at cb747e2]
-
Graceful offline mode. If auth or the server isn’t reachable, the client quietly creates an offline guest session and uses a neutral status indicator (no alarming colors). You can jump straight into campaign without waiting on backend services.
- Impact: Single-player access is reliable even when services are down.
[screenshot: neutral offline status and auto-guest session banner at a620dff]
What Got Fixed
-
Encyclopedia tab-switch crash. Switching from minions to towers (or back) could crash if the previous selection carried over into the new tab. We now clear the selection at the moment you switch, so the detail panel always renders the right data. It’s stable now and the tab swap is instant.
-
Mobile menu scroll traps. The main menu on mobile landscape now fits within the viewport without any page scrolling. Everything is reachable and stationary, which plays nicer with gesture navigation.
Under the Hood
-
Playwright integration tests are in. We added suites that cover core flows:
- Encyclopedia mobile: grid renders, details render correctly, tab switching, split layout, detail scrollability, back navigation. All passing.
- Main menu mobile: top bar hidden in landscape, all buttons visible, social links within viewport, no page scroll. All passing.
- Single-player mobile: split layout, button visibility, end-to-end level pick-and-play flow. All passing.
- Impact: These tests protect the exact UI patterns that tend to break when we tweak spacing and layout.
-
CI now runs the browser tests on every push/PR. Node.js 22, Playwright Chromium, CI mode with retries, and a 15-minute timeout to stop zombie jobs. On failures, we upload logs, traces, HTML reports, and screenshots (kept for 7 days) so it’s obvious what went wrong.
- Impact: Regressions get caught before they land, and we can see the exact screen the test saw.
-
Test artifacts and screenshots. We’re saving navigation screenshots for the encyclopedia and main menu runs. This makes “why did that button move?” questions a lot easier to answer with visuals.
Thanks for the ongoing reports about mobile landscape quirks—those helped target the trims and spacing. If you run into odd layouts or scroll behavior on your device, send a screenshot with your model and orientation. It speeds up the fix.