Skip to content

U-1: /studio 退場 — 移除直連 Gemini SPA,307 轉址至 /app#83

Merged
dofliu merged 1 commit into
mainfrom
claude/u-1-sunset-studio
Jun 15, 2026
Merged

U-1: /studio 退場 — 移除直連 Gemini SPA,307 轉址至 /app#83
dofliu merged 1 commit into
mainfrom
claude/u-1-sunset-studio

Conversation

@dofliu

@dofliu dofliu commented Jun 15, 2026

Copy link
Copy Markdown
Owner

做什麼

Phase 3 U-1:讓 /studio 退場。原 infoCard 前端在 /studioclient-side 直連 Gemini,繞過後端計費 + 繞過 review gate(既有計費/審查漏洞)。其源碼不在本 repo 無法「改走後端」,且 U-2(2026-06-15)已在 /app 補齊視覺站對等(海報/圖卡逐區 refine + 區域選擇 = 唯一「大」缺口)。故依劉老師拍板「先補 /app 對等再退場 /studio」執行退場。

為什麼

  • 關掉「繞過後端計費 + 繞過 review gate」的漏洞(不再 serve 直連 Gemini 的 SPA)。
  • /app 已功能對等,退場時機成熟。

怎麼改

  • server/main.py:移除 /studioStaticFiles mount + SPA fallback,改無條件註冊 GET /studioGET /studio/{path}307 轉址 /app/
    • 307(暫時)而非 301/308 → 不被瀏覽器永久快取,保留反悔餘地
    • 無條件註冊(不 gate 在 web/studio build 存在與否)→ 即使殘留舊 build 也不再被服務。
    • 舊書籤/連結不 404,平滑導向 /app/
  • 移除 banner helper(_legacy_banner_html / _inject_legacy_banner / _serve_legacy_spa)now-dead 的 studio 參數(僅 /ui 仍用 legacy banner)。
  • landing.html:移除 /studio legacy 卡片 + 連帶不再使用的 .warn CSS。
  • 順手把 U-3 checkbox 補正(banner 已於 PR U-3: /ui /studio 標 legacy + 退場 banner(導向 /app) #33 落地、先前漏勾)。

怎麼測

  • tests/test_legacy_banner.py:banner 注入 4 測 + /studio 根與深連結(/studio/studio//studio/poster/studio/assets/index.js)一律 307→/app/ 2 測(TestClient,不依賴 build 產物)。
  • 本機全套 2706 passed;剩 3 個 QR/journal 字型像素失敗為容器缺 Noto CJK 字型的環境假象(CI 裝了字型為權威)。

Reviewer 決策點

  • 未繞 review gate / 安全模型不變:本 PR 只動 UI 路由與靜態頁,未碰 server/runner.py render 入口 assert、reviewed 機制或 auth。
  • /ui(影片站)本輪保留 legacy banner 過渡,未一併退場(範圍聚焦 /studio);若要連 /ui 一起退場可另開小 PR。
  • 退場採「轉址」而非硬移除(404):若 reviewer 偏好直接 404 或永久轉址(308),可調整。

https://claude.ai/code/session_01PbVQ2LtjgjfgpujfszRG7B


Generated by Claude Code

/studio 的原 infoCard 前端 client-side 直連 Gemini,繞過後端計費 + review
gate;其源碼不在本 repo 無法「改走後端」,且 U-2 已在 /app 補齊視覺站對等
(逐區 refine + 區域選擇)。依拍板「先補 /app 對等再退場 /studio」執行退場:

- server/main.py:移除 /studio StaticFiles mount + SPA fallback,改無條件
  GET /studio 與 /studio/{path} → 307 轉址 /app/(暫時轉址不被永久快取、保留
  反悔餘地;無條件註冊=即使殘留 web/studio build 也不再被服務)。一舉關掉
  繞過計費 + 繞過審查漏洞、舊書籤不 404。
- 移除 banner helper now-dead 的 studio 參數(僅 /ui 仍用 legacy banner)。
- landing.html:移除 /studio legacy 卡片 + 連帶 .warn CSS。
- tests/test_legacy_banner.py:banner 注入 4 測 + /studio 根與深連結
  307→/app/ 2 測(TestClient 不依賴 build 產物)。

本機全套 2706 passed(剩 3 個 QR/journal 字型像素為容器缺 Noto CJK 假象,
CI 權威)。

https://claude.ai/code/session_01PbVQ2LtjgjfgpujfszRG7B
@dofliu dofliu marked this pull request as ready for review June 15, 2026 21:13
@dofliu dofliu merged commit 8eb7bdc into main Jun 15, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants