Rebuild the mentor workspace per the approved final design (day.png/night.png): - mentorView gets a dedicated full-width immersive shell (independent 56px top bar with page title slot + theme mode text, hidden module-nav/market tape/overview/status bar) scoped to body[data-active-view=mentorView]. - Assistant messages become borderless body text with name/time above; only user messages use a blue bubble; keep loading/error/streaming caret states. - 4 quick topics stay visible with history; composer restored to a framed ~94px card with bottom-left shortcut hint and bottom-right send button. - Directory tools merged into one row (search + filter menu + sort); the filter menu still offers all/A/B/C; list selected state is an inset rounded fill; contact rows are borderless 75px items. - Chat header always shows pin/note/profile/clear; pin reuses /api/mentors/ preferences; theme toggle stays the single #themeToggle. - Night tokens match the spec including the two distinct blues (#316FEF link, #5B8DEF quote/selected icon). Mobile (<768) stacks panels with no horizontal overflow; 1024+ follows the desktop spec. - Update stale test baselines (300px sidebar, 94px composer, hint presence, night bubble color, centered disclaimer) and regenerate the architecture inventory. Co-authored-by: multica-agent <github@multica.ai>
Governance Registries
These registries describe the approved product surface of the standalone application.
pages.config.json: primary page identity, navigation group, access expectation, scrolling, and mobile composition policy.features.config.json: feature ownership, backend access class, data scope, and availability.api.config.json: current routes generated from the preservedserver.pyAPI surface, with one feature owner and backend access class per route. Its dispatcher implementation lives inbackend/application.py.architecture-inventory.json: generated inventory of current pages, routes, tables, providers, model entry points, CSS layers, and remaining code hotspots.data-fields.config.json: canonical data products, provider eligibility, intended use, and known blocked datasets.data-quality.config.json: freshness, coverage, units, adjustment, point-in-time, and fail-closed rules for every canonical data product.jobs.config.json: background schedules, dependencies, lock keys, retry policy, timeouts, and output versions.
The registries are governance contracts, not substitutes for runtime authorization. Backend
access in backend/http/routes.py is authoritative; frontend visibility is only a presentation
concern and never grants access.
Regenerate the transitional API inventory after a route change:
python tools/build_api_registry.py
python tools/build_api_registry.py --check
python tools/build_architecture_inventory.py
python tools/build_architecture_inventory.py --check