console 頁面 profile 裁剪:CONSOLE_PROFILE=rag 企業產品樣(搜尋落地),未設=full mira 零影響 #48

Merged
Leo merged 1 commits from console-profile-trim into main 2026-07-13 11:15:01 +00:00
Owner

續 #47(CONSOLE_BRAND)的下一刀。需求源:leo 2026-07-13 拍板(arcrun-rag system-dev/docs/3-specs/rag-wave1/design.md §2)——企業用戶只要搜尋頁+設定頁、工作流可顯示、Mira 專屬頁(駕駛艙/分流台/憑證管理)不進企業版。

做法取捨:profile 名 vs 頁面清單

CONSOLE_PROFILE=rag(profile 名)不選 CONSOLE_PAGES 自由清單:profile 是「測過的整組組合」;自由清單會讓部署者拼出壞組合(拿掉設定頁=登出/換密碼消失、拿掉搜尋=落地頁與卡片詳頁返回鏈斷)。未來要新組合=加一組陣列,成本低。

變更

  • types.ts:Bindings 加可選 CONSOLE_PROFILE?(非機密、只影響 UI 組成,未設=full 全套,註解同 CONSOLE_BRAND 風格)
  • console.tsrenderConsoleHtml 吃 profile。rag=側欄/底部 tab 只留 總庫搜尋/工作流/設定(切深色鈕保留);VIEWS/HOME 由 server 注入,落地頁=搜尋;隱藏頁 hash(#/cockpit #/creds #/inbox)路由 guard 改寫回 HOME——手打也進不去;登入頁「免登入看駕駛艙」連結與設定頁「憑證管理」入口同步裁掉
  • console-dashboard.ts:profile=rag 時 /console/dashboard 302 → /console(選 302 不選 404:舊書籤/外鏈落回產品頁,不給死路)

實作註記(誠實)

  • 隱藏頁的 view div 仍在 DOM(display:none、路由 guard 導不進去):creds/inbox 有 top-level addEventListener 綁定,抽 div 會讓整包 JS 啟動即炸;裁剪以「導不進去」為準,不為抽 DOM 灑滿 null-guard。駕駛艙 60 秒輪詢有 view==='cockpit' gate,rag 下永不觸發(不會偷打 dashboard-data)。
  • full 有一個微小行為修正:亂打不存在的 hash(#/foo)現在會把 hash 正規化成 #/cockpit(原本顯示駕駛艙但 hash 留著 #/foo)。
  • 不含任何 auth/帳號功能——多人 Portal 是 #24/#25 的真工程,本 PR 只做 config 裁剪這一刀。

驗證(本機 arcrun-rag demo 實跑,127.0.0.1:8788 跑本分支)

  • rag:<title>Arcrun RAG Console</title>;sidenav=search/workflows/settings、tabbar 同(無 cockpit/creds/inbox);var VIEWS=["search","card","workflows","settings"]; var HOME="search";「免登入看駕駛艙」0 出現;/console/dashboard302 Location: /console
  • full(--var 不帶 CONSOLE_PROFILE 臨時實例 8791):sidenav 6 項/tabbar 5 項/HOME=cockpit/dashboard 200/駕駛艙連結在——現行為一字不變
  • API 不動:/console/auth-status {"configured":true}/kbdb/search 無 key 401、帶 key 真資料;kbdb health ok
  • tsc --noEmit exit 0;兩版 inline JS node --check

部署註記

  • demo 已先跑此分支給 leo 看(arcrun-rag install/install.sh 已加 --var CONSOLE_PROFILE:rag --var CONSOLE_BRAND:"Arcrun RAG",本機 cypher 已重啟)
  • 不 merge,留總管審。mira 實例(leo21c)不帶 CONSOLE_PROFILE=零影響。

🤖 Generated with Claude Code

續 #47(CONSOLE_BRAND)的下一刀。需求源:leo 2026-07-13 拍板(arcrun-rag `system-dev/docs/3-specs/rag-wave1/design.md` §2)——企業用戶只要搜尋頁+設定頁、工作流可顯示、Mira 專屬頁(駕駛艙/分流台/憑證管理)不進企業版。 ## 做法取捨:profile 名 vs 頁面清單 選 **`CONSOLE_PROFILE=rag`**(profile 名)不選 `CONSOLE_PAGES` 自由清單:profile 是「測過的整組組合」;自由清單會讓部署者拼出壞組合(拿掉設定頁=登出/換密碼消失、拿掉搜尋=落地頁與卡片詳頁返回鏈斷)。未來要新組合=加一組陣列,成本低。 ## 變更 - `types.ts`:Bindings 加可選 `CONSOLE_PROFILE?`(非機密、只影響 UI 組成,未設=full 全套,註解同 CONSOLE_BRAND 風格) - `console.ts`:`renderConsoleHtml` 吃 profile。rag=側欄/底部 tab 只留 **總庫搜尋/工作流/設定**(切深色鈕保留);`VIEWS`/`HOME` 由 server 注入,**落地頁=搜尋**;隱藏頁 hash(`#/cockpit` `#/creds` `#/inbox`)路由 guard 改寫回 HOME——手打也進不去;登入頁「免登入看駕駛艙」連結與設定頁「憑證管理」入口同步裁掉 - `console-dashboard.ts`:profile=rag 時 `/console/dashboard` **302 → /console**(選 302 不選 404:舊書籤/外鏈落回產品頁,不給死路) ### 實作註記(誠實) - 隱藏頁的 view div **仍在 DOM**(display:none、路由 guard 導不進去):creds/inbox 有 top-level `addEventListener` 綁定,抽 div 會讓整包 JS 啟動即炸;裁剪以「導不進去」為準,不為抽 DOM 灑滿 null-guard。駕駛艙 60 秒輪詢有 `view==='cockpit'` gate,rag 下永不觸發(不會偷打 dashboard-data)。 - full 有一個微小行為修正:亂打不存在的 hash(`#/foo`)現在會把 hash 正規化成 `#/cockpit`(原本顯示駕駛艙但 hash 留著 `#/foo`)。 - **不含任何 auth/帳號功能**——多人 Portal 是 #24/#25 的真工程,本 PR 只做 config 裁剪這一刀。 ## 驗證(本機 arcrun-rag demo 實跑,127.0.0.1:8788 跑本分支) - rag:`<title>Arcrun RAG Console</title>`;sidenav=search/workflows/settings、tabbar 同(無 cockpit/creds/inbox);`var VIEWS=["search","card","workflows","settings"]; var HOME="search"`;「免登入看駕駛艙」0 出現;`/console/dashboard` → `302 Location: /console` - full(`--var` 不帶 CONSOLE_PROFILE 臨時實例 8791):sidenav 6 項/tabbar 5 項/HOME=cockpit/dashboard 200/駕駛艙連結在——**現行為一字不變** - API 不動:`/console/auth-status` `{"configured":true}`;`/kbdb/search` 無 key 401、帶 key 真資料;kbdb health ok - `tsc --noEmit` exit 0;兩版 inline JS `node --check` 過 ## 部署註記 - **demo 已先跑此分支**給 leo 看(arcrun-rag `install/install.sh` 已加 `--var CONSOLE_PROFILE:rag --var CONSOLE_BRAND:"Arcrun RAG"`,本機 cypher 已重啟) - **不 merge**,留總管審。mira 實例(leo21c)不帶 CONSOLE_PROFILE=零影響。 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Leo added 1 commit 2026-07-13 10:47:26 +00:00
- types.ts:Bindings 加可選 CONSOLE_PROFILE(非機密、只影響 UI 組成,未設=full)
- console.ts:renderConsoleHtml 吃 profile;rag=側欄/底部 tab 只留 總庫搜尋/工作流/設定
  (切深色鈕保留),VIEWS/HOME 由 server 注入,落地頁=搜尋;隱藏頁 hash(#/cockpit
  #/creds #/inbox)路由 guard 改寫回 HOME,手打也進不去;登入頁「免登入看駕駛艙」
  連結與設定頁憑證管理入口同步裁掉
- console-dashboard.ts:profile=rag 時 /console/dashboard 302 → /console
  (選 302 不選 404:舊書籤落回產品頁不給死路)
- 只動 UI 組成與路由 guard,零 API/資料行為變動;登入/setup 流程不變
- tsc --noEmit exit 0

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Leo merged commit cbebb36c01 into main 2026-07-13 11:15:01 +00:00
Sign in to join this conversation.