Devlog

Coming back to a repo that did not build

Months away, and the workspace had quietly rotted: eight crates no build had ever reached, CI that had never once run. A repair week.

Written after the fact, from the commit history and the design logs.

Git had gone quiet for months. Coming back this week, the repo was in worse shape than memory said:

  • Eight crates were commented out of the Cargo workspace but never added to its exclude list. Cargo treats any manifest under a workspace root as a member unless excluded, so about 12,900 lines, including both services, failed at manifest load. No build had ever reached them.
  • The Rust CI triggered on branches that did not exist. It had never run. Not once.
  • The match orchestrator, driven to zero errors last November, no longer compiled.
  • Two scheduled workflows were firing every six hours on a dormant repo: 66 CI runs a week, producing nothing.

The repair took days, not weeks. The workspace was fixed and the toolchain pinned. The Bevy client migrated from 0.18 to 0.19.1 in five source edits, after release notes that promised around ninety breaking changes. The orchestrator went from not compiling to 103 tests passing. Scheduled workflows dropped from 66 a week to 6. The terminal WebSocket got a proper handshake-token scheme instead of an ad-hoc one.

One more thing surfaced while cleaning up: somewhere in the quiet months the project had grown a second client, written in Bevy, sitting uncommitted alongside the Unity one. Nobody had ever written down why Unity was left. That decision got recorded this month, retroactively, because the next one would be impossible to explain without it.