feat: restore mentor page to final day/night spec

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>
This commit is contained in:
MS-01-Codex
2026-08-18 11:54:57 +08:00
co-authored by multica-agent
parent d95bcb523a
commit d239519299
12 changed files with 1118 additions and 465 deletions
+28 -28
View File
@@ -370,9 +370,9 @@
}
],
"css_layers": [
"/shared/tokens.css?v=20260806-2",
"/shared/tokens.css?v=20260818-1",
"/shared/base.css?v=20260806-1",
"/shared/shell.css?v=20260806-2",
"/shared/shell.css?v=20260818-1",
"/shared/auth.css?v=20260806-1",
"/shared/components/controls.css?v=20260806-1",
"/shared/components/navigation.css?v=20260806-1",
@@ -390,7 +390,7 @@
"/pages/popularity/foundation.css?v=20260806-1",
"/pages/dragon-tiger/foundation.css?v=20260806-1",
"/pages/screener/foundation.css?v=20260806-2",
"/pages/mentor/foundation.css?v=20260806-2",
"/pages/mentor/foundation.css?v=20260818-1",
"/pages/heaven/foundation.css?v=20260806-2",
"/pages/review/foundation.css?v=20260806-1"
],
@@ -451,8 +451,8 @@
},
{
"path": "frontend/shared/shell.css",
"bytes": 51978,
"lines": 3224
"bytes": 54738,
"lines": 3348
},
{
"path": "backend/features/heaven/engine.py",
@@ -461,8 +461,8 @@
},
{
"path": "frontend/index.html",
"bytes": 45846,
"lines": 643
"bytes": 46345,
"lines": 649
},
{
"path": "backend/features/screener/catalog.py",
@@ -541,8 +541,8 @@
},
{
"path": "frontend/shared/admin.js",
"bytes": 13975,
"lines": 256
"bytes": 14386,
"lines": 265
},
{
"path": "backend/features/heaven/market_context.py",
@@ -561,13 +561,13 @@
},
{
"path": "backend/features/system/service.py",
"bytes": 12392,
"lines": 254
"bytes": 12812,
"lines": 262
},
{
"path": "backend/features/market/insights_auction.py",
"bytes": 10717,
"lines": 221
"bytes": 11618,
"lines": 243
},
{
"path": "backend/features/heaven/readings.py",
@@ -605,14 +605,19 @@
"lines": 194
},
{
"path": "backend/features/screener/formula.py",
"bytes": 6983,
"lines": 146
"path": "frontend/pages/mentor/page.html",
"bytes": 8199,
"lines": 110
},
{
"path": "backend/data/providers/tushare_daily.py",
"bytes": 6837,
"lines": 160
"bytes": 7121,
"lines": 167
},
{
"path": "backend/features/screener/formula.py",
"bytes": 6983,
"lines": 146
},
{
"path": "backend/application.py",
@@ -644,11 +649,6 @@
"bytes": 6202,
"lines": 141
},
{
"path": "frontend/pages/mentor/page.html",
"bytes": 6190,
"lines": 89
},
{
"path": "backend/features/screener/selection.py",
"bytes": 6092,
@@ -704,6 +704,11 @@
"bytes": 4276,
"lines": 91
},
{
"path": "frontend/shared/theme.js",
"bytes": 4258,
"lines": 117
},
{
"path": "backend/features/screener/engine.py",
"bytes": 4242,
@@ -714,11 +719,6 @@
"bytes": 4118,
"lines": 115
},
{
"path": "frontend/shared/theme.js",
"bytes": 4118,
"lines": 115
},
{
"path": "frontend/shared/table.js",
"bytes": 3790,