Rin v0.3.0-rc.1 預發布(官方原版)

發布日期: 2026年3月6日

v0.3.0-rc.1 是 v0.2.0 之後第一輪集中整理出的預發布版本。這個階段的重點不是再堆疊零散功能,而是把過去較長時間內完成的架構升級、共享套件抽取、認證與設定調整,整理成一個可驗證、可遷移的發布候選版本。

本次預發布的重點

後端執行環境重構

伺服器端已經從舊的 Elysia 方案遷移到更適合 Cloudflare Workers 的輕量化執行環境,並進一步整理為目前的 Hono 應用裝配結構。

  • 路由與依賴支援按需載入
  • 中介軟體、錯誤處理、上下文型別邊界更清晰
  • 減少了舊框架和配套依賴帶來的冷啟動與維護成本

API 與共享套件整理

這條版本線把前後端共享邊界明確了一步:

  • 新增 @rin/api、@rin/config、@rin/ui 共享套件
  • 前端不再依賴 Eden Treaty 風格呼叫,改為自訂的型別安全 API client
  • 發布、開發、部署、資料庫任務統一收斂到 Rin CLI

認證與設定模型更新

認證流程和設定方式都有明顯調整:

  • 認證從 Authorization Header 遷移到 Cookie
  • 舊 OAuth 依賴被儲存庫內實作替代
  • 新增帳號密碼登入、/login 頁面與 /profile 頁面
  • 部署設定逐步擺脫舊的 FRONTEND_URL、API_URL 假設

資料與效能能力

除了執行環境重構,本次預發布還包含了幾項影響長期可維護性的升級:

  • PV/UV 統計遷移到 HyperLogLog
  • CacheImpl 支援資料庫或 S3 兩種持久化模式
  • 設定、快取、佇列和 Wrangler 相關工作流程做了多輪收斂

內容與編輯體驗增強

v0.2.0 之後合入的主要使用者功能也一併納入了這次預發布:

  • Moments、搜尋、置頂文章、相鄰文章
  • 友情連結排序、申請與通知
  • AI 摘要與自訂模型支援
  • Monaco 編輯器增強
  • Mermaid、KaTeX、Callout、Alert、程式碼複製、圖片燈箱、改進後的 Markdown 圖片處理

破壞性變更

API client 呼叫方式變更

舊的 Eden Treaty 風格介面不再是目前支援路徑。

舊寫法:

const feeds = await client.feed.index.get({ query: { page: 1 } });

新寫法:

const feeds = await client.feed.list({ page: 1 });

認證鏈路變更

如果你之前基於舊的 header 認證或 modal 登入流程做過自訂,需要重新驗證:

  • 登入狀態現在基於 Cookie
  • 登入頁已經遷移為獨立頁面
  • 使用者資料編輯也有了獨立頁面

設定假設變更

舊版本裡圍繞 FRONTEND_URL、API_URL 的部署假設已經被逐步移除。升級時應優先檢查目前儲存庫裡的部署工作流程、Wrangler 產生邏輯和儲存庫層級變數設定。

升級建議

從 v0.2.0 升級到這個 prerelease 時,建議至少完成以下檢查:

  1. 更新所有自訂前端 API 呼叫到新的 client 介面。
  2. 檢查認證相關改動,確認 Cookie、登入頁和回呼流程符合你的部署方式。
  3. 根據部署目標確認 CACHE_STORAGE_MODE 使用 database 還是 s3。
  4. 重新核對 GitHub OAuth 變數名稱,確認已使用 RIN_GITHUB_CLIENT_ID 與 RIN_GITHUB_CLIENT_SECRET。
  5. 重新跑一遍目前文件中的建置與部署流程,不要沿用舊版腳本習慣。

這次預發布包含了哪些修正

本次 release candidate 也順帶收斂了若干影響舊能力的修正,包括:

  • RSS 路由與排程任務相關問題
  • CORS / OPTIONS 與部分 query 參數解析問題
  • S3 path-style 與圖片佔位資訊問題
  • 部署工作流程中的 Wrangler 版本、佇列命名和環境變數傳遞問題
  • 時間軸、索引頁捲動、行動端和快取初始化相關問題

對於只屬於 v0.2.0 之後新增特性的收尾修正,這裡不單獨展開羅列。

目前狀態

v0.3.0-rc.1 仍然是預發布版本。

如果你的 fork 對認證、部署流程、API 包裝或快取層做過較深自訂,建議先在自己的環境驗證完成後,再將其視為生產升級基準。

回饋

如果你在驗證 v0.3.0-rc.1 時發現問題,建議直接透過以下方式回饋: