diff --git a/system-dev/docs/3-specs/pending-changes.md b/system-dev/docs/3-specs/pending-changes.md index 837601e..fad654a 100644 --- a/system-dev/docs/3-specs/pending-changes.md +++ b/system-dev/docs/3-specs/pending-changes.md @@ -487,3 +487,32 @@ leo 的判準(2026-07-30): - **影響分析**:新公開端點 1 個(租戶 key 認證,吐的是該租戶自己部署的 workflow 定義; 無跨租戶讀);CLI 新命令 2 個(薄殼,能力全在既有 API);無 schema migration、無新金鑰面。 - **狀態**:⏳ 待 leo confirm 後 3.9b 接線。 + + +## 提案:Arcrun App ↔ Portal 掛載協定 v0(2026-08-09,Leo/Arcrun#82) + +- **設計全文住在票上,本檔只留指針**(leo 08-09 立:設計寫在 issue 上,別讓下一個人再翻一次源碼) + → `Leo/Arcrun#82` 的「設計提案:Arcrun App ↔ Portal 掛載協定 v0」留言。 +- **觸發**:leo 08-09——「要變成是一個 Arcrun App,含前端、template、slots 的設置,任何人可以 + 安裝後他的 Arcrun 就跳出筆記功能」+「Mira 的那些功能萃取都要變成可安裝」+追加指示 + 「等你搞清楚 Mira 的功能時直接改成 App 模式,**不要分兩段**,不然開發好了又要一次遷移」。 +- **病根(實查)**:Portal 是單檔 HTML,「有哪些頁」在 `console-ui/public/portal/index.html` + 裡寫了四遍(側欄 :253-259/tab :510-516/VIEWS :718/allowedViews :721-729);出貨時整包 + 內嵌成單檔 worker(`build-ui-bundle.mjs:154`),安裝器只會「整顆換掉」、無任何掛載點概念。 + ⇒ 加一個能力=改核心+重出 release。`Leo/mira#2` 那批能力若照現況搬,就是逐個焊死。 +- **變更面**:① KBDB seed 一列 `arcrun_app` template(零新表,加進 `lib/portal-seeds.ts:21`) + ② `/portal/session`(`routes/portal.ts:495-515`)多回唯讀 `apps` + ③ 新增泛用端點 `POST /portal/apps/:id/actions/:name`(server 側代打既有 named webhook, + 金鑰不外流,形狀同既有 `/portal/data/upload`,但**泛用**) + ④ Portal 一次性泛用 loader(約 60 行)⑤ `acr app build|install|remove|list` + ⑥ `arcrun-app.yaml` 的 JSON Schema(repo 目前無「可安裝單位」schema,這是第一份)。 +- **不動的牆**:KBDB 零 SQL、永不加表;App 前端不進 `arcrun-rag-ui` bundle、不進 + `bundle-components.mjs`(否則回到「改核心才能加能力」);App 拿不到 session token + 與租戶字串,資料一律走既有 `/portal/data/*` 的 owner_id+library enforce; + App 自帶 workflow 必須自帶預編圖(冷實例即時編圖 25.7s > 15s timeout 的既有教訓)。 +- **影響分析**:現行 active SDD=`workflow-discovery`,本提案**不作廢它任何任務**,屬新增一卷; + 新公開端點 1 個(portal session 認證);新 template 1 列;無 schema migration、無新金鑰面; + 既有 `/portal/data/upload` 可事後收編成一個 App,不必第一天做。 +- **⏸ 等 leo 裁的兩題(票上 §七)**:① App 前端跑 Portal origin(ES module)還是 iframe + ——短期 App 是否都由我們自己寫?② v0 只開 `nav` 一個掛載點夠不夠? +- **狀態**:⏳ 待 confirm。沒 confirm 前照現行 SDD 走,不開新 SDD、不動功能程式碼。