- Replace the square star field with a wide (width × height) field whose
aspect matches the map plate, so the fully-zoomed-out galaxy fills the
plate instead of letterboxing; recompute zone edges for equal-area thirds
under the new diagonal CDF.
- Add fitPadded() in SystemChart.js and use it in GalaxyView.js to frame
the galaxy as a true rectangle fit with a plate-pixel margin, replacing
the old world-unit padding that left stars on the plate edge.
- Rework the JumpNetwork spanning-tree heuristic to "save the stranded
first" (attach the candidate with the fewest unvisited non-barren
neighbors) and strengthen the repair pass: never attach to barren nodes,
guard swaps against cycles via inSubtree(), and add a last-resort
fallback that preserves strong connectivity.
- Update tests (galaxy.test.mjs, system-chart.test.mjs) for the field
bounds and the new fitPadded behavior; refresh README, PROJECT_NOTES,
and data comments to document the 2:1 field and platePadding knob.
- Draw the active SET DESTINATION path in orange on galaxy lanes and circle the destination star with a breathing ring
- On the current-system chart, circle the destination object when it is in this system, or show the route exit gate plus a dashed ship-to-gate line when the destination is elsewhere
- Carry `route` edge keys and `destinationId` through `buildGalaxySnapshot`, `mapChartSnapshot`, and `systemChartSnapshotFor` so views can render the course
- Add dev screenshot harnesses (route-shot, exit-gate-shot) and extend galaxy-map tests to cover route/destination flags
- Document the new visualization in PROJECT_NOTES.md and add a takeoff video asset
- Add per-show width/height overrides so the SYSTEM tab's longer
"SET DESTINATION" label gets a wider dialog than AUTOPILOT's ENGAGE
- Grow each button panel to fit its label (_fitBtn) and re-flow title,
body and buttons into the bottom band (_layout) instead of using fixed
positions that let long text run past the panel edge
- Record baseWidth so a grown button never stays wide for the next dialog
- Wire map.json systemConfirm/confirm size config through MapWindow
- Add ss-takeoff-02.mp4 asset
- New "System" socket in MapWindow: a charted star's chart drawn by the
same painter as Current System (no ship/tethers), armed until the player
picks that star on the Galaxy tab, then wakes with its map.
- Galaxy tab click flow changes: a visited star opens its chart in the
System tab (onStarOpen) instead of confirming a jump; uncharted stars
are readouts only and a lit lane to an uncharted star pops nothing.
- Zoom-bloom star art (GalaxyChart.starArtSpec + GalaxyView blit):
diffraction spikes, per-type crowns (granulation, prominences, binary
companion, habitable rings, nebula disc, void horizon) and a surface
wobble fade in as you zoom; all angles/phases seeded per system.
- Star hit-testing now scales with the dot size and includes a crowded
cluster dead band so lanes/empty space between stars no longer trigger
hover.
- New systemChartSnapshot() in SystemChart.js plus tests covering shape,
coverage, discovery flags, stats and determinism.
- Set Destination dialog (System tab) acknowledges the pick via
onSetDestination; destination model is still being defined.
- Added spacestation image/video assets for future use.
- New `GalaxyView` renders glowing stars per archetype (pulsing heartbeat),
the jump-lane web (traveled/frontier/unexplored), the charted region's
convex hull, HOME/SHIP markers, hover readouts, and CONFIRM JUMP on a
live lane (reuses the existing gate transport).
- `GalaxyChart.js` provides the pure model + geometry: edgeKey, snapshot
builder, convex hull / padded polygon, star pulse/color, and plate
clipping (Liang-Barsky + Sutherland-Hodgman) — all Node-testable.
- Run's footprint (`visitedSystems`, `usedGates`) is captured/restored/
reset in SaveData; legacy saves default to "current system charted,
nothing traveled".
- MapWindow gains tab switching between the system chart and the galaxy
view, with shared stats/legend/status chrome per mode.
- Two dev tests cover the galaxy model, save round-trip, hull geometry,
plate clipping, and a regression for the star-label blink bug.
- Clicking a charted object now opens an ENGAGE AUTOPILOT confirm before
committing: CONFIRM plots the course and closes the console; CANCEL,
scrim click, or ESC leave the map untouched (ESC is routed to the dialog
first in GameScene).
- Wheel zoom (1x-8x) re-renders the chart crisp about the cursor, drag pans
the zoomed view with frame-edge clamping, and double-tap on empty plate
resets to 1x; each system remembers its last view.
- Fix ConfirmOverlay steady-state so it holds open values instead of
collapsing to a 2px line once the open animation lands.
- Fix Phaser v4 hit-area space (unscaled frame coords) and hover/course-line
destination offset by the plate origin so the full plate is clickable and
decor draws at the correct world position.
- Add dev/map-click.mjs coverage for dialog, zoom, pan, and real-input paths;
add rocky takeoff/landing video assets.
- Introduce MapWindow (js/ui/MapWindow.js): full-screen cartography overlay
with a left video feed, CURRENT SYSTEM / GALAXY(standby) tabs, a canvas
system chart (discovered planets/stations/gates/rock fields, tether union
boundary, fog-of-war dim outside the tether), and a discovery/resources
readout with segmented bars + legend. Clicking a discovered object plots
the course via autopilot.
- Add SystemChart.js (js/galaxy/SystemChart.js) with pure geometry/stats:
chartBounds, fitToRect, navDiscoveryStats, resourceStats — Node-testable
in dev/system-chart.test.mjs.
- Wire MAP into the deck (ActionBar + GameScene): new 'map' slot right of
SHIP, full-screen open/close contract, ESC handling, snapshot polling,
and video preload for assets/videos/map.mp4.
- Add data/map.json (manifest entry) driving all map colors, tabs, stats,
legend, sweep, glitch, hover, and click copy.
- Two-beat menu intro synced to the mainmenu track crescendo: beat 1 shows
console chrome + subtitle; beat 2 (revealDelay, default 3200 ms) reveals
title, bloom, buttons, seed decode, and a signature glitch.
- Fix rocky landing surface/takeoff assets in data/landing.json to point at
the new rocky-surface-01.mp4 / rocky-takeoff-01.mp4 clips.
- Dev tooling: dev/map-shot.{html,mjs} (headless screenshot driver),
dev/menu-intro-test.{html,mjs} (intro verification), and updated
research-builds.test.mjs for the new MAP slot ordering.