Skip to content

Rename project from Command and Clanker to Command and Combobulate#15

Merged
amphetamarina merged 7 commits into
mainfrom
AMP-233-rename-to-combobulate
Jun 1, 2026
Merged

Rename project from Command and Clanker to Command and Combobulate#15
amphetamarina merged 7 commits into
mainfrom
AMP-233-rename-to-combobulate

Conversation

@amphetamarina
Copy link
Copy Markdown
Owner

Closes AMP-233.

Rebrands the project from Command and Clanker to Command and Combobulate across the entire tree, plus the new logo and main-menu copy.

What changed

Case-preserving token rename (clanker -> combobulate) across content and paths, decomposed by subsystem so each commit independently keeps tests/typecheck green:

  1. OpenRA modcommand-and-clanker/ -> command-and-combobulate/, the OpenRA.Mods.Clanker namespace/csproj/sln, the clanker mod id and directory, every Clanker*.cs trait/widget, yaml chrome, .ftl, and art. Carries shared/wire-contract.test.ts's path reference since it reads LiveMessage.cs by path.
  2. Backend (server/ + shared/) — the session contract the server emits: env vars (COMBOBULATE_SESSION etc.), x-combobulate-* ingest headers, .combobulate-cache.json.
  3. Adapters (integrations/ + scripts/) — the matching half of that contract: combobulate-hook.sh, plugin dirs/manifests, the Codex combobulate@combobulate plugin id. Restores clanker-hook.sh to STALE_HOOK_NAMES so the installer still cleans up pre-rebrand installs.
  4. Docs/meta — README, AGENTS.md, architecture.md, CI, .gitignore, root package name.

Logo + copy

  • New loadscreen art regenerated at all three densities (512x256 / 1024x512 / 2048x1024, RGBA). Source is exactly 2:1, so clean lanczos rescales with no cropping.
  • New README banner committed at assets/loadscreen.png (replacing a dead GitHub user-attachments URL).
  • Main menu button "Start Clanking" -> "Start Combobulating" (it had slipped past the token sweep since "Clanking" doesn't contain "clanker").

Notes

  • The only remaining clanker string is the intentional clanker-hook.sh entry in STALE_HOOK_NAMES (backward-compat cleanup).
  • Backend: 123 tests pass, typecheck clean at every commit.
  • The C# mod is not compiled in CI here (the OpenRA engine is fetched on demand and not checked in); the rename is verified by the wire-contract test and a full residual scan. Loadscreen/menu changes confirmed in-game by the author.

🤖 Generated with Claude Code

amphetamarina and others added 7 commits June 1, 2026 07:05
Rename the entire command-and-clanker/ mod tree to command-and-combobulate/
as part of the project rename to Command and Combobulate (AMP-233). This is a
mechanical, case-preserving token rename (clanker -> combobulate) with no
behaviour change, so red-green TDD does not apply; the wire-contract test is
the regression guard and stays green.

Covers:
- the command-and-clanker/ directory and the OpenRA.Mods.Clanker/ project,
  namespace, csproj, and CommandAndClanker.sln
- the mods/clanker/ mod id and directory, mod.yaml, mod.config, and the
  clanker-canvas map
- every Clanker*.cs trait/widget, clanker-*.yaml chrome, clanker.ftl, and the
  loadscreen art
- launch/build scripts that reference the mod id

shared/wire-contract.test.ts is included here even though it lives outside the
mod: it reads LiveMessage.cs by path, so its path reference must move in the
same commit to keep the test green.

The C# mod is not compiled in this environment (the OpenRA engine is fetched on
demand and not checked in), so this rename is verified by the wire-contract
test and by confirming no clanker token remains outside engine/.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Case-preserving token rename (clanker -> combobulate) across server/ and
shared/ as part of AMP-233. Behaviour-preserving refactor, so the existing
unit and wire-contract tests are the regression guard; all 123 pass and
typecheck is clean.

The session contract the backend emits is renamed in lockstep so it stays
internally consistent:
- env vars injected into PTYs: CLANKER_SESSION/INGEST/TOKEN/PATH and
  CLANKER_CACHE/CLANKER_DEBUG_INGEST -> COMBOBULATE_*
- ingest HTTP headers x-clanker-session/x-clanker-tool -> x-combobulate-*
- the on-disk snapshot file .clanker-cache.json -> .combobulate-cache.json
- the plugin dir the server points Claude at (integrations/claude/combobulate)

The matching adapter side of this contract (the hook scripts that read these
env vars and send these headers) is renamed in the following commit; the two
together keep a running session working end to end.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Case-preserving token rename (clanker -> combobulate) across integrations/ and
scripts/install.ts as part of AMP-233. This is the adapter half of the session
contract renamed in the previous commit: the Claude and Codex hook scripts now
gate on COMBOBULATE_SESSION and POST x-combobulate-* headers, matching what the
backend injects and reads, so a live session works end to end again.

Covers:
- clanker-hook.sh -> combobulate-hook.sh in both the Claude and Codex plugins,
  and the plugin directories (integrations/{claude,codex/plugins}/combobulate)
- plugin.json, hooks.json, and the marketplace manifests
- the Codex plugin id (combobulate@combobulate) and the installer's references

Beyond the mechanical rename, restore "clanker-hook.sh" to STALE_HOOK_NAMES in
install.ts. That list is how `bun run setup` strips old hook entries from a
user's config before re-adding the current one. Before this rebrand
"clanker-hook.sh" doubled as the current name; now that the current name is
"combobulate-hook.sh", "clanker-hook.sh" becomes a prior name that existing
installs still carry, so it must stay in the cleanup list or old hooks would
stack alongside the new one on re-run.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Case-preserving token rename (clanker -> combobulate) across the top-level
docs and metadata as the final part of AMP-233: README.md, AGENTS.md,
docs/architecture.md, the CI workflow, .gitignore, and the root package name
(command-and-clanker -> command-and-combobulate). Documentation and config
only; no behaviour change.

After this commit no clanker token remains anywhere in the tree except the
deliberate "clanker-hook.sh" entry in scripts/install.ts, which is kept so the
installer cleans up adapters from pre-rebrand installs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Swap the placeholder Clanker-era loadscreen for the new Command & Combobulate
logo plate across all three density variants the mod loads via mod.yaml
(Image/Image2x/Image3x): 512x256, 1024x512, and 2048x1024.

The source art is exactly 2:1, matching CombobulateLoadScreen's centered draw
geometry, so each variant is a clean lanczos rescale with no cropping or
letterboxing. Kept RGBA to match the existing assets and the RgbaSpriteRenderer
draw path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the README banner, which pointed at an ephemeral GitHub
user-attachments URL from before the rename, with the new Command &
Combobulate logo committed at assets/loadscreen.png and referenced by relative
path (consistent with the other assets/ references in the README). Served at
1024x512 so it stays crisp at the 512x256 display size on high-DPI screens.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The launch button text "Start Clanking" survived the project rename because
"Clanking" does not contain the "clanker" token the sweep replaced. Update it
to "Start Combobulating" so the main menu matches the new branding.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@amphetamarina amphetamarina merged commit a507a55 into main Jun 1, 2026
2 checks passed
@amphetamarina amphetamarina deleted the AMP-233-rename-to-combobulate branch June 1, 2026 10:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant