Skip to content

Releases: openRin/Rin

v0.3.0

12 Mar 17:44

Choose a tag to compare

What's Changed

Full Changelog: v0.3.0-rc.2...v0.3.0

🐛 Bug Fixes

  • fix: fall back to app for non-asset dotted paths (#488) (82b045c)
  • fix: stream storage blobs when no public host is configured (#487) (e3cfbed)
  • fix: restore admin access when login is hidden (#486) (7ac58e6)
  • fix: update adjacent feed API response handling (#483) (b8aefa1)
  • fix: restore scrolling after navigation (#481) (0278244)
  • fix: gate public cache inside cache impl (#480) (4921279)
  • fix: refine server timing breakdown (#479) (21d13a4)
  • fix: load client config through worker bootstrap script (#478) (f830332)
  • fix: inline client config into app shell (#477) (e53e8ef)
  • fix: execute footer html scripts (#476) (92d3735)
  • fix: ignore comment webhook delivery errors (#474) (77c3acc)
  • fix: resolve webhook config consistently (#471) (4393230)
  • fix: avoid TOC anchors being hidden by header (#468) (48ef7f1)

📝 Other Changes


📋 Detailed Changelog

Overview

This stable release finalizes the 0.3.0 line after the rc1 and rc2 rollout, promoting the new runtime architecture, shared package boundaries, and customization work to general availability. It also includes the final stabilization fixes completed after rc.2, with extra attention on routing, storage blob delivery, and production safety around assets and admin access.

Added

  • Stable 0.3.0 baseline: Promoted the new Worker runtime, shared workspace package structure, unified CLI workflows, and expanded site customization features from prerelease to stable.

Changed

  • Release line hardening: Consolidated the rc1 and rc2 feature set into the first stable 0.3.x release so new installations and upgrades can target a non-prerelease version.

Fixed

  • Storage blob routing: Fixed storage blob delivery through API routes and restored correct streaming behavior when no public asset host is configured.
  • Asset path fallback behavior: Fixed dotted-path routing so real asset requests continue to resolve correctly while non-asset paths still fall back to the application.
  • Admin availability: Fixed an auth regression that could block admin access when login visibility was disabled.
  • Navigation and rendering regressions: Fixed post-navigation scroll restoration, adjacent feed API response handling, table-of-contents anchor offsets, footer script execution, and bootstrap config loading in the app shell.
  • Webhook and cache behavior: Fixed webhook error handling, cache gating, and several runtime/config edge cases discovered during the prerelease cycle.

中文版

概览

这个正式版在 rc1rc2 的基础上完成了 0.3.0 版本线的收口,将新的 Worker 运行时架构、共享 workspace 包边界、统一 CLI 流程以及站点个性化能力正式提升为稳定可用状态。同时,它也吸收了 rc.2 之后最后一轮稳定性修复,重点覆盖路由回退、存储 Blob 访问,以及生产环境中的静态资源与管理员访问安全性。

新增

  • 稳定版 0.3.0 基线:将新的 Worker 运行时、共享包结构、统一 CLI 工作流,以及扩展后的站点自定义能力从预发布状态正式提升为稳定版本。

变更

  • 发布线稳定收口:将 rc1rc2 的功能集合并为首个稳定的 0.3.x 正式版,使新部署与升级流程不再依赖 prerelease 版本号。

修复

  • 存储 Blob 路由:修复了通过 API 路由访问存储 Blob 的行为,并恢复了在未配置公共资源 Host 时的正确流式返回逻辑。
  • 资源路径回退行为:修复了带点号路径的路由回退问题,确保真实静态资源请求仍能正确命中,同时非资源路径依然能回退到应用入口。
  • 管理员可用性:修复了在隐藏登录入口时可能导致管理员访问受阻的认证回归问题。
  • 导航与渲染回归:修复了页面跳转后的滚动恢复、相邻文章 API 响应处理、目录锚点被 Header 遮挡、页脚脚本执行,以及应用壳配置注入加载等问题。
  • Webhook 与缓存行为:修复了 Webhook 错误处理、缓存启用边界,以及在预发布阶段发现的多项运行时 / 配置边缘问题。

📦 Build Artifact

This release includes the attached file build-v0.3.0-cloudflare.tar.gz.
Use the release asset URL as artifact_url when triggering deploy.yml manually.


🆙 Upgrade Guide

For users who have forked this repository:

  1. Go to your forked repository on GitHub
  2. Click "Sync fork" to get the latest changes
  3. Review the CHANGELOG.md for migration steps
  4. Update your environment variables if needed
  5. The deployment will run automatically

v0.3.0-rc.2

08 Mar 02:06

Choose a tag to compare

v0.3.0-rc.2 Pre-release
Pre-release

What's Changed

Full Changelog: v0.3.0-rc.1...v0.3.0-rc.2

🚀 Features

  • feat: add feed card presentation settings (#467) (b37e560)
  • feat: add customizable header layouts (#465) (59ec12c)
  • feat(ai-summary): support forced compat backfill (46b9d77)

🐛 Bug Fixes

  • fix: resolve blurhash image loading race (#466) (54bc2c0)
  • fix: hide uv pv stats when disabled (#461) (c3289c3)
  • fix(doc): add Webhook link to navigation (#462) (d9b04c8)
  • fix: encode webhook GET template params (#458) (63693f8)
  • fix(deploy): sync worker secrets for previews (4bbb2b3)
  • fix(webhook): preserve webhook template strings (c83a091)
  • fix(feed-card): fill image container after load (029e2fa)
  • fix(editor): hide preview in edit mode (e5d14d3)
  • fix(ui): space compat task actions and route favicon (51c48b6)
  • fix(test): align ai summary compat response type (24cfb9c)
  • fix(blurhash): keep image metadata in feed avatars (c007e27)
  • fix(favicon): serve favicon.ico route (683c9a3)
  • fix(deploy): validate artifact deploy script hash (01e4484)
  • fix(favicon): reuse auth and fallback to site avatar (d8dfa54)

📚 Documentation

  • docs: expand rc2 changelog (1215599)
  • docs: add bilingual rc2 changelog (9c26850)
  • docs: remove workers route setup for rss (#464) (1cdbd90)

📝 Other Changes

  • chore(release): v0.3.0-rc.2 (b4497b2)

📋 Detailed Changelog

Overview

This prerelease expands rc1 with a second round of UI and operability improvements centered on site customization, content maintenance, and deployment reliability. The largest user-facing changes are the new customizable header layouts, feed card presentation settings, and a tighter configuration experience around theme color, favicon, webhook handling, and compatibility backfill tasks.

Added

  • Customizable header layouts: Added multiple header layout options with live previews, including a more compact text-first header variant.
  • Feed presentation settings: Added configurable feed card styles and feed layout options in settings.
  • Editorial card variant: Added a new editorial-style feed card variant with stronger visual hierarchy.
  • Shared preview shell: Added a shared settings preview card used by header layout and feed card style previews.
  • Theme color controls: Added configurable theme color options and runtime theme color application for the client.
  • Forced AI compat backfill: Added support for running compatibility backfill tasks even when AI summary state was already initialized.
  • Webhook documentation: Added dedicated English and Chinese webhook guides to the docs.

Changed

  • Feed browsing experience: Feed, search, and hashtag pages can now render cards in either a standard list or a two-column masonry layout.
  • Settings personalization UI: Reworked the personalization section to cover header layout, theme color, feed card style, and feed layout with shared preview chrome and cleaner option grouping.
  • Header architecture: Split the old monolithic header into layout definitions, preview primitives, and reusable primitives so layout changes are easier to extend.
  • Favicon handling: Site favicon behavior now prefers the configured favicon route and can fall back to the site avatar more gracefully.
  • Visibility of traffic stats: PV/UV display now correctly follows the counter setting and stays hidden when statistics are disabled.

Fixed

  • Blurhash and image metadata: Fixed blurhash loading races, preserved image metadata in feed avatars, and ensured feed card images fill their container correctly after load.
  • Card rendering polish: Fixed feed card image clipping, preview overflow, compact header preview sizing, and summary length behavior in denser layouts.
  • Webhook template handling: Fixed URL encoding for webhook GET template parameters while preserving template strings through configuration save/load flows.
  • Deployment workflow reliability: Fixed preview deployments to sync worker secrets correctly and tightened build/release validation around deploy artifacts.
  • Compatibility task flow: Fixed AI summary compatibility task response typing and improved compat task action spacing in the UI.
  • Editor and route edge cases: Fixed markdown editor preview visibility in edit mode and ensured /favicon.ico is served correctly.

中文版

概览

这个预发布版本在 rc1 的基础上继续推进 UI 与可运维性改进,重点放在站点个性化、内容维护,以及部署可靠性上。最显著的用户侧变化包括可配置的 Header 布局、文章卡片展示设置,以及围绕主题色、网站图标、Webhook 处理和兼容性补齐任务的整体体验打磨。

新增

  • 可配置 Header 布局:新增多种 Header 布局选项和实时预览,包括更紧凑的纯文本风格布局。
  • 文章列表展示设置:在设置页中新增文章卡片样式和列表布局选项。
  • Editorial 卡片样式:新增一个更强调视觉层级的文章卡片主题。
  • 共享预览外壳:新增一套共享的设置预览卡组件,用于统一 Header 布局和文章卡片样式预览。
  • 主题色控制:新增客户端主题色选项,并支持运行时应用站点主题色。
  • 强制兼容性补齐:新增 AI 兼容性任务的强制补齐能力,即使摘要状态已经初始化也可以重新执行。
  • Webhook 文档:补充了中英文的专用 Webhook 使用文档。

变更

  • 文章浏览体验:文章列表、搜索结果页和标签页现在可以在单列列表与双列瀑布流之间切换。
  • 设置页个性化 UI:重构了个性化设置区,统一管理 Header 布局、主题色、文章卡片样式和列表布局,并通过共享预览外壳保持视觉一致。
  • Header 架构:将原本较为集中的 Header 实现拆分为布局定义、预览基础组件和可复用 primitive,使后续布局扩展更容易维护。
  • 网站图标处理:网站 favicon 的处理流程现在更明确地优先走配置路由,并能更自然地回退到站点头像。
  • 访问量显示逻辑:PV/UV 显示现在会正确跟随统计开关,在禁用统计时不再继续展示。

修复

  • Blurhash 与图片元数据:修复了 blurhash 加载竞态,保留了 feed 头像中的图片元数据,并确保文章卡片图片在加载完成后正确填满容器。
  • 卡片渲染细节:修复了文章卡片图片裁切、预览区域 overflow、极简 Header 预览尺寸,以及高密度布局下摘要长度控制等问题。
  • Webhook 模板处理:修复了 Webhook GET 请求模板参数的 URL 编码问题,同时保证模板字符串在配置读写流程中不被破坏。
  • 部署流程稳定性:修复了 preview 部署时的 Worker Secret 同步问题,并加强了构建产物部署脚本的校验。
  • 兼容性任务流程:修复了 AI 兼容性任务响应类型问题,并优化了兼容性任务操作区的间距表现。
  • 编辑器与路由边缘情况:修复了编辑模式下 markdown 预览显示问题,并确保 /favicon.ico 路由可正常访问。

📦 Build Artifact

This release includes the attached file build-v0.3.0-rc.2-cloudflare.tar.gz.
Use the release asset URL as artifact_url when triggering deploy.yml manually.


🆙 Upgrade Guide

For users who have forked this repository:

  1. Go to your forked repository on GitHub
  2. Click "Sync fork" to get the latest changes
  3. Review the CHANGELOG.md for migration steps
  4. Update your environment variables if needed
  5. The deployment will run automatically

v0.3.0-rc.1

06 Mar 16:37

Choose a tag to compare

v0.3.0-rc.1 Pre-release
Pre-release

What's Changed

Full Changelog: v0.2.0...v0.3.0-rc.1

Overview

This prerelease rolls up the work completed after v0.2.0 into a single upgrade candidate focused on the new runtime architecture, shared packages, and day-to-day operability. The largest changes are the backend runtime migration, the custom API client/auth flow, and the move toward unified local tooling and configuration management.

Added

  • Unified Rin CLI: Added a first-party CLI entrypoint for local development, deployment, database tasks, and release preparation.
  • Shared workspace packages: Introduced @rin/api, @rin/config, and @rin/ui as real shared packages used by the app.
  • Authentication options: Added password-based admin login, a dedicated /login page, and a /profile page for avatar and nickname updates.
  • AI configuration: Added AI summary support, custom model support, and merged AI settings into the main server configuration flow.
  • Content features: Added Moments, search, pinned/top feeds, adjacent feed navigation, friend sorting and apply flows, visit count display, and compatibility task management pages.
  • Editor and rendering enhancements: Added Monaco editor improvements, Mermaid, KaTeX, callouts, alerts, popup support, code-copy actions, image lightbox support, richer markdown image handling, and WordPress import tooling.
  • Internationalization: Added Japanese and Traditional Chinese translations, and expanded translation coverage across the app.

Changed

  • Backend runtime: Replaced the old Elysia-based server stack with a lighter Worker-oriented runtime and then a Hono-based app assembly, with lazy route/dependency loading and clearer middleware boundaries.
  • Admin Panel: Consolidates management pages such as writing and settings into a standalone admin interface, separating them from public pages, and also redesigns the UI of the writing and settings pages.
图片
  • API client: Replaced Eden Treaty usage with a custom type-safe API client and shared transport contracts in @rin/api.
  • Authentication transport: Moved authenticated requests from authorization headers to cookie-based sessions and replaced the previous OAuth dependency with an in-repo OAuth implementation.
  • Statistics and caching: Migrated PV/UV aggregation to HyperLogLog and added cache persistence modes for both D1 and S3.
  • Configuration and deployment: Simplified local development setup, removed legacy FRONTEND_URL and API_URL assumptions, and updated CI/deploy workflows around generated Wrangler configuration and repository-level variables.
  • Release packaging: GitHub Releases now include the packaged Cloudflare build artifact so manual deployments can consume the release asset URL directly.
  • Documentation: Moved documentation into the main repository and added release/deployment guidance for the newer workflow.

Removed

  • Legacy backend dependencies: Removed the old Elysia/Eden/Treaty-oriented release path from the supported architecture.
  • SEO-specific server rendering path: Removed the previous SEO-only server rendering flow in favor of the current runtime behavior.

Fixed

  • RSS and feed delivery: Fixed broken RSS routes, cron edge cases, adjacent feed response fields, and S3 path-style handling.
  • Deployment workflow reliability: Fixed CI environment propagation, Wrangler version mismatches, queue creation/naming issues, and shell pipeline error handling in release/deploy workflows.
  • Cross-origin and routing behavior: Fixed CORS/OPTIONS handling, integer query parsing, and custom API URL usage.
  • Existing UI regressions: Fixed image placeholder metadata, blurhash support in feed cards, timeline rendering, index scrolling/mobile behavior, and several cache initialization issues that affected pre-existing pages.

Migration Guide

For Existing Users Upgrading From v0.2.0

  1. Update custom API calls:
    • Eden Treaty-style calls such as client.feed.index.get(...) are no longer supported.
    • Migrate to the new client methods such as client.feed.list(...).
  2. Review auth integration:
    • Authentication now uses cookies and dedicated login/profile pages.
    • If you customized the previous modal/login callback flow, re-test that integration before promoting this prerelease.
  3. Review runtime/config assumptions:
    • FRONTEND_URL and API_URL are no longer part of the current deployment model.
    • Prefer the repository-level variables and generated Wrangler config used by the current workflows.
  4. Pick a cache backend deliberately:
    • Set CACHE_STORAGE_MODE=database if you want to run without S3-backed cache persistence.
    • Keep S3 configuration in place if you still want object-storage-backed cache assets.

Known Issues

  • This is still a prerelease for the 0.3.0 line; downstream forks with custom auth, deployment, or API wrappers should validate their integrations before treating it as production-ready.

中文版

概览

这个预发布版本将 v0.2.0 之后完成的大量工作整理为一个可验证的升级候选版本,重点集中在新的运行时架构、共享包抽取,以及日常开发和部署可维护性的提升。最大的变化包括后端运行时迁移、自定义 API client 与认证流程,以及统一的本地工具链。

新增

  • 统一 Rin CLI:新增一套一方维护的 CLI 入口,用于本地开发、部署、数据库任务和 release 准备。
  • 共享 workspace 包:引入 @rin/api@rin/config@rin/ui,作为应用当前实际使用的共享包。
  • 认证方式扩展:新增账号密码登录、独立 /login 页面,以及可更新头像和昵称的 /profile 页面。
  • AI 配置能力:新增 AI 摘要、自定义模型支持,并将 AI 设置并入主服务端配置流程。
  • 内容能力:新增 Moments、搜索、置顶文章、相邻文章、友情链接排序与申请流程、访问统计展示以及兼容性任务管理页面。
  • 编辑器与渲染增强:新增 Monaco 编辑器改进、Mermaid、KaTeX、Callout、Alert、弹出层、代码复制、图片灯箱以及更丰富的 Markdown 图片处理能力,并支持 WordPress 导入。
  • 国际化:新增日语与繁体中文翻译,并扩展了应用中的多语言覆盖范围。

变更

  • 后端运行时:将旧的 Elysia 服务端栈替换为更轻量的 Worker 运行时,并进一步整理为 Hono 应用装配结构,支持懒加载路由与依赖,并使中间件边界更清晰。
  • API client:移除 Eden Treaty 调用方式,改为自定义的类型安全 API client,并通过 @rin/api 共享传输契约。
  • 管理面板:将写作与设置等管理页整合到独立的管理页面,不再与公共页面混合在一起,同时重构了写作页与设置页的 UI
图片
  • 认证传输:认证请求从 Authorization Header 迁移为 Cookie Session,同时将原 OAuth 依赖替换为仓库内实现。
  • 统计与缓存:PV/UV 统计迁移到 HyperLogLog,并为缓存新增 D1 与 S3 两种持久化模式。
  • 配置与部署:简化本地开发设置,移除旧的 FRONTEND_URLAPI_URL 假设,并更新围绕 Wrangler 生成配置和仓库级变量的 CI / 部署流程。
  • 发布产物:GitHub Releases 现在会附带打包后的 Cloudflare 构建产物,便于手动部署时直接使用 release asset URL。
  • 文档:文档已迁移回主仓库,并补充了与当前流程匹配的发布与部署说明。

移除

  • 旧后端依赖路径:移除了旧的 Elysia / Eden / Treaty 相关支持路径,不再作为当前架构的一部分。
  • SEO 专用服务端渲染流程:移除了之前面向 SEO 的单独服务端渲染路径,改为当前运行时行为。

修复

  • RSS 与 feed 交付:修复了 RSS 路由、定时任务边缘情况、相邻文章返回字段以及 S3 path-style 相关问题。
  • 部署流程稳定性:修复了 CI 环境变量传递、Wrangler 版本不一致、队列创建与命名问题,以及 release / deploy 流程中的 shell pipeline 错误处理。
  • 跨域与路由行为:修复了 CORS / OPTIONS 处理、整数 query 解析以及自定义 API URL 的使用问题。
  • 既有 UI 回归:修复了图片占位元数据、feed card blurhash、时间线渲染、索引页滚动 / 移动端行为,以及多个影响旧页面的缓存初始化问题。

迁移指南

从 v0.2.0 升级的现有用户
  1. 更新自定义 API 调用
    • 旧的 Eden Treaty 风格调用,例如 client.feed.index.get(...),已不再支持。
    • 请迁移到新的 client 方法,例如 client.feed.list(...)
  2. 检查认证集成
    • 认证现在基于 Cookie,并使用独立的登录 / 资料页面。
    • 如果你定制过旧的 modal 登录或 callback 流程,建议在推广这个 prerelease 前重新验证。
  3. 检查运行时 / 配置假设
    • FRONTEND_URLAPI_URL 已不再属于当前部署模型。
    • 优先采用当前 workflow 使用的仓库级变量和生成式 Wrangler 配置。
  4. 明确缓存后端选择
    • 如果你希望不依赖 S3 持久化缓存,可设置 CACHE_STORAGE_MODE=database
    • 如果你仍需对象存储缓存资产,请保留 S3 相关配置。

已知问题

  • 这仍然是 0.3.0 版本线的预发布版本;对认证、部署或 API 包装做过深度定制的下游 fork,仍应先完成自有环境验证,再将其视为生产可用版本。

📦 Build Artifact

This release includes the attached file build-v0.3.0-rc.1-cloudflare.tar.gz.
Use the release asset URL as artifact_url when triggering deploy.yml manually.


🆙 Upgrade Guide

For users who have forked this repository:

  1. Go to your forked repository on GitHub
  2. Click "Sync fork" to get the latest changes
  3. Review the CHANGELOG.md for migration steps
  4. Update your environment variables if needed
  5. The deployment will run automatically

v0.2.0

07 Jun 09:34

Choose a tag to compare

更新日志

  • 支持 SEO 预渲染优化 #27
  • 支持时间轴归档 #23
  • 环境变量加密列表与变量列表更新,仅保留必须加密的环境变量
  • 加密变量现在可以通过 Github 直接配置
  • Github 变量配置更新,新增必须通过 Github 配置的加密变量(S3 存储,用于 SEO 索引保存)
  • GITHUB_CLIENT_IDGITHUB_CLIENT_SECRET现在添加了前缀RIN_RIN_GITHUB_CLIENT_ID,RIN_GITHUB_CLIENT_SECRET),以解决 Github 变量不能以 GITHUB_ 开头的问题,使用 Cloudflare 面板配置的 GITHUB_CLIENT_IDGITHUB_CLIENT_SECRET 不受影响

迁移

  1. 同步 fork 的仓库至最新代码
  2. 参照迁移文档完成环境变量的迁移

What's Changed

  • docs: add issues template support by @OXeu in #13
  • docs: add Simplified Chinese CONTRIBUTING.md support. by @OXeu in #14
  • docs: Update README.md to use responsive image for Star History Chart by @OXeu in #15
  • fix: publish button shadow color on mobile view (dark mode) by @OXeu in #16
  • feat: Add pagination support by @OXeu in #17
  • feat: Optimize feed fetching logic and add support for different feed… by @OXeu in #18
  • fix: feed fetching logic and add support for different feed types by @OXeu in #19
  • fix: invalid page for spider by @OXeu in #21
  • docs: update README list numbering by @SliverKeigo in #25
  • fix: rename herf to href by @OXeu in #26
  • feat: seo friendly by @OXeu in #27
  • ci: Install Chrome for Puppeteer in SEO workflow by @OXeu in #28
  • fix: Fix link filtering logic in fetchPage function by @OXeu in #29
  • docs: Update SEO.md by @OXeu in #30
  • docs: add SEO.md to README.md by @OXeu in #31
  • docs: add migration guide by @OXeu in #32
  • docs: Update issue templates by @OXeu in #33
  • docs: add tips by @OXeu in #34
  • docs: add troubleshooting by @OXeu in #35
  • feat: add timeline support by @OXeu in #37
  • fix: can not add env start with GITHUB_ by @OXeu in #38

New Contributors

Full Changelog: v0.1.0...v0.2.0

v0.1.0

06 Jun 05:33

Choose a tag to compare

What's Changed

  • new: 第一个版本
  • feat: 支持 Github OAuth 登录,默认第一个登录的用户拥有管理权限,其他用户均为普通用户
  • feat: 支持文章的写作与编辑
  • feat: 支持本地实时保存对任意文章的修改/编辑且多篇文章互不干扰
  • feat: 支持设置为仅自己可见,可以充当云端同步的草稿箱或者记录隐私性较强的内容
  • feat: 支持拖拽/粘贴上传图片到支持 S3 协议的存储桶并生成链接
  • feat: 支持设置文章别名,可通过形如 https://xeu.life/about 链接访问文章
  • feat: 支持文章不列出在首页列表中
  • feat: 支持添加友链,同时后端每间隔 20 分钟定期检查更新友链可访问状态
  • feat: 支持回复评论文章/删除评论
  • feat: 支持通过 Webhook 发送评论通知
  • feat: 支持自动识别文章中的第一张图片并作为头图展示在文章列表中
  • feat: 支持输入形如"#博客 #部署 #Cloudflare"之类的标签文本并自动解析为标签
  • feat: 支持夜间模式与切换
  • feat: 支持 Github Action 自动部署 #12

New Contributors

  • @PBK-B made their first contribution in #1
  • @OXeu made their first contribution in #2

Full Changelog: https://github.com/OXeu/Rin/commits/v0.1.0