diff --git a/mcp/src/index.ts b/mcp/src/index.ts index 7dcc0a2..c396868 100644 --- a/mcp/src/index.ts +++ b/mcp/src/index.ts @@ -14,14 +14,16 @@ const _app = new Hono<{ Bindings: Env; Variables: { org_namespace: string; partn // 安全模型見 mcp/OAUTH.md。註冊在 basePath 之前,落在同一份共享 router。 registerOAuthRoutes(_app); -// ── GET /health — 一條 curl 看出「這台是哪一代 MCP」──────────────────────────────── -// 為什麼要有:判斷一台實例的 MCP 是新舊世代,原本只能打 /authorize 去剖 HTML 有幾個 -// 欄位(ops-facts 2026-08-10 的土法)。那個判準脆弱又難教。改成誠實的版本面: -// • 回 200 且 auth="portal-login" = 新世代(同意頁用 Portal email+password) -// • 回 404 = 舊世代(b8ca98c 之前,同意頁要 MCP_OWNER_SECRET, -// 而那把祕密沒有人拿得到 ⇒ 等於接不上) -// AUTH_GENERATION 跟著認證機制改才動;MCP_BUILD 是部署標記(deploy 時由 toml var 帶入)。 -// 對齊 cypher-executor /health 的形狀(ok + 版本 + 能力探針),不需認證、不吐任何機密。 +// ── GET /health — 讓「這台跑的是哪一版 MCP」用一條 curl 看得到 ───────────────────── +// 為什麼要有:cypher-executor 早就有 /health(bundle_version + auth_store 探針), +// arcrun-mcp 沒有 ⇒ 要判斷某台實例的 MCP 是哪一代認證,只能打 /authorize 剖 HTML 數欄位 +// (ops-facts 2026-08-10 的土法)。那個判準脆弱又難教。 +// +// ⚠️ 誠實界定(別把它當世代判準用過頭):本端點是**這個 commit 之後才有的**,所以 +// 「/health 回 404」只代表「比本版舊」,**不代表就是 owner_secret 世代**—— +// 現階段判世代仍要看 /authorize 的欄位(一個 owner_secret =舊;email+password =新)。 +// 等這版推到各實例之後,`auth` 欄位才會變成一眼可讀的世代判準。 +// 不需認證、不吐任何機密;MCP_BUILD 是部署標記,由各實例 toml [vars] 帶入。 _app.get("/health", (c) => c.json({ ok: true, service: "arcrun-mcp",