bug-postmortem

  1. The first thing it caught

    Client-side error monitoring finally gives the solo maintainer visibility into what breaks in players' browsers, and catches a real bug within hours of shipping.

  2. Four pixels on the first letter

    The Daily word input jumped four pixels when its first letter appeared because one nested row had no height before it held a letter cell.

  3. The game was still there

    A player replaying the Daily Challenge who switched tabs mid-game came back to the previous attempt's recap instead of the game still running underneath it.

  4. The second watcher that never started

    A silent host-sleep protection gap surfaces when two devcontainers run at once, traced to a lock file scoped by project instead of by workspace, and fixed by mirroring a sibling repository that had already solved it.

  5. No route to the evidence

    A devcontainer firewall gap blocked exactly the two tools needed to diagnose a CI-only failure, and fixing it surfaced a real flaky test hiding behind the same access gap.

  6. Vanished letters, lingering words

    Two independent PvP bugs on the same day: Norwegian letters missing from what the opponent sees, and a crashed word that refused to leave the screen.

  7. A greedy regex that ate the leading major version digit

    A greedy wildcard in version string extraction stripped leading digits from major version numbers, causing pnpm 11.19.0 to be parsed as 1.19.0.

  8. Breaking a self-referential devcontainer script loop

    Invoking pnpm inside a container startup script re-triggered the pnpm binary wrapper itself. Guarding execution with environment flags broke the infinite loop.

  9. Deriving help text point values from the game engine

    Hardcoded point strings in UI translation dictionaries drifted when fruit values changed. Deriving help copy directly from EDIBLE_POINTS enforced a single source of truth.

  10. Rejected was not final

    A closed draft becomes published after all, exposing one missing transition in the blog registry's state model.