2026-07-04 — v27 workspace-shell IA restructure
The app had quietly turned into a vertical wall. Useful tools kept landing below the fold, and the first thing a new person saw was not the chromatogram — it was a stack of panels. That felt backwards for a trace viewer. This pass fixes the information architecture without cutting any capability.
What changed
- Hero-first layout. The chromatogram and primary toolbar now live in a left-hand hero column that stays visible immediately on load.
- Collapsible right sidebar. Secondary tools moved into a sticky sidebar with Inspect, Map, Analyze, and Share tabs.
- Primary vs. secondary split. View, Export, and Edit stay in the main toolbar; search, Q-trim, mixed-base calling, metadata, plasmid map, alignment, contig assembly, primer analysis, and sharing moved into panels.
- No ID churn. Existing control IDs and test anchors were preserved so the rest of the app and automation could keep working.
Implementation notes
The change is mostly a DOM restructure inside TraceViewer. Rather than rebuilding
feature components, the viewer now creates the same controls and panels, then moves them into
a new .app-shell with a hero region and tabbed sidebar. That kept the behavior code
stable while letting the layout change dramatically.
I also tightened control disabling so broad loading-state updates only target the intended toolbar actions. That matters now that panel-specific actions like assembly and PCR live next to the toolbar in the same overall workspace shell.
Why this version feels better
The viewer finally opens on the thing you came to inspect: the trace itself. Everything else is still there, but it no longer competes with the chromatogram for first attention. This is the kind of IA cleanup that makes the app feel calmer without removing power.