Skip to content

Releases: Jaaayden/feedlantern

FeedLantern v0.11.0 · 日志合并与仪表盘趋势图

Choose a tag to compare

@github-actions github-actions released this 02 Nov 14:26

抓取日志

  • 结果相同的连续检查合并为一条日志:来源、成败、有效条数、翻页信息、错误、规则预警和通知状态都与上一条一致且没有新增内容时,只在该条上记录“连续 N 次结果相同”和最近一次检查时间,不再逐次新增。条数变化、出现新内容、来源变化或成败切换仍单独成条;持续失败且原因相同也会合并。
  • 每个订阅最多保留 100 条日志,可在“设置 → 日志与显示”调整为 10–1000 条,超出时清理最早的记录;原有按天数保留仍然生效,已合并的日志按最近一次检查时间计算保留期。
  • 升级后数据库自动增加两列,无需手工迁移;升级前已有的重复日志不会回头合并,会随新日志和保留期自然清理。

仪表盘

  • “运行趋势”里的“新增采集”和“翻译完成”改为柱状加折线:新增采集用圆角柱,翻译完成用折线叠在上面,没有记录的日子显示为浅灰短柱;水平网格改为虚线,图例下方的汇总数字放大并置于名称下方。悬停仍显示当天两项数值,7 天范围的折线标出每天的点。
  • 统计口径、时间范围(7、30、90 天)和“订阅数量”折线图保持不变,亮暗主题与手机宽度下均已检查。

升级提示

  • 可从 v0.10.0 直接更新,数据库仍为 schema 23,无需手工迁移;启动时自动为抓取日志增加两列。
  • 保留原数据卷及 master.key。已有的重复日志不会回头合并;新的“每个订阅保留日志条数”默认 100,可在“设置 → 日志与显示”调整。
  • 服务端与 CLI 同步更新到 0.11.0;版本镜像为 ghcr.io/jaaayden/feedlantern:0.11.0,latest 继续跟随通过 CI 的 main。

完整变更:v0.10.0…v0.11.0

FeedLantern v0.10.0 · 性能优化与轻量部署

Choose a tag to compare

@github-actions github-actions released this 26 Oct 11:13

性能与资源占用

  • 翻译统计增加 (feed_id, status) 索引,翻译状态和规则预警批量读取,订阅列表最多执行三次 SQL;已有数据库启动时自动创建索引。
  • 大量订阅下复用日期格式器、筛选结果和未变化的列表,延迟屏幕外条目的布局与绘制;相对时间仍定期更新,原有列表、卡片、搜索和批量操作保留。
  • 设置栏目共用短期内存缓存并合并并发请求,保存、导入和切换账号或工作台时更新或清除缓存;加载文字显示当前栏目。设置和用户管理页面暂停完整订阅列表轮询。
  • 没有编辑会话或抓取任务时,Chromium 空闲 60 秒后自动退出,下一次请求重新启动;翻译缓存连续命中不再反复写入保留时间。
  • Docker 改为多阶段构建,仅带无头 Chromium,清理安装缓存,前端依赖只参与构建,排除本地开发目录。保留字体、浏览器沙箱、CLI 和维护命令,依赖版本不变。
  • 本机 arm64 对比:gzip 镜像层约 621 MB 降至 346 MB;小型测试页面在 1 CPU、512 MiB 内存且无额外交换空间下完成识别、抓取和 RSS 输出,内存峰值约 367 MiB。具体测量口径和限制见性能文档,复杂网站用量取决于实际页面。

检查阈值与聚合选择

  • “设置 → 通知 → 告警策略”新增个人检查阈值,默认连续失败 3 次,可设为 1–1000;成功抓取一次清零,中断不计失败,重启和清理日志保留次数。
  • 未达到阈值的失败保留原因和日志,启用中的订阅显示“等待重试”;侧栏、仪表盘、列表和用户管理统一口径。检查阈值与推送通知阈值分开,未开启通知也生效,核心规则异常仍独立提示。
  • 更换通知渠道只取消旧的推送任务和去重状态,保留实际失败次数,保存本身不补发通知。
  • 新建或编辑聚合时,可按名称或网址搜索后全选匹配结果;取消选择只作用于当前结果,其他已选订阅保留,成员不会重复添加。

升级提示

  • 可从 v0.9.0 直接更新,数据库仍为 schema 23,无需手工迁移;旧个人设置默认采用 3 次检查阈值。
  • 保留原数据卷及 master.key。不改变订阅内容保留规则、累计采集和翻译计数,不自动转换 PubMed RSS 订阅。
  • 服务端与 CLI 同步更新到 0.10.0;版本镜像为 ghcr.io/jaaayden/feedlantern:0.10.0,latest 继续跟随通过 CI 的 main。

完整变更:v0.9.0…v0.10.0

v0.9.0 · 仪表盘、累计统计与订阅导航

Choose a tag to compare

@github-actions github-actions released this 25 Oct 17:14

支持从 v0.7.0 直接更新,保留原数据卷;数据库在启动时自动迁移,无需手工修改。

仪表盘与导航

  • 新增仪表盘,集中显示订阅数、自动更新数、当前保留内容和需要检查的数量;紧凑图表提供 7/30/90 天的采集、翻译与订阅变化趋势。
  • 原“订阅管理”改名为“全部订阅”,保留原来的列表、卡片、搜索、筛选、排序和批量操作;统计和聚合分别移至仪表盘与独立的“聚合订阅”页面。
  • 侧栏新增“需要检查”,与仪表盘、用户管理统一统计抓取失败和核心规则异常;用户管理显示每个账号的待检查数量,包括零。
  • 设置保留左侧栏目、右侧详情的布局;新增页面支持中英文、明暗主题和移动端,图表支持键盘查看。

独立保存累计数量

  • 累计采集、累计翻译与消息内容分开保存,超过保留上限清理内容、删除订阅、清理日志或重启均不会扣减累计值;写入失败回滚时计数也会回滚。
  • 仍已保存的条目重复抓取不重复累计;重新翻译成功另计一次。日趋势按 UTC 日期保留 90 天,累计值长期保留。
  • 备份包含累计值和趋势,恢复不会把导入的内容重复计数。界面显示开始记录的日期,不补造旧版未记录的历史。

升级提示

  • 支持从 v0.7.0 直接升级,无需手工执行 SQL。服务启动时自动从 schema 19 依次升级至 23;从 v0.8.x 升级则从 schema 22 升至 23。
  • 保留原数据卷及其中的 master.key,账号、订阅地址、内容和译文保持原有身份。升级前保存完整数据卷与部署配置;回退时同时使用旧镜像和升级前的数据。
  • 累计统计从此次升级启用时开始记录。旧版已清理的内容无法补算;恢复不含统计的旧备份后,从恢复时重新开始记录。
  • 不自动转换已有 PubMed RSS 订阅;遇到 NCBI 验证页时,可在界面核对查询条件后确认转换为 PubMed 检索订阅。
  • 服务端与 CLI 同步更新到 0.9.0,镜像可固定为 ghcr.io/jaaayden/feedlantern:0.9.0。

依赖维护

  • 更新 TypeScript、Vite、tsx、concurrently 和 sanitize-html,完成构建、302 项后端测试、54 项浏览器测试及 amd64/arm64 容器验证。

规则预警分级与日志提示

  • 修复条目数、标题和链接正常,仅日期、图片或摘要缺失时仍统一显示“规则可能失效”并推送通知的问题。现在显示“部分字段缺失”轻提示,订阅继续输出,不计入“需要检查”,可单独筛选;条目数骤降、标题或链接异常仍保留规则告警。
  • 已有可选字段告警在升级后自动降级,尚未发送的通知取消;轻提示升级为真正异常时仍能按原有通知策略告警。恢复正常后清除提示。
  • “重新识别缺失字段”默认只勾选已重新找到的受影响自动字段;没有找到时不会默认删除旧规则,正常规则和手动字段保留,预览并确认后才保存。
  • 抓取日志中的成功状态和规则提示相邻显示,适配明暗主题与手机宽度。旧日志没有分级信息时显示“规则检查记录”,不猜测历史严重程度。
  • API 的 ruleHealth 新增 severity(warning / notice);新日志返回 warningSeverity,旧日志可能没有该字段。

安装与升级:FeedLantern 文档。

v0.8.1 · PubMed 限流修复与文档网站

Choose a tag to compare

@github-actions github-actions released this 25 Oct 10:07
11a3af2

项目网站与文档 · English

v0.8.1 — 2026-10-25

PubMed 限流修复

  • 修复服务繁忙或事件循环停顿后,多个预先分配的时隙一起到期、请求集中发出的情况。现在按实际放行时间依次排队,继续保持匿名请求 350 毫秒、带 API Key 请求 110 毫秒的间隔。
  • NCBI 返回 429 后的暂停同时作用于已在等待的请求;取消请求会及时退出,后续请求仍可继续。排队时间估算保留,用单调时钟计算间隔。
  • 增加事件循环停顿、暂停期间排队和取消的确定性回归测试。沿用 v0.8.0 的数据库 schema 22,升级方式相同。

文档网站

  • 新增 GitHub Pages 静态网站,提供中英文介绍页、文档导航、站内搜索、深色模式和手机布局。中文文档完整呈现;现有英文使用指南、部署和配置参考同步提供,其他文档明确标注为中文。
  • 网站从仓库中的 Markdown 构建,合并到 main 后自动检查链接并部署。

镜像:ghcr.io/jaaayden/feedlantern:0.8.1(amd64 / arm64)。CLI 与服务端版本同步为 0.8.1。

PubMed 检索订阅、Agent CLI / MCP、中英文界面及从旧版升级的完整说明,见 v0.8.0 更新日志。

完整变更对比

验证:292 项单元与集成测试、51 项浏览器验收,以及 amd64 / arm64 容器和 Compose 部署检查全部通过。构建与发布记录:main CI、v0.8.1 CI。

v0.8.0 · PubMed 检索订阅、CLI/MCP 与中英文界面

Choose a tag to compare

@github-actions github-actions released this 25 Oct 08:32

项目网站与文档 · English

v0.8.0 — 2026-10-25

这一版新增原生 PubMed 检索订阅、Agent CLI / MCP 和中英文界面。

PubMed 检索订阅

  • 在“新建订阅 → PubMed 检索”中按关键词、标题/摘要、作者、期刊、机构、MeSH 等字段组合条件,支持 AND / OR / NOT、发表日期和文章类型筛选,也可手写查询式。默认不加引号,每行可选“精确短语”;无法还原为条件的合法查询式按原文保留。
  • 预览显示匹配总数、最新 5 篇、NCBI 实际执行的查询式和提示,可直接在 PubMed 中对照。输入防抖、结果缓存和全局限流共同减少重复请求。
  • 通过 NCBI E-utilities 按最新收录顺序抓取 10 / 20 / 50 / 100 篇,支持原文、译文、双语输出,以及现有的过滤、保留条数、聚合、通知和网络配置。修改查询式保留已有文章。
  • 订阅名默认为“查询式原文 + - PubMed”,随查询式更新;手动命名后保留自定义名称。超过 200 字符时省略名称中间部分,完整查询式不变。RSS、Atom 和 JSON Feed 使用同一频道标题。
  • PubMed RSS 按原地址抓取,移除期刊 RSS 在后台自动改走 E-utilities 的处理。期刊 RSS 和检索式 RSS 都可在验证候选查询式后显式转换;无法确认一致的进入构建器核对。
  • 批量验证在后台运行,最多同时验证 5 个订阅,并共用 NCBI 限流队列。任务和结果持久化,关闭页面后继续、服务重启后恢复,支持缓存、取消、重试及边验证边转换。
  • 转换保留订阅 ID、对外订阅地址、已有条目和译文,以及翻译、过滤、输出、保留、聚合、刷新和网络设置。默认保留旧名称,单个或批量转换时可勾选按查询式重命名,并预览新名称。
  • “设置 → PubMed(NCBI)”支持保存前测试 API Key 和邮箱,显示响应状态及速率上限;密钥加密保存、不回显。所有 NCBI 请求共用限流器,无 Key 时每秒最多 3 个,有 Key 时最多 10 个,429 后暂停并重试。
  • 新增 PubMed 预览、转换、后台验证任务和密钥测试 API;CLI / MCP 同步支持预览、创建、验证、转换和可选重命名。

Agent CLI 与 MCP

  • 新增 feedlantern 命令行(packages/cli):通过个人访问令牌管理订阅、识别网页、预览规则、刷新、查看条目和日志、管理聚合及批量任务。支持 JSON / 表格输出、多个配置档案和稳定的错误代码、退出码。
  • 写操作支持 --dry-run;删除操作需 --yes。配置文件权限为 0600,读取和写入能力受令牌权限约束。
  • feedlantern mcp 通过 stdio 提供同一批工具,支持只读模式;删除和 PubMed 转换要求显式确认。
  • 新增令牌自身信息与调用记录接口。CLI 版本号与服务端同步;目前从仓库打包安装,未发布到 npm 注册表,见 安装与使用。

English 与简体中文

  • 界面、日期和数字格式、错误提示及个人通知支持中英文,语言按账号保存。登录页和初始化页也可切换语言。
  • 旧账号升级后保留简体中文;新账号默认跟随浏览器。不支持的语言使用 DEFAULT_LOCALE(默认 en,可设 zh-CN)。
  • API 保留稳定错误代码,并返回本地化说明;订阅输出内容仍按原文或目标翻译语言显示。
  • 新增英文 README、使用指南、部署和配置参考;修复登录页密码错误被误报为登录失效的问题。

报错改进

  • RSS 来源返回网页、验证页或异常 2xx 响应时,预览、日志和通知说明实际原因,不再误报 XML 实体声明问题。合法 RSS 即使被标为 HTML 仍可解析,外部实体和 DTD 仍被拒绝。

升级提示

  • 从 v0.7.0 升级时,数据库自动从 schema 19 迁移到 22,加入账号语言和 PubMed 验证任务等存储。升级前导出完整备份;回退旧版本时同时恢复升级前的数据。
  • 已有订阅、对外订阅地址和已保存内容保留。曾由期刊 RSS 自动走 E-utilities 的订阅会恢复普通 RSS 抓取;若遇 NCBI 验证页,可在界面核对并转换为 PubMed 检索订阅。
  • CLI 与服务端同时更新到 0.8.0;Docker 镜像可固定为 ghcr.io/jaaayden/feedlantern:0.8.0,latest 继续跟随通过 CI 的 main。

相关 PR:CLI / MCP #34、中英文界面 #36、PubMed 检索订阅 #37。

完整变更对比

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 17:56

What's Changed

  • feat(feeds): 订阅输出与条目控制(条目过滤、Atom / JSON Feed、输出条数) by @Jaaayden in #24
  • feat(notify): 多通知渠道(Webhook、ntfy、Telegram) by @Jaaayden in #25
  • feat(api): 个人访问令牌与 OpenAPI 3.1 文档 by @Jaaayden in #19
  • feat(translation): 可替换的翻译服务与多目标语言 by @Jaaayden in #23
  • feat: 聚合订阅(把多个订阅合并成一个 RSS 地址) by @Jaaayden in #20
  • feat(health): 规则失效预警与一键重新识别 by @Jaaayden in #21
  • feat(pagination): 自动翻页 / 多页采集 by @Jaaayden in #22
  • feat(network): 每个订阅可设置代理与请求头(网络配置) by @Jaaayden in #31
  • fix: 保留条数可设置、超时报错可读、恢复备份保留本机设置、代理订阅的 DoH 经代理 by @Jaaayden in #32
  • feat: token call logs, reader-style feed panel, settings pages and translation service cards by @Jaaayden in #33

Full Changelog: v0.6.3...v0.7.0

v0.6.3

Choose a tag to compare

@github-actions github-actions released this 22 Oct 17:15

Full Changelog: v0.6.2...v0.6.3

v0.6.2

Choose a tag to compare

@github-actions github-actions released this 22 Oct 16:32

What's Changed

  • feat: instant visual matcher with local hover, scrolling and link following by @Jaaayden in #18

Full Changelog: v0.6.1...v0.6.2

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 22 Oct 06:42

What's Changed

  • feat: RSS browser preview, OPML, routes and UX iteration by @Jaaayden in #17

Full Changelog: v0.6.0...v0.6.1

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 16:46

What's Changed

  • refactor: cheaper session checks, single-process start, image healthcheck by @Jaaayden in #2
  • chore(deps): batch-update dependencies and workflow action pins by @Jaaayden in #11
  • fix: backup export failed when the translation cache exceeded its limit by @Jaaayden in #12
  • feat: add project icon by @Jaaayden in #13
  • fix: bound database growth and let it shrink by @Jaaayden in #14
  • docs: rewrite README and bring the docs up to date by @Jaaayden in #15
  • feat(web): redesign the UI and reorganise screens (Night Lantern) by @Jaaayden in #16

Full Changelog: v0.5.1...v0.6.0