Files
xiaobai-review/docs/governance/stage-15-frontend-shell.md

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.
  • screenerTrackingView continues 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.