March 31: 4+1 Views and a Dead Code Purge
Docs day — added the 4+1 architecture view documentation and reorganized mkdocs nav around it, plus removed the dead per-channel feathering code that single-instrument composites no longer run.
Docs day — added the 4+1 architecture view documentation and reorganized mkdocs nav around it, plus removed the dead per-channel feathering code that single-instrument composites no longer run.
Session cleanup day — added z-index and spacing tokens, killed dead CSS, capped the auto palette at blue so single-channel composites stop going purple, and patched the guided step-card styles that the token refactor accidentally deleted.
Three compositing bugs in a row — turned out per-channel feathering was running on single-instrument composites where it makes no sense, the memory budget for NIRCAM was miscalculated, and the multi-instrument feather needed a union mask instead of per-channel intersections.
The MIRI boundary kept leaking visual artifacts through the blend — fixed the transition math (smoothstep + CIELAB lerp + sRGB gamma on the mask) and then chased a related OOM that only showed up at multi-instrument resolution.
The big multi-instrument compositing push. Started with per-channel feathering that couldn't fix the MIRI color palette shift, evolved to instrument-level blending, then realized signal fading destroys detail and invented color-contribution feathering — lerping between palette interpretations instead of fading signals.
The walkthrough generator moved to async export queues to stop timing out on large composites, and the channel-aware memory budget model got a conservative overhaul after OOM incidents on multi-channel composites.
The composite pipeline gained per-tile gain normalization to eliminate exposure-level grid artifacts, quality scoring via HTTP response headers, and HDR auto-stretch for extreme dynamic range targets like the Crab Nebula. Coverage-aware filter selection in the recipe engine now handles RA wraparound correctly.
Massive infrastructure day. The composite pipeline got streaming reprojection to stop loading entire FITS files into memory, auto-stretch parameters learned to compute themselves from channel statistics, and a security audit scrubbed hardcoded paths and AWS IDs from the codebase.
Big feature day — FOV overlap detection landed in the composite wizard, the auth flow got simplified to remove race-prone refresh triggers, and MIRI got its own stretch presets separate from NIRCAM.
Massive infrastructure session — 15 PRs merged spanning Vite 8 migration, test infrastructure overhaul, 80+ lint fixes, and the first UX sprint feature landing. The codebase is cleaner than it's been in weeks.