uwarp-space 2026-03-18
Combat improvements, Vite 8 migration, lazy loading, and transport consolidation
617 files · 34,487+ · 22,379-

Combat system improvements

7 files changed
  • iss.py Implemented ISS passage mechanic and pirate fighter combat
  • combat.py Sector fighter auto-defend and citadel defense bonus
  • _attack_paths.py Updated attack paths for photon friendly-fire exemption
  • _warp.py Blocked TransWarp when limpet mines are attached
  • weapons.py Blocked scanner and disruptor use during active photon wave
  • test_combat_sector_autodefend.py Tests for sector fighter auto-defend
  • test_limpet_transwarp_block.py Tests for limpet TransWarp blocking
  • Implemented ISS (INN Security Station) passage mechanic and pirate fighter combat instantiate internal
    1 file
    • iss.py
  • Added sector fighter auto-defend — fighters in a sector automatically defend against attackers instantiate internal
    2 files
    • combat.py
    • test_combat_sector_autodefend.py
  • Citadel level now contributes a defense bonus to planet attack calculations instantiate internal
    1 file
    • planet.py
  • Respected player_alliances in photon torpedo friendly-fire exemption remediate internal
    2 files
    • _attack_paths.py
    • test_combat_photon.py
  • Blocked TransWarp when limpet mines are attached to the ship harden internal
    2 files
    • _warp.py
    • test_limpet_transwarp_block.py
  • Blocked scanner and disruptor use during an active photon wave harden internal
    2 files
    • weapons.py
    • test_photon_wave_enforcement.py

Lazy sector and port loading

2 files changed
  • lazy.py Implemented lazy loading for sectors and ports on demand
  • test_lazy_collections.py Tests for lazy collection loading
  • Implemented lazy loading for sectors and ports — only loaded on demand rather than at startup streamline internal
    2 files
    • lazy.py
    • test_lazy_collections.py
  • Significant startup time improvement for large universes streamline internal
    1 file
    • lazy.py

Web API endpoints

4 files changed
  • router.py Added /api/galaxy/export and /api/stats routes to FastAPI server
  • web.py Added web endpoints for trade info, navigation, planet, and player location
  • web_queries.py Wired web query endpoints into Cloudflare Worker fetch router
  • test_web_api_endpoints.py Tests for web API endpoints
  • Added /api/galaxy/export and /api/stats routes to the FastAPI server instantiate behavioral
    1 file
    • router.py
  • Added web endpoints for trade info, navigation, planet, and player location queries instantiate internal
    1 file
    • web.py
  • Wired web query endpoints into the Cloudflare Worker fetch router instantiate internal
    2 files
    • web_queries.py
    • fetch_router.py

Vite 8 and TypeScript 5.9 frontend migration

7 files changed
  • vite.config.ts New Vite 8 configuration for multi-page frontend build
  • package.json Frontend package with Vite 8 and TypeScript 5.9 dependencies
  • tsconfig.json TypeScript 5.9 configuration
  • galaxy.tsx 3D galaxy map migrated to InstancedMesh rendering
  • scene.ts Galaxy scene with fixed camera zoom and smooth controls
  • ErrorBoundary.tsx Added React ErrorBoundary component
  • logger.ts Fixed pino log capture
  • Migrated the frontend to Vite 8 with TypeScript 5.9 hybrid build instantiate architectural
    3 files
    • vite.config.ts
    • package.json
    • tsconfig.json
  • Fixed all TypeScript 5.9 and @types/* errors surfaced by the upgrade remediate internal
    2 files
    • api.ts
    • theme.ts
  • Migrated 3D galaxy map to InstancedMesh for efficient hex/shape rendering streamline internal
    2 files
    • galaxy.tsx
    • scene.ts
  • Fixed camera zoom jitter and smoothed galaxy map controls remediate internal
    1 file
    • scene.ts
  • Fixed asset mount paths for local dev (/assets, /shared, ESM files at root) remediate internal
    1 file
    • app.py
  • Added React ErrorBoundary and fixed pino log capture harden behavioral
    2 files
    • ErrorBoundary.tsx
    • logger.ts

Port field renames and terrain_class migration

4 files changed
  • ddl.py Renamed port stock fields and terrain_class across DDL
  • inserters.py Updated inserters for renamed fields
  • planet.py Renamed terrain_class to planet_class, planet_class to planet_class_raw
  • _seed_universe.py Updated _seed_universe port INSERT for renamed fields
  • Renamed port stock fields — fuel/organics/equipment to fuel_prod/organics_prod/equipment_prod decouple internal
    2 files
    • ddl.py
    • inserters.py
  • Renamed terrain_class to planet_class, planet_class to planet_class_raw to clarify semantics decouple internal
    1 file
    • planet.py
  • Updated _seed_universe port INSERT, all DDL, and all test factories qualify internal
    2 files
    • _seed_universe.py
    • server_fixtures.py

Transport layer consolidation into undef-terminal

5 files changed
  • ssh.py Delegated telnet/WS handling to undef-terminal; isolated SSH counters per listener
  • telnet.py Re-exported SSH/WS writers from undef-terminal package
  • test_ssh_transport.py Simplified transport tests after consolidation
  • test_ws_transport.py Transport delegation tests for WS terminal
  • Makefile Added worker CI gate to check worker sync
  • Delegated telnet/WS handling to undef-terminal; isolated SSH counters per listener decouple internal
    2 files
    • ssh.py
    • telnet.py
  • Re-exported SSH/WS writers from undef-terminal package baseline internal
    1 file
    • ssh.py
  • Consolidated SSH/ANSI into undef-terminal; simplified transport tests qualify internal
    2 files
    • test_ssh_transport.py
    • test_ws_transport.py
  • Added worker CI gate to check worker sync, with documentation baseline internal
    2 files
    • Makefile
    • ci.yml

BackendState refactor

2 files changed
  • state.py Replaced module-level globals with a per-app BackendState object
  • test_backend_app_state.py Tests for BackendState object
  • Replaced module-level globals with a per-app BackendState object for cleaner multi-instance support decouple internal
    2 files
    • state.py
    • test_backend_app_state.py

Worker Durable Object fixes

3 files changed
  • cf_transport.py Fixed CF Worker to bundle undef-terminal and forward original WS request
  • _ts_lifecycle.py Fixed maintenance scheduling, char-creation hibernation, lazy cache stats
  • _ts_command.py Populated date field in hail, send_message, and corp memo entries
  • Fixed CF Worker to bundle undef-terminal and forward original WS request remediate internal
    1 file
    • cf_transport.py
  • Fixed maintenance scheduling, char-creation hibernation, lazy cache stats remediate internal
    1 file
    • _ts_lifecycle.py
  • Fixed alarm scheduling JsProxy null handling remediate internal
    1 file
    • _ts_lifecycle.py
  • Populated date field in hail, send_message, and corp memo entries remediate internal
    1 file
    • _ts_command.py
  • Fixed mark_dirty defaults; removed stale alien rank tail from online-players report remediate internal
    2 files
    • defaults.py
    • reports.py

Multiplayer mechanics audit

3 files changed
  • _pvp.py Implemented mechanics audit issues 1-7 and 10-13 for multiplayer correctness
  • comms.py Multiplayer communication fixes
  • test_multiplayer_integration.py Integration tests for multiplayer mechanics
  • Implemented mechanics audit issues 1-7 and 10-13 for multiplayer correctness remediate internal
    3 files
    • _pvp.py
    • comms.py
    • test_multiplayer_integration.py