Four weeks of building in public
This was a busy four weeks. I split the work between ChatGPT, Claude and DeepSeek and used the agents to keep several projects moving at once. The result was not one giant launch. It was a run of smaller releases: sites went live, desktop software shipped, games moved closer to release, and reusable pieces came out of larger applications as public repositories.
The latest reporting window is shown below. Sunday was still in progress when I collected it.
The busiest repositories were WXRQ, AIRunner web, HQ, AIRunner, SpikeForge and SpikeForge Dashboard.
What shipped

WXRQ became a working radio and television station. The production system writes and checks scripts, renders voice takes, adds music beds, schedules shows, encodes them and sends them through HLS. The public site has the live player, on-air status, schedule and translations.
Capsize Online went live as the front door for the work. It gained the current visual system, 17-language support, a donation hub, the devlog and a tag-driven deployment path with rollback records. Capsize Games, SpikeForge, Audio Visualizer, AIRunner Art and WXRQ went live around it.

AIRunner and UwUChat moved from a single application tree toward smaller packages. The React UwUChat client now runs inside the PySide6 desktop application, backed by the event socket, chat streaming, text-to-speech and speech-to-text paths. The same split produced public repositories for evaluation, the native launcher, shared contracts and the TTS vendor layer.

SpikeForge shipped a run of core and package releases while SpikeForge Dashboard, spikeforge-hub, spikeforge-hub-api and spikeforge-targets moved with it. The toolkit gained a real train/test split and quantization checks. The model hub gained offline catalogues, caching and import, while the API added accounts, quotas and community model hosting.

Capsize Audio Visualizer shipped CRT post-processing, floating mode and cross-shader audio mappings. It is a C++ and Qt desktop application with shader-driven scenes, a live browser version and a desktop edition on itch.io.

Cowboy Casino now runs in VileEngine with its overworld, table scenes, persistence, converted art and new casino audio. VileEngine also gained CRT scanlines and a phosphor mask. The next step is the release build.
HeadlessCode released version 1.2.0 with bounded recursive self-improvement. The install and release documentation moved with the code instead of remaining an internal note.
The public repository release
The project pages show the products. The repository work shows how much was split out and published underneath them.
AIRunner produced airunner-common, airunner-eval, airunner-native and airunner-tts-vendor. Those repositories separate shared contracts, agent evaluation, the native launcher and the vendored voice pipeline.
The reusable social and companion pieces became capsize-auth, capsize-bluesky, capsize-social, capsize-voice, capsize-persona and capsize-memory. Together they cover authentication, Bluesky, social-account connections, measured writing voice, persona-backed replies and conversation memory without forcing every application to carry the same implementation.
The supporting work also became public. capsize-commons holds shared Python, TypeScript and C++ building blocks. capsize-ci holds reusable GitHub Actions workflows. capsize-fastmail is a Fastmail JMAP client. capsize-github-traffic saves traffic history that GitHub otherwise discards after 14 days.
Public repositories active this week
These are all 21 public repositories in the Capsize-Games organization with commits during the reporting week. The release column counts GitHub releases published during the same window.
| Repository | What moved | Commits | Releases |
|---|---|---|---|
| AIRunner | Desktop AI application and inference engine | 60 | 1 |
| SpikeForge | SNN toolkit and package releases | 46 | 23 |
| SpikeForge Dashboard | React dashboard and desktop application | 41 | 8 |
| capsize-commons | Shared Python, TypeScript and C++ building blocks | 19 | 0 |
| capsize-persona | Persona, voice and memory-backed replies | 18 | 0 |
| capsize-social | Bluesky and Discord account connections | 15 | 0 |
| capsize-voice | Writing-style measurement and generation | 15 | 0 |
| capsize-bluesky | AT Protocol client | 11 | 0 |
| capsize-fastmail | Fastmail JMAP client | 11 | 0 |
| airunner-common | Shared AIRunner settings and contracts | 8 | 4 |
| spikeforge-hub-api | Accounts, quotas and community model hosting | 8 | 0 |
| airunner-tts-vendor | Vendored MeloTTS and OpenVoice pipeline | 7 | 0 |
| capsize-auth | Authentication primitives | 7 | 0 |
| spikeforge-hub | Offline-first model catalogue | 6 | 0 |
| airunner-native | Native launcher and crash handler | 5 | 1 |
| capsize-memory | Conversation-room and turn memory | 5 | 0 |
| HeadlessCode | Headless coding-agent harness | 5 | 1 |
| capsize-github-traffic | GitHub traffic history | 4 | 0 |
| airunner-eval | Agent evaluation harness | 3 | 0 |
| capsize-ci | Reusable GitHub Actions workflows | 3 | 0 |
| spikeforge-targets | Deployment targets and energy accounting | 3 | 0 |
What is next
Next week I want to keep splitting repositories where the boundary is useful, spend more time on spikeforge-hub, release the Cowboy Casino remake and keep pushing WXRQ forward.