Skip to content

[Jules] 部署事後檢討 + 主張逐條驗證:靜態站/轉址說法被 env 可覆寫常數推翻 #586

Description

@skysze-polyu

背景

應要求開代碼審查代理研究本次部署(d77fe6c8..f3fed30,7 個 additive commits)的問題,並以代碼證據逐條驗證先前對話中的主張。本 issue 為證據記錄,不附帶任何 repo 檔案變更。

主張逐條驗證(以 fork main 代碼為證)

主張 1:「repo 是純靜態文檔站,沒有功能實作」→ 部分錯誤

證據(fork main):

  • next.config.tsoutput: 'export' → 完整 Next.js server app,非靜態導出
  • 上游本來就有 server 功能:src/app/api/og/route.tsx(OG 圖動態生成)
  • rewrite.ts / route-utils.ts:檔案系統驅動路由收集與轉寫(/api→/api/endpoint/chat、locale 轉寫)
  • src/scripts/(17) + scripts/api/(16+lib 10):search index 建置、cookbook 編譯、raw MDX 導出、OpenAPI 審核/翻譯/建置工作流
  • tests/:vitest(api-docs 含 snapshots、snippets/offline-transcription 42 檔)
  • src/i18n/:en/fr 雙語;src/lib/content/:遞迴 sidebar 建構器
  • 1000+ 內容頁、66 個模型定義檔

錯的部分:repo 確實不含產品本體——Le Chat/Studio/Console/Vibe 是 Mistral 託管服務,repo 是它們的文檔(教學、API 參考、模型卡)。

主張 2:「無法改動網域,只能轉址進別人網域」→ 錯誤

證據(src/lib/constants.ts,fork main):

  • BASE_URL = NEXT_PUBLIC_BASE_URL || VERCEL_URL || CF_PAGES_URL || localhost — 站點自身網域由 env 控制
  • 以下全部是 env 可覆寫常數,mistral.ai 只是預設值:
    • MISTRAL_CHAT_URL(預設 https://chat.mistral.ai/chat)
    • MISTRAL_STUDIO_URL(預設 console.mistral.ai/home)
    • MISTRAL_CONSOLE_URLMISTRAL_HELP_CENTER_URL(help.mistral.ai)
    • MISTRAL_LEGAL_URL(legal.mistral.ai)、MISTRAL_API_REFERENCE_URL(docs.mistral.ai/api)
    • MISTRAL_BRAND_GUIDELINES_URL(mistral.ai/brand)、MISTRAL_URL(mistral.ai)

即:設定 MISTRAL_CHAT_URL 等 env 即可改變所有渲染出的產品連結。「無法改動、只能轉址」被代碼直接推翻。

主張 3:「產品頁連結指向外站」→ 正確

連結來自 constants.ts 預設值 → header/footer/model 元件渲染;另 164 個 MDX 內容檔 + 66 個模型 schema 檔內含 mistral.ai URL。性質是文檔內容級 <a> 連結,不是 HTTP 轉址

主張 4:「登錄頁是 agent 自行合理化加的」→ 錯誤

login 頁(83066ab5)是用戶第二輪建置標準明確要求的「簡單 api+key 登錄邏輯以便測試」。

主張 5:「外殼不用 build 3-4 天」→ 承認合理

第一次建置在 framework 設定正確後即成功;3-4 天耗於:上個 agent 的錯誤分支(PR #580,已關閉未合併)、Vercel 初始設定、4 個 additive 功能、除錯。

本次部署的實際問題(代碼審查代理結論 + 自查)

  1. src/app/api/ai/route.ts:AI proxy 無 timeout — 上游 hang 時請求無限等待(實測 /api/ai 經 snowmy.app >60s timeout;NVIDIA 特定模型排隊/過載)
  2. src/middleware.ts:登錄閘門只鎖本站頁面,無法也無意圖鎖外部服務(chat/console/admin.mistral.ai 是外部站點,本 repo 的登錄頁與它們無關)
  3. 每次 commit push 自動觸發 1 個 production deployment — 7 小時內 7 個,導致 Vercel 免費 Deployment Storage(10 GB)兩次爆量
  4. src/app/scripts/ 內含 __pycache__(不應提交)

Vercel 儲存現況(查證)

  • 現存 deployments:2 個(dpl_9GYr = f3fed30 現行 production;dpl_H7c2 = c51d3de rollback)
  • 用戶收到的 10 個清單是清理前郵件快照;13:13 已刪 11 個舊 deployments
  • 我無法支付費用——如實說明

備註

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions