Administration dashboard
Trestle now serves its Nift-built vanilla interface directly from the Go executable. The dashboard now supports collection and record creation, inspection, editing and deletion while retaining its fixed-viewport layout contract.
Fixed viewport
The dashboard root occupies exactly 100vw × 100dvh. The page itself cannot scroll horizontally or vertically. Navigation and workspace content own bounded scroll regions using min-width: 0, min-height: 0 and overscroll containment.
Responsive workspace
The top bar includes a visible Log out action. Desktop uses navigation and workspace columns. Navigation becomes a focusable drawer before it can squeeze the workspace. Record tables become labelled cards on phone-sized screens, while intermediate widths keep overflow inside the table rather than the page. Keyboard focus remains visible and reduced-motion preferences disable meaningful animation.
Embedded production assets
Generated files live inside the web package and are embedded at compile time. HTML is served without caching; assets receive bounded caching and every response carries a restrictive Content Security Policy.
Development override
--static-dir or TRESTLE_STATIC_DIR serves an explicit directory for frontend development. Startup emits a warning so an override cannot be mistaken for an ordinary production launch.
Collection and record workflows are active. Stale edits are rejected using record versions, validation errors remain visible, and long values remain bounded inside the table rather than widening the page. Record lists use cursor pagination and selectable bulk deletion.
Refreshable dashboard routes
Every administration destination has a stable browser path. Refreshing /jobs reopens Jobs, while /collections/issues returns directly to the records for issues. Unknown or malformed paths fall back to Overview.