Rin v0.3.0-rc.1 预发布

发布日期: 2026年3月6日

v0.3.0-rc.1v0.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_URLAPI_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_URLAPI_URL 的部署假设已经被逐步移除。升级时应优先检查当前仓库里的部署工作流、Wrangler 生成逻辑和仓库级变量配置。

升级建议

v0.2.0 升级到这个 prerelease 时,建议至少完成以下检查:

  1. 更新所有自定义前端 API 调用到新的 client 接口。
  2. 检查认证相关改动,确认 Cookie、登录页和回调流程符合你的部署方式。
  3. 根据部署目标确认 CACHE_STORAGE_MODE 使用 database 还是 s3
  4. 重新核对 GitHub OAuth 变量名,确认已使用 RIN_GITHUB_CLIENT_IDRIN_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 时发现问题,建议直接通过以下方式反馈: