1.9 KiB
Stage 15: Shared Frontend Shell and Page Registry
Runtime Page Registry
static/pages.config.js is the build-free runtime representation of
config/pages.config.json. It registers every primary workspace plus the internal strategy
tracking workspace. Automated parity checks prevent titles, feature ownership, access labels,
groups, default-page selection, and layout metadata from drifting between the two registries.
Legacy route aliases are resolved by the registry instead of page business code. The registry describes navigation and presentation metadata only; backend authorization remains authoritative.
Shared Shell
static/shared/shell.js now owns:
- sidebar initialization, persistence, collapse state, and responsive control labels;
- primary and mobile navigation binding and active-state synchronization;
- workspace mounting, entry animation, URL state, and scroll reset;
- header command-menu lifecycle;
- market-summary expansion;
- status-bar page titles and data dates;
- the single-open-dialog lifecycle used by global application dialogs.
static/app.js retains feature-specific enter and leave behavior, such as stopping Wentian
animations or loading auction data. It asks the shell to mount a registered page and no longer
mutates global page geometry directly.
Compatibility
- Existing DOM IDs, CSS classes, query parameters, page animations, and mobile navigation are unchanged.
screenerTrackingViewcontinues to highlight the Intelligent Screener navigation item.- Existing function entry points remain as thin compatibility facades where feature code still calls status, dialog, or command-menu services.
Residual Risk
Feature renderers and feature event binding still share static/app.js. Their state ownership
is now explicit and their shell dependencies are removed, so later page-module extraction can
be performed one feature at a time instead of as a single rewrite.