Commit Graph
1361 Commits
Author SHA1 Message Date
jpmschweitzerandClaude Opus 4.6 792ca1bfca data(atlas): author Uusi Vantaa (GJ 1230A) — Talvela, Toivola, Pohjola
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 16:17:47 +01:00
jpmschweitzerandClaude Opus 4.6 f8b44fb518 fix(atlas): clippy + rustfmt — fix map_or and formatting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 14:53:57 +01:00
jpmschweitzerandClaude Opus 4.6 595388cd6f chore(config): add server/settings.db to gitignore
Runtime database, not tracked. Creation-on-missing routine still
needed (ticket #752).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 14:50:11 +01:00
jpmschweitzerandClaude Opus 4.6 9d74ab972d chore(config): add .env to gitignore + ticket #752 for settings.db
.env added to gitignore (secrets, should never be tracked).
server/settings.db NOT yet ignored — needs creation-on-missing
routine first (ticket #752, server team).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 14:49:45 +01:00
jpmschweitzerandClaude Opus 4.6 feb333f3e7 chore(tooling): add star-map wireframe + wipe-bodies script
docs/wireframes/star-map.f0 — Frame0 wireframe for the galaxy
navigator (created during wireframing session).
tooling/wipe-bodies.sh — utility to clear bodies/stations tables
in systems.db (preserves star_systems).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 14:47:26 +01:00
jpmschweitzerandClaude Opus 4.6 ebe8651052 chore(meta): plan Sprint 29 — Body Catalog (258 systems, 5 corridor PRs)
Copy-only sprint. All 258 remaining systems across 5 parallel corridor
tracks (north/south/east/west/frontier). One PR per corridor (~50
systems each). Stories #739-743 assigned.

Pipeline: /atlas author-system skill with Miri naming, Paula narrative
review, Ozzie astrophysical + experience review.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 14:45:57 +01:00
jpmschweitzerandClaude Opus 4.6 7aa1c71d92 docs(decisions): file D-166 (development cascade) and D-167 (heritage root supersession)
D-166: 6-phase cascade as architectural constraint. Each phase
completes before the next begins. No v0.2 target.

D-167: 7 abstract heritage roots retired. Real-world corridor
cultural system (Commonwealth/Iberian/East Asian/Germanic) is
canonical. Supersedes D-104, D-105, D-101 axis A, D-107 (partial).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 14:36:22 +01:00
jpmschweitzerandClaude Opus 4.6 d687bee45b chore(tickets): book 6-phase development cascade as initiative + epics
Initiative #745: Development Cascade
- #746 Phase 1: Wiki content complete (parent of #738 body catalog)
- #747 Phase 2: Economics layer (X4-style)
- #748 Phase 3: Planetary maps / Atlas of the Reach
- #749 Phase 4: Player control scheme
- #750 Phase 5: World generation (walkable)
- #751 Phase 6: Detail coloring (rooms/architecture, no NPCs)

D-166 claimed: development cascade decision
D-167 claimed: heritage root supersession decision
(D-record content to be filed in decisions/ domain files)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 14:32:21 +01:00
jpmschweitzerandClaude Opus 4.6 20ac812f8c chore(atlas): corridor assignments + sprint tickets for 258 remaining systems
Epic #738: Body catalog completion with 5 corridor track stories:
- #739 Track A: North Reach (43 systems)
- #740 Track B: South Reach (47 systems)
- #741 Track C: East Reach (47 systems)
- #742 Track D: West Reach (48 systems)
- #743 Track E: Deep Frontier (73 systems)
- #744 Task: Add corridor-status command to atlas CLI

docs/atlas/corridor-assignments.md maps the parallel work structure.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 14:23:55 +01:00
jpmschweitzerandClaude Opus 4.6 62a7cc0223 chore(skills): enhance atlas skill with author-system pipeline
Added 6 reference subfiles for the per-system body catalog authoring
pipeline:
- author-system.md — full 7-step workflow (wiki analysis → astrophysics
  → Miri naming → Paula gate → Paula+Ozzie dual review → integrity
  check → commit)
- wiki-analysis.md — extraction logic, 7-questions framework, population
  heuristics
- naming-brief.md — Miri prompt template (wiki-derived register, collision
  avoidance, all inhabited + stations in one pass)
- review-paula.md — narrative/political integrity checklist
- review-ozzie.md — player experience + astrophysical sanity checklist
  (reads wiki for exception justification)
- integrity-check.md — automated pre-commit verification rules

SKILL.md updated with author-system section and Agent tool permission.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 14:20:14 +01:00
jpmschweitzerandClaude Opus 4.6 cd3a9d1c87 data(db): sync systems.db — 43 systems, 412 bodies, 95 stations
End-of-session database snapshot. Hops 0-3 complete + Schuilhoek (hop 4).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 13:44:12 +01:00
jpmschweitzerandClaude Opus 4.6 c90a916230 data(atlas): Schuilhoek — four Dutch farming worlds behind Cairn
GJ 68/Schuilhoek: Zomer (800K, warm, grains), Lente (600K, cool,
leafy staples), Herfst (400K, soft fruit), Winter (200K, low-g
pasture). 300-year-old farming commune, no external contact, 2M
total across four cultivated worlds. No orbital infrastructure.

Fixed sync-wiki topology clobbering bug. Restored topology sections
for Cairn (GJ 845) and Aurelius (GJ 783A).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 13:43:53 +01:00
jpmschweitzerandClaude Opus 4.6 e5956e8bdd data(atlas): complete hop-3 — 16 systems total this tier
Final hop-3 batch: Caldwell Point/Farrow+Caldwell Gate (west_reach
junction), Ross 154 (flare star processing, designator names only),
Nova Roma/Mirafiori+Officina Prima+Cantiere Chiuso (MVG HQ, 3.5B),
Altair/Solano+Miralta+Paso Firme (south_reach transit, 2 empty
habitable moons), Puerto Rivera/Coseche+Muelle Ocho (agricultural
junction), Aurelius/Praxis+Hesychia+Via Exedra (academic heart),
EZ Aqr/Robaat (accidental waypoint community),
Lacaille/Calder+Southmark Hab (last reliable outpost),
Cairnside (variable star lab — Thermal Stress Lab, Cairnside Test
Frame, Vacuum Fatigue Station, Corrosion Bench, Cryogenic Soak).

Ys lore added to Crown's Hollow wiki. Ross 154 uninhabited bodies
fixed back to null proper_name.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 13:24:27 +01:00
jpmschweitzerandClaude Opus 4.6 a083d63dec data(atlas): hop-3 batch 2 — 6 systems
Lalande/Setúbal+Escala (south_reach transit hub, 1.2B),
Suzhou/Hanwei+Jingce (academic observatory, 15M),
Ross 128/Marevna+Scheveningen (ocean world, 450M),
Bastion/Scapa Flow+Quaterna (fleet hub, 400M),
Crown's Hollow/Ys+The Orrery (constitutional monarchy, 400M),
Johannsen's Star/Gruvlid+Sigrid's Rådhuset (rare-earth mining, 52M).

Ys lore added to Crown's Hollow wiki. Fixed DB names: Johannsen's
Star (was Guniibuu). Planetary terrain generation doc updated with
non-tectonic body types.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 12:31:07 +01:00
jpmschweitzerandClaude Opus 4.6 ce0ea1cd83 data(atlas): hop-3 batch 1 — 7 systems + corporations + terrain design
Systems: Travessia/Euripos+Ostia (commercial translation),
Kensho/Enso+Mokurai (research consortium), Okafor/Onitsha+Timbuktu
Orbital Exchange (Nigerian trading hub), Lu Ban/Gongshu+Humen (Chinese
bazaar manufacturing), Arbour (garden world, the real capital),
Tanegashima/Kanashiro+Tsurumi (Japanese guild fabrication),
Yongjin/Shin Incheon+Cheongmun (Korean transit gateway),
Wolf 359 (12 named platforms + Lalo Watch, 15 stations total).

New: corporations table + 20 records (13 from wiki + DSMC + 7 Cygni B
combines). Planetary terrain generation design doc (tectonic-first
tile pipeline, PerfectWorld/PlaTec research). Atlas CLI planet count
defaults fixed (6-8 minimum).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 11:41:21 +01:00
jpmschweitzerandClaude Opus 4.6 bb62900db8 data(db): sync systems.db — 19 systems, 161 bodies, 33 stations, 20 corps
End-of-session database snapshot. Hop 0-2 complete.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 23:24:05 +01:00
jpmschweitzerandClaude Opus 4.6 e05444f708 data(atlas): complete hop-2 body catalogs + corporations table
Hop-2 systems authored: Tessera/Corvel (legal archive, 1.3B),
Proxima/Ancora (first colony, Zheng He lore, 400M),
Meridian/Provenance (boomtown, 150M), Barnard's Star/Verada
(commuter town, 2B, wiki prose adjusted for surface-majority pop),
Prometheus/Galen+Chiron+Site Anterior (longevity monopoly, 55K),
Cygni B/Ferrath+Kihl Works (shipyards, 1.8B, 7 combines named),
Cairn (the anomaly — 7 apertures, 2 garden planets, zero population).

New: corporations table in systems.db schema. 20 records populated
from wiki/corporations/ + DSMC + 7 Cygni B combines (Vethara,
Kossler-Drun, Amberan Works, Talavec & Sons, Orren-Skel, Marhoud
Fabrication, Drevast Extraction).

Atlas CLI: fixed planet count defaults (6-8 minimum per star type,
was 2-4). Miri added Zheng He lore to Proxima wiki.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 23:23:12 +01:00
jpmschweitzerandClaude Opus 4.6 7394a7669c data(atlas): author hop-2 systems batch 1 (5 systems)
GJ 1221 (dead white dwarf, 200-person independent research team),
Keid/Cadwal (conservation world, Vance capital, Veil Institute station),
Renaissance/Ruhr (Gate Corp HQ, 5B manufacturing),
Parallax/Estrade (media capital, 1.8B),
Sindri/Witwatersrand (DSMC mining HQ, Kimberley, Jhb Orbital, Pilbara
Belt, Dampier — DSMC footprint across entire system),
Groombridge/Lendel (financial center, 900M).

Fixed Sindri proper_name in DB (was Vargr, flagged for IP).
Atlas CLI: commit-system now auto-updates star_systems counts,
next command for hop-ordered authoring.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 22:39:09 +01:00
jpmschweitzerandClaude Opus 4.6 c9d3bd4eed data(atlas): author hop-0 and hop-1 body catalogs (6 systems)
Systems authored: Sol (GJ 0), Gateway (GJ 71), Ran (GJ 144),
Sirius (GJ 244A), ACB (GJ 559B), Struve (GJ 725B).

Total: 59 bodies + 10 stations across 6 systems.

Named bodies: Mercury, Venus, Earth, Luna, Mars, Phobos, Deimos,
Jupiter, Io, Europa, Ganymede, Callisto, Saturn, Titan, Enceladus,
Uranus, Neptune (Sol); Threshold, Arden, Verantis (Gateway);
Kallast, Vethis (Ran); Edict (Sirius); Sede (ACB); Rush (Struve).
Named stations: Kallast Freight Terminal, Conclave, Aperture,
Leverage, Quorum, The Stack.

Atlas CLI: added commit-system auto-update of star_systems counts,
next command for hop-ordered authoring, sync-wiki with full field
rendering. Edict naming lore added to Sirius wiki by Miri.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 19:04:10 +01:00
jpmschweitzerandClaude Opus 4.6 c970fac1f9 data(atlas): author GJ 0 (Sol) — full solar system with real bodies
19 bodies + 1 station: Mercury, Venus, Earth (8.5B), Luna (350M),
Mars (1.2B), Phobos, Deimos, asteroid belt, Jupiter + 4 Galilean
moons (Europa inhabited, 30M, research), Saturn + Titan + Enceladus,
Uranus, Neptune, oort cloud, Horizon Station.

All bodies with real orbital periods, rotation periods, and surface
gravity. 4 inhabited: Earth, Luna, Mars, Europa.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 18:31:53 +01:00
jpmschweitzerandClaude Opus 4.6 05c3227b53 feat(atlas): add gravity, orbital period, rotation + sync-wiki command
Schema: added orbital_period_days and rotation_period_hours to bodies
table. Proposal format now includes surface_gravity, orbital_period_days,
rotation_period_hours with sensible defaults per body type.

New sync-wiki command generates a Celestial Bodies section in wiki
pages from DB data. All 16 fields rendered including Year (d) and
Day (h). Re-authored Gateway (GJ 71) with full physics.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 18:26:42 +01:00
jpmschweitzerandClaude Opus 4.6 b77c94a6d8 feat(atlas): add sync-wiki command, sync Gateway body catalog to wiki
New atlas subcommand: sync-wiki generates a Celestial Bodies section
in wiki pages from DB body/station data. All fields rendered: orbit,
ID, name, type, inhabited, population, mass, gravity, atmosphere,
biome, hydrosphere, economy, settlement pattern, industrial corridor.
Stations table includes docking class, governance, gate flag, districts.

Moons render indented under their parent body (↳ notation).
Section is idempotent — re-running overwrites the existing section.

DB is source of truth, wiki is generated output. No import direction.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 18:19:29 +01:00
jpmschweitzerandClaude Opus 4.6 080732d2ac feat(atlas): author GJ 71 (Gateway/Tau Ceti) body catalog
First system fully authored via atlas author/commit workflow.
7 bodies + 1 station: Threshold (primary garden, 600M), Arden
(secondary garden, 500M), Verantis (domed moon, 20M), inner rocky,
outer ice, debris disk, oort cloud, Horizon Station (80M).

Atlas CLI updated with proper_name, population, hydrosphere,
economic_role, settlement_pattern, industrial_corridor fields in
proposal format. Commit-system writes all fields to DB.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 18:16:09 +01:00
jpmschweitzerandClaude Opus 4.6 fb401e80d2 feat(db): replace atlas bulk populate with per-system author/commit workflow
New commands: author (generates proposal JSON per system from wiki + DB
data), commit-system (writes approved proposal to DB), wipe-system
(clears a system's bodies/stations), unfinished (lists systems without
bodies). Removed the batch populate command.

The author command reads the wiki page, extracts habitable/inhabited
counts, generates a body ID matrix based on star type, and writes a
reviewable JSON proposal. Human reviews, edits, then commits.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:53:30 +01:00
jpmschweitzerandClaude Opus 4.6 ca676e8e66 feat(db): add atlas Rust CLI for celestial bodies + stations
Rust binary (server/src/bin/atlas.rs) with commands: show-system,
show-body, show-station, list-bodies, list-stations, add-body,
add-station, stats, populate. Reads from server/data/systems.db.

Wrapper at tooling/atlas, skill at .claude/skills/atlas/SKILL.md.
Scope note: atlas will grow to cover the full geographic hierarchy
(planetary surfaces, settlements, districts) as the cascade progresses.

Also: removed stale star_systems table from settledreach.db (belongs
in systems.db only) and ran initial populate pass (329 bodies + 301
horizon stations across 301 systems).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:40:37 +01:00
jpmschweitzerandClaude Opus 4.6 fc3b7485c6 feat(schema): add bodies and stations tables to systems.db
New tables for the celestial body hierarchy below system level:
- bodies: planets, moons, gas giants, asteroid belts, oort clouds
  with physical properties, settlement data, and cultural overrides
- stations: orbital/surface facilities with type, population,
  docking class, and gate infrastructure flag

Naming convention: GJ-{n}b (planet), GJ-{n}b-1 (moon),
GJ-{n}b-S1 (station), GJ-{n}-oort (oort cloud).
Self-referential parent_body_id for moon→planet relationships.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:28:40 +01:00
jpmschweitzerandClaude Opus 4.6 79a4780c46 docs(wireframes): add navigator UI wireframes — galaxy map, system orbital, body info
Three wireframes for the Reach Navigator insert app:
- Galaxy hop-ring map (concentric layout, sector-colored, contextual gate lanes)
- System orbital schematic (star + orbits + oort cloud + horizon station)
- Body info panel (planetary screenshot, profile stats, GTTR entry)

Navigation flow: hop-ring → click system → orbital → click body → info panel.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:23:54 +01:00
jpmschweitzerandClaude Opus 4.6 be2d64cb3c docs(wireframes): add character editor Frame0 wireframe
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:15:34 +01:00
jpmschweitzerandClaude Opus 4.6 5addfd8382 assets(client): add character test model + raw textures
Test character model (test_raw.glb) with eye, hair, and body textures
for validation of the character compositor pipeline.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:15:09 +01:00
jpmschweitzerandClaude Opus 4.6 fc3b1fa538 assets(client): add character clothing textures, hair, eyebrows, facial hair, heads
Per-body-type texture maps (BaseColor, Normal, Roughness/ORM) for all
clothing items across all body types. Adds eyebrow variants, facial
hair (beard, moustache, mutton chops), hair styles (12 variants),
and head templates. Sprint 28 character visuals pipeline output.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:14:56 +01:00
jpmschweitzerandClaude Opus 4.6 6bac8b0eff chore(server): update Cargo.lock
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:14:31 +01:00
jpmschweitzerandClaude Opus 4.6 10c680bbc5 assets(client): update character clothing GLBs + add body textures
Updated clothing models (boots_work, coveralls_basic, jacket_utility,
pants_cargo, shirt_henley) for average_m and reference variants.
Added segmented body textures (BaseColor, Normal, Roughness) for all
body types: average_f, average_m, child, heavy_f, heavy_m, muscular_f,
muscular_m, teen_f, teen_m. Sprint 28 character visuals work.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:14:20 +01:00
jpmschweitzerandClaude Opus 4.6 8b78614934 docs(decisions): file Q-093 and Q-094 — tile map + chart widgets
Q-093: Tile-based exploration map in player insert (MapTileProvider
reference — Google Maps style pan/zoom with fog-of-war).
Q-094: Chart widgets for economy/market insert UI (Easy Charts
reference — commodity prices, faction rep, supply/demand curves).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:13:58 +01:00
jpmschweitzerandClaude Opus 4.6 d9062b247d chore(meta): add development cascade to CLAUDE.md + vendor/ to gitignore
6-phase cascade: wiki content → economics → planetary maps → player
control → world gen → detail coloring. Each phase completes before
the next begins. Agents must not discuss detail from later phases.

vendor/ added to .gitignore for cloned reference repos (8 Godot
plugins for world generation research).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:12:21 +01:00
jpmschweitzerandClaude Opus 4.6 252e3d380a docs(workshops): complete world generation architecture workshop
3 rounds of SW1 (endgame feature vision) with 5 agents + Qatux.
Produced endgame-feature-vision.md (692 lines) covering the full
galaxy-to-ground generation pipeline, cultural cascade, replayability
architecture, and player experience beats.

Workshop was cut short when PO redirected to a 6-phase development
cascade (wiki content → economics → planetary maps → player control →
world gen → detail coloring). v0.2 target dropped. Heritage roots
(D-104/D-105/D-101/D-107) flagged for supersession — real-world
cultural corridors replace abstract roots.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:12:09 +01:00
jpmschweitzerandClaude Opus 4.6 e77f66d53a docs(workshops): create world generation workshop brief from Q-077
Q-077 promoted to full workshop brief with 9 reference implementations,
7 key questions, 5 zone types, and agent assignments (Tyre, Gestalt,
Nigel, Miri, Ozzie).

Also: Q-089 through Q-092 filed (starfield, Markov names, event audio,
modular settings menu), make clean-imports target added.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 20:48:19 +01:00
jpmschweitzerandClaude Opus 4.6 23d946a68c chore(meta): release v0.1.28
Sprint 28: Character Visuals — character creation screen with live 3D
preview, face-based body segmentation, solidified hair and clothing,
skin/eye/eyebrow tinting, manifest-driven content, pre-push lint hooks.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 20:23:32 +01:00
jpmschweitzerandClaude Opus 4.6 e7dfcecabc chore(skills): add runtime smoke test to pr-push and pr-review
Sprint 28 lesson: 3 review rounds without launching the game missed
critical bugs. Now enforced:
- pr-push: mandatory headless smoke test before pushing, visual
  verification question for UI changes
- pr-review: parse check before spawning reviewers, process gap flag
  if runtime testing wasn't performed
- Araminta: check Poly Haven + Quaternius before creating assets

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 20:20:29 +01:00
jpmschweitzerandClaude Opus 4.6 4bb05e6b1a docs(decisions): file Q-081 through Q-088 + tickets #722-735
Plugin research session — Q-records for architectural evaluation:
Q-081: VisionCone3D client-side fog refinement (high priority)
Q-082: VoronoiShatter destruction effects
Q-083: ThemeGen dynamic insert styling
Q-084: Isometric point-and-click navigation pattern
Q-085: Portal rendering for server-side visibility
Q-086: Day/night cycle — server time driving client lighting
Q-087: Water shader for environment zones
Q-088: Spatial audio for information-aware sound

Q-077 expanded with Retro Terrain + Spatial Gardener references.

Tickets: DB tooling --help (#722), decision coverage report (#723),
version display (#724), auto-size labels (#725), cargo deny config
(#726), icon fonts (#727), resolution testing (#728), install wizard
(#729), license screen (#730), konami code (#731), minimap (#732),
nested tooltips (#733), speech bubbles (#734), settings epic (#735).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 20:01:44 +01:00
jpmschweitzerandClaude Opus 4.6 4d1a29bcc1 chore(config): add gdlint + gdformat + cargo-deny to pre-push hook
Pre-push now runs 6 checks:
- GDScript: parse check, gdlint (static analysis), gdformat (style)
- Rust: clippy, fmt, cargo deny (license/advisory/deps)
All tools degrade gracefully if not installed.

Also files Q-065 through Q-080: shooting mechanics, procedural terrain,
cloth sim, vehicle physics, PathMesh3D, NobodyWho vs voice pipeline,
BitTorrent distribution, BehaviourToolkit patterns, screenshot manager,
RichText3D, DeformableMesh, GridMapLayer, mod loader, god rays,
Steam multiplayer, CityCrafter3D, planet generator.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 19:06:03 +01:00
jpmschweitzerandClaude Opus 4.6 ec88afaf07 docs(decisions): add Q-064 planet generator for wiki screenshots
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 17:47:39 +01:00
jpmschweitzerandClaude Opus 4.6 cef2a2f27f feat(assets): regenerated segments, hair, clothing with new pipeline
Body segments: face-based exclusive assignment for all 8 body types
  (average/muscular/teen m/f, child) + hips segment
Hair: solidified 20mm, normals recalculated, white masks (was black)
Clothing: peasant tunic/pants/shoes solidified 25mm for all body types
Eye: iris mask from T_Eye_Split.png green channel

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 17:44:03 +01:00
jpmschweitzerandClaude Opus 4.6 093b24e38e feat(assets): face-based segmentation pipeline + solidify for hair/clothing
Segmentation:
- Face-based exclusive assignment (no overlap, no caps needed)
- Hips split from torso (pelvis as own segment)
- Torso_upper independent (spine_03 + clavicle, not a variant)
- Clavicle moved from arm_upper to torso_upper

Hair pipeline:
- Solidify modifier (20mm) for scalp hair volume
- Normal recalculation before solidify for consistent direction
- Eyebrows/facial hair NOT solidified
- Fixed mask generation (was outputting black, now white)

Clothing pipeline:
- Solidify modifier (25mm) for clothing thickness
- Peasant shoes added from Fantasy pack

Tooling:
- convert_outfit.py with solidify support
- inspect_glb.py, check_hair_symmetry.py for debugging
- Segment reference distribution locked
- Q-063 footsteps VFX filed

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 17:43:04 +01:00
jpmschweitzerandClaude Opus 4.6 4d9840b68f feat(client): character creator overhaul — manifest, segments, eye color
Major changes from runtime testing and iteration:
- Asset manifest (manifest.json) controls all available content —
  replaces filesystem scanning, solves DirAccess/PCK export issue
- Dynamic tabs: only show tabs with manifest content
- Body segmentation: face-based exclusive assignment, hips split from
  torso, torso_upper independent (not a variant)
- Eye color with iris-only mask from T_Eye_Split.png green channel
- Eyebrows tinted with hair color (from body segment, not separate GLB)
- Hair/clothing loaded as skinned meshes on shared skeleton
- Segment hiding disabled for clothing (solidify handles coverage)
- Gender-aware randomizer (no facial hair on female/teen)
- Clothing slots hidden when empty in manifest
- UI: color docks docked to bottom on all tabs, padding, flow layout
- Debug tab with per-segment visibility toggles
- Screenshot automation with test config JSON

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 17:42:33 +01:00
jpmschweitzerandClaude Opus 4.6 8218d5a942 fix(client): remove ALPHA output from toon shaders — fixes depth sorting
Writing ALPHA caused Godot to treat all meshes as transparent, breaking
per-pixel depth testing. Hair clipped through the head, clothing through
the body — all caused by object-level depth sorting instead of z-buffer.
Removing ALPHA makes everything opaque with correct depth behavior.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 15:39:05 +01:00
jpmschweitzerandClaude Opus 4.6 2614c3c57a fix(client): build tab panel entirely in code — remove from .tscn
TabContainer and its VBoxContainer parent vanish during scene
instantiation when loaded as a child of MainMenu in Godot 4.6.
Moving the entire tab panel construction to _ready() resolves
the issue — the .tscn now only defines the preview side and footer.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 19:11:37 +01:00
jpmschweitzerandClaude Opus 4.6 307a221527 fix(client): resolve TabContainer via find_child instead of @onready
@onready path resolution fails when the scene is instantiated as a
child of MainMenu — the node path is valid in the .tscn but the
layout hierarchy breaks during child instantiation in Godot 4.6.
Using find_child() is more robust for scenes that are dynamically
added to another scene's tree.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 18:51:09 +01:00
jpmschweitzerandClaude Opus 4.6 a2ef1c34cb fix(client): create TabContainer children programmatically
Godot 4.6 TabContainer silently destroys children defined in .tscn
during scene instantiation ("Parent path has vanished"). Moving tab
shell creation to _ready() fixes the right-side settings panel.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 18:41:24 +01:00
jpmschweitzerandClaude Opus 4.6 18ee89d066 feat(client): add animation support to character compositor
Load UAL animation library onto the skeleton and play idle animation
after character assembly. Adds play_animation() and stop_animation()
public API. Searches all animation libraries for matching animation
name with common idle variant fallbacks.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 18:33:36 +01:00
jpmschweitzerandClaude Opus 4.6 86acb87771 fix(client): explicit Variant type on JSON.parse_string return
GDScript strict mode rejects type inference from Variant-returning
functions. JSON.parse_string() returns Variant — use explicit type
annotation to satisfy the parser.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 18:28:35 +01:00