From 9740794050ad09b5dc1c2d7d84a390f5f6b97100 Mon Sep 17 00:00:00 2001 From: uncle6me-web Date: Sun, 9 Aug 2026 22:02:08 +0800 Subject: [PATCH] =?UTF-8?q?docs(3-specs):=20=E7=AB=8B=E6=A1=88=20Arcrun=20?= =?UTF-8?q?App=20=E2=86=94=20Portal=20=E6=8E=9B=E8=BC=89=E5=8D=94=E5=AE=9A?= =?UTF-8?q?=20v0=20=E6=8F=90=E6=A1=88=EF=BC=88Leo/Arcrun#82=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 設計全文住在票上,本檔只留指針+影響分析,等 leo confirm。 病根實查:Portal「有哪些頁」在單檔 HTML 裡寫了四遍,出貨時整包內嵌成 單檔 worker,安裝器只會整顆換掉、無任何掛載點概念 ⇒ 加一個能力=改核心。 未 confirm 前不開新 SDD、不動功能程式碼(現行 active=workflow-discovery)。 Co-Authored-By: Claude Opus 5 --- system-dev/docs/3-specs/pending-changes.md | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) 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、不動功能程式碼。