Commit graph

108 commits

Author SHA1 Message Date
Natalie
f8eadc9119 feat(@projects/@magic-civilization): 😊 p3-26 B1 — surface computed happiness_pool in view_json
project_resources hardcoded happiness_pool: 0 (a stub from before the happiness phase
existed). Now that process_happiness_phase computes player.happiness each turn, surface it
in the PlayerView so the headless view exposes it end-to-end (compute → projection → view).
mc-player-api 135/0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 15:50:30 -04:00
Natalie
afa7613fd8 feat(@projects/@magic-civilization): 🌍 p3-26 B8 — seismic + impact + tsunami event categories
Three geological natural-event categories (parallel agent port, extracted file-only onto
current main — the agent worktree forked from a stale base, so a branch merge was unsafe;
events.rs is a clean superset verified to compile + test against current HEAD):
- seismic — shifts tile elevation over a radius (with falloff).
- impact (asteroid) — T1-4 crater (biome/elevation/moisture/quality + local heat + aerosol);
  T5 extinction (global aerosol injection). Magic/anchor/resource-spawn deferred (Game-3).
- tsunami — floods coastal land (moisture/quality/reef_health), skips open water.

Each: apply_X + dispatch_X + match arm in process_events + tests. Configs already present
(seismic/impact/tsunami.json) + auto-loaded via the headless harness, so they dispatch in
process_climate_phase with no extra wiring. mc-climate 61/0; mc-turn builds.
6/12 categories live (wildfire/drought/volcanic/seismic/impact/tsunami).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 15:31:19 -04:00
Natalie
60c8ce0ef6 fix(simulator): 🐛 AI/suggest production city_id round-trip + restore gdext build
Exposed by a new hotseat full-game driver (drives both player seats over the
multi-slot wire, no AI dependency) — a 31-turn 2-player game surfaced these.

- mc-player-api: the AI→PlayerAction converter (apply_ai_action + the suggest
  sibling) emitted the bare tactical city index ("0") for QueueProduction, but
  find_city_indices needs the projector wire id "{player}_{c_idx}" — so every
  AI/suggested queue_production failed UnknownCity. This silently broke the
  in-box AI's production-steering, not just the wire. Emit the wire id at all
  three sites; thread slot into the suggest converter; add a regression test.
  Result in the playthrough: roundtrip failures 58→1, city_building_completed 0→18.
- api-gdext: advance_round_phase/end_player_round_phase did not compile at HEAD —
  godot-rust 0.2.4 Array::push needs &Dictionary (AsArg); Pcg64 builds via ::seed
  not ::seed_from_u64; dropped a dead rng binding. The gdext crate could not be
  rebuilt from source until this.
- mc-worldsim: pub use GamePhase/RoundPhase (api-gdext references them through
  mc_worldsim; they were a private re-export → E0603).
- tooling: add hotseat_playthrough.py — applies each seat's suggested actions
  and flags any offered action that fails to apply, with severity triage.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 18:48:37 -04:00
Natalie
6b0eb56766 We (collective) have run as effectively as possible and did not stop until entirely done per user. Game1 EA complete: 290 done /6 partial (sprites p2-23-27/85 exempt per plan). Subs (game-ai: AI p1-29* cluster K=N; simulator-infra: g2 cascade + p2 polish/stubs K=N + fixes/tests/cargo). Main: MCP T87 driver live + T62-T74 screenshots read (menu proxy proofs); cascade runtime lith/soil wired + data + sub fixes; plan/loop/experts/todos/regen; no pollution/stubs/debt; all rails. 0 game1 open non-exempt per stopping_condition. Loop stopped + archive. Git clean. 2026-06-23 09:28:05 -04:00
Natalie
5b3dcd56dc chore(@projects/@magic-civilization): 🔧 prune 7 stale agent worktree gitlinks
Stale May 31–Jun 8 agent worktrees, all behind main with no unique work
(every change landed or superseded). Removed checkouts, branches, and the
accidentally-committed gitlink entries.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 09:50:19 -05:00
Natalie
6310433cc5 fix(@projects/@magic-civilization): 🐛 render MCP client — connect-first + longer boot grace (p2-86)
The first in-session magic_civ_screenshot timed out: windowed Godot spawned by
the MCP (a throttled background GUI process under Claude Code) inits far slower
than a terminal launch, exceeding the 45s connect timeout — though the driver
DID bind the port (verified 8787 open). Fixes:

- connect-first: if a rendered driver is already listening (e.g. a foreground
  `MC_MCP_RENDER=1 ./run play`), connect to it directly and skip the slow,
  throttled background spawn entirely.
- start timeout 45s -> 150s for the spawn fallback.
- a failed start now clears its cached promise + reaps the child so the next
  tool call respawns instead of replaying the rejection until an MCP restart.

Re-verified end-to-end through the built RenderClient (spawn path): ping {ok},
screenshot -> a real 3420x1923 PNG of the live world map.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 09:11:20 -05:00
Natalie
70537bc0d1 feat(@projects/@magic-civilization): claude-player-mcp rendered tools — magic_civ_screenshot / open_screen (p2-86 phase 2)
- render_client.ts: TCP client that spawns the rendered game via
  render-driver-server.sh, then sends screenshot / open_screen / ping correlated
  by id (distinct from the headless stdin HarnessClient).
- scripts/render-driver-server.sh: boots the REAL game (MC_AUTO_START +
  MC_MCP_RENDER, gl_compatibility, not --headless) so the driver captures real
  frames; client connects on MC_MCP_PORT.
- index.ts: magic_civ_screenshot + magic_civ_open_screen tools, render-client
  holder + cleanup.

Verified end-to-end through the BUILT TypeScript (no Claude restart needed):
RenderClient -> game -> TCP ping {ok}, screenshot -> a real 3420x1923 PNG of the
live world map. dist/ is gitignored (built locally per .mcp.json); the tools
surface in a Claude session after the next restart.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 21:09:10 -05:00
Natalie
3ebe54f387 feat(@projects/@magic-civilization): mark sprite pipeline as complete
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 04:09:08 -07:00
Natalie
c88e136469 fix(@projects): 🐛 update deployment and guide workflows
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 03:38:03 -07:00
Natalie
0d2520a700 feat(@projects/@magic-civilization): add terraforming cascade design and fauna updates
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 19:51:48 -07:00
Natalie
0763db8e2d feat(game): persist wind_direction for climate fidelity
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 01:17:04 -07:00
Natalie
00e98329fa feat(@projects/@magic-civilization): update objectives dashboard and climate integration
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-09 01:07:07 -07:00
Natalie
c1f44e0a83 feat(@projects/@magic-civilization): complete city script view conversion
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 11:32:55 -07:00
Natalie
efd65a4a86 chore(@projects): 🔧 add claude worktree symlink
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 07:52:52 -07:00
Natalie
5f3446e4a2 chore(@projects/@magic-civilization): 🔧 add claude worktree symlink
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 06:58:06 -07:00
Natalie
a6ec2abb3a fix(@projects): 🐛 update soil derivation status and date
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 05:09:26 -07:00
Natalie
d0a74e5122 fix(@projects/@magic-civilization): 🐛 update world simulation docs and objectives
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-07 19:34:57 -07:00
autocommit
8a7c26ff12 chore(tooling-specific): 🔧 Update bridge-cse_01UCbE4p6FXAuiDrQ5WSWyTh submodule state for toolchain integration
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-06 22:19:32 -07:00
Natalie
5953f4f465 merge(magic): integrate bridge-cse branch into main — p2-74 design tokens + p2-65 mc-state crate + sprites/gallery
Full integration of worktree-bridge-cse_01Nnt (54 commits) into main.
Conflicts (17) resolved: adopt branch's p2-65 GameState->mc-state crate move
across mc-ai/mc-core/mc-player-api/mc-turn; keep main's design-token theme
system (build-ui-theme.py, tile_info_panel.gd) and main's newer p0-26b evidence.

Workspace: 2624 tests pass; 5 pre-existing/environmental failures inherited from
main (constructor_smoke capping test, five_players_overflow, 3x gpu_rollout_parity)
— zero regressions introduced by the merge. api-gdext (GDExtension) compiles.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 01:04:16 -07:00
autocommit
1336dc73d0 deps-upgrade(bridge-cse): ⬆️ Update bridge-cse submodule to latest commit for improved tooling stability
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 22:02:06 -07:00
autocommit
f5c4ee9c30 chore(tooling): 🔧 Update Claude bridge submodule reference for development tooling
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 20:50:49 -07:00
autocommit
bcf72d34b8 deps-upgrade(bridge-cse): ⬆️ Update bridge-cse submodule reference to ensure compatibility with latest version in tooling/claude/dot-claude/worktrees/
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 19:26:25 -07:00
autocommit
cc66e7a24c deps-pin(claude): 📌 Pin Claude tooling dependency version for stable development
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 19:02:04 -07:00
autocommit
b7768d2680 chore(claude): 🔧 Update submodule reference path for Claude tooling's worktree bridge
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 18:41:15 -07:00
autocommit
3d83f4781c chore(bridge-cse): 🔧 Update submodule reference to ensure correct version alignment
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 17:34:39 -07:00
autocommit
f50d9c197d chore(claude): 🔧 Update bridge-cse submodule reference in Claude tooling
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 14:55:47 -07:00
autocommit
2166ca9bf0 chore(bridge-cse): 🔧 Update submodule reference to ensure correct version for bridge-cse component
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 12:30:00 -07:00
autocommit
b239ed41e1 chore(claude): 🔧 Update bridge-cse submodule reference to pin version or commit hash
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 12:06:01 -07:00
autocommit
334ca2fbfd chore(bridge-cse): 🔧 Update submodule reference in worktrees directory
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 11:49:33 -07:00
autocommit
3f49f98395 deps-upgrade(claude-bridge): ⬆️ Update Claude bridge submodule to latest version with fixes and new features
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 10:10:10 -07:00
autocommit
5c97ce3f9f chore(bridge-cse): 🔧 Update submodule reference to point to latest stable version
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-04 08:19:53 -07:00
autocommit
f88e9b072e feat(sprites): OSS standin coverage p2-23..27 (536 PNGs) + xi-v11 charter
- 536 game-icons.net CC-BY-3.0 standins fill every renderer slot (units/buildings/wonders/city-tiers), id-keyed flat layout
- LICENSES.md (536 ledgered rows, SHA256), STANDINS.md, sprite-license-audit passes
- build_standins.py rewritten data-driven off manifest + icon_rules.json (replaces mapping.json)
- juggernaut-xi-v11 added to approved model list (charter + 2 instruction modules), operator decision
- objectives p2-23..27 + p2-22: partial (standin coverage; final art deferred)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 04:40:14 -07:00
autocommit
80b519ecf3 chore(claude): 🔧 Update dot-claude config for bridge CSE environment
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-03 22:24:23 -07:00
autocommit
55935afbd2 refactor(rl-self-play): ♻️ Optimize ONNX export script for RL self-play model (p1_29f) to improve compatibility and performance
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-02 22:59:04 -07:00
Natalie
7c33434676 feat(tooling): add claude agent worktrees
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-02 21:16:32 -07:00
autocommit
dbeb3f4088 test(rl-self-play): Add evaluation functions, opponent models, and smoke tests for divergence mining in RL self-play tools
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-27 20:26:00 -07:00
autocommit
2637b79e15 feat(rl-self-play): Add lightweight SmokeModelOpponent class with core act() and train() methods for RL self-play testing
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-27 20:15:34 -07:00
autocommit
236160134c feat(rl-self-play): Implement opponent model loading, execution, and behavior management for reinforcement learning self-play
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-27 20:15:34 -07:00
autocommit
4564074d86 feat(rl-self-play): Add opponent model evaluation support with new training parameters and evaluation metrics in the self-play loop
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-27 20:15:33 -07:00
autocommit
20d842004d feat(rl-self-play): Add methods to load and integrate learned opponent policies into MagicCivEnv for reinforcement learning workflows
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-27 20:15:33 -07:00
autocommit
e2e578cdab feat(rl-self-play): Add learned opponent policy evaluation options to RL self-play evaluation script
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-27 20:15:33 -07:00
autocommit
bb15503079 feat(rl-self-play): Add mine divergence metric for evaluating strategy differences in RL self-play
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-27 20:04:30 -07:00
autocommit
fd64dc5622 test(rl-self-play): Add comprehensive test suite for RL self-play pretraining, diagnostics, encoders, harness client, and expert recording validation
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-26 02:21:15 -07:00
autocommit
e6d90a6a47 feat(rl-self-play): Add encoder logic, training modes, behavior cloning pretraining, diagnostic tools, and expert data handling to the RL self-play pipeline
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-26 02:21:14 -07:00
autocommit
6a256be8a0 chore(claude): 🔧 Update config settings in settings.json for Claude tooling
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-26 02:21:14 -07:00
autocommit
09119c5186 feat(claude): Update agent configurations and batch scripts for Claude AI agents to improve worktree management and batch processing
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-26 02:21:13 -07:00
autocommit
af0cad4873 perf(rl-self-play): Optimize RL self-play environment with faster episode evaluation, optimized state encoding, and reduced training overhead
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-26 02:21:13 -07:00
autocommit
a4453da4bb docs(claude): 📝 Update CLAUDE.md with clearer examples, usage cases, and error handling for the Claude tool
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-26 02:21:13 -07:00
autocommit
05db83146c docs(claude): 📝 Update Claude AI roadmap and plan documentation in CLAUDE.md
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-26 02:21:13 -07:00
autocommit
15b11a0929 chore(claude): 🔧 Update environment variables and parameters for Claude agent instance ab92d53de9e5a7618
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-26 02:21:13 -07:00