• v0.7.1 0abd46afd0

    Zeehow released this 2026-09-13 03:02:55 +00:00 | 0 commits to main since this release

    [0.7.1] - 2026-09-13

    新增 / Added

    • 订阅源右键删除:抽屉里右键订阅源即可删除(带确认框,样式与设置里的批量删除一致)。
      Feeds can now be deleted from the drawer's context menu (with a confirmation dialog).
    • 设置面板自绘下拉:原生 <select> 换成自绘的 F2Select,弹出列表跟随应用深浅色
      而不是 Windows 系统(暗色应用在浅色系统上不再弹出白色列表)。
      Native <select> replaced by a custom dropdown that follows the app theme instead of the OS.
    • 阅读工具栏翻译控件成组:源 / 译 / 模型 / 翻译按钮打包换行(不再把「源」单独留在
      行尾),源 / 译 / 模型标签收进按钮内部,组前加分隔线。
      Toolbar translate controls now wrap as a group, with 源/译/模型 labels inside the buttons.

    修复 / Fixed

    • 「获取原文」对 SPA 壳页失效:机核这类只对爬虫 UA 做服务端渲染的站点,检测到壳页后
      自动换爬虫 UA 重抓。
      SPA shell pages (JS-rendered bodies) now trigger a crawler-UA retry.
    • IT之家抓全文后图片不显示:懒加载占位小图(t.png 等)不再盖过 data-original 里的真图。
      ithome images broken after fetching full text: lazy-load placeholders are now detected and
      replaced by the real data-* URLs.
    • wiki.eryajf.net 获取原文失败:VuePress 的 sidebar-open 状态类被误判为站点外壳、
      整页正文被清空——去噪加体积护栏(占页面文字大半的容器不再按命名删除);
      并为该站把正文约束到 .content-wrapper
      Extraction failed on wiki.eryajf.net: a sidebar-open state class wiped the page; noise
      removal now skips containers holding most of the page text, and the site adapter scopes
      extraction to .content-wrapper.
    • 阅读页自绘下拉菜单宽度过宽、菜单项变卡片:工具栏按钮样式泄漏进菜单项
      inline-flex 让菜单固有宽度翻倍、每项多了底色与描边),已加覆盖恢复。
      Dropdown menus in the article toolbar inherited toolbar button styles (double width,
      card-like items); fixed with explicit overrides.
    • 列表缩略图兜底:订阅源元数据没给图时,取正文第一张 <img>(IT之家 / 机核 /
      南方周末的列表缩略图全靠这个)。
      List thumbnails fall back to the first <img> in the entry body when the feed has none.

    变更 / Changed

    • 移除阅读页文末「订阅源附带的摘要」折叠块:摘要仍照常入库,仅阅读页不再展示。
      The collapsible feed-summary block at the end of the article view was removed
      (summaries are still stored, just no longer shown there).
    Downloads
  • v0.7.0 4dbb8b4813

    Zeehow released this 2026-09-12 22:11:47 +00:00 | 1 commits to main since this release

    • 2026-09-12

    新增 / Added

    • 正文与元数据分离存储(schema v5,自动迁移):state.json 只存元数据 + 300 字纯文本预览,
      正文按 articles/<feed_id>/<article_id> 落盘、打开文章时按需读取。
      启动加载与每次保存不再序列化几十 MB 正文。
      Article bodies are now stored separately from metadata (auto-migrated on first launch);
      startup and saving only handle lightweight metadata.
    • 翻译 API Key 改存系统凭据库(Windows 凭据管理器 / macOS 钥匙串),不再明文落盘;
      旧配置首次保存时自动迁移。
      Translation API keys moved to the OS keyring.

    安全 / Security

    • SSRF 防护:订阅源 / 正文 / 图片抓取拒绝内网与回环地址(连接层校验 DNS 解析结果,防 DNS rebinding)。
      Outbound fetches reject private / loopback targets, validated at connection time.
    • 文件命令路径门禁:备份还原、OPML 导入导出只允许用户文档类型的扩展名,并拒绝访问应用数据目录。
      File import/export commands are restricted to document extensions and denied in the app data dir.
    • 正文 HTML 消毒补全:剥除行内事件属性、javascript: 类 URL 与 iframe srcdoc
      iframe 不再授予同源身份(去掉 allow-same-origin)。
      Article HTML sanitisation completed; iframes no longer get same-origin identity.
    • CSP 收紧frame-src 仅 https,显式 script-src 'self'
      Tightened CSP.

    性能 / Performance

    • 状态读写移入阻塞线程池,序列化改 to_vec;发布构建 opt-level 提至 3。
      State IO moved off the async runtime; release builds now use opt-level 3.

    变更 / Changed

    • 代码结构:Rust 命令按职能拆分为 8 个子模块;设置面板按分区拆为独立组件。
      Codebase re-organised: Rust commands split into focused modules; settings dialog split by section.
    • 搜索范围调整:正文全文检索改为「标题 + 正文预览 + 摘要 + 作者 + 标签」。
      Search now covers title + body preview + summary + author + tags (full-text search dropped).
    Downloads
  • v0.6.0 48bfabe01e

    Zeehow released this 2026-09-12 01:42:17 +00:00 | 2 commits to main since this release

    [0.6.0] - 2026-09-12

    新增 / Added

    • 翻译:多服务商网关(大模型 + 内置微软 / 谷歌 / DeepL / 腾讯翻译)、正文逐段对照翻译、
      划词翻译浮窗。
      Translation with multiple gateways, paragraph-by-paragraph bilingual rendering and a selection popup.
    • 翻译流式输出与「关闭思考」开关:译文边生成边上屏;推理模型可关掉思考模式提速。
      Streaming translations, plus a switch to disable thinking mode on reasoning models.
    • 翻译结果缓存:按「文本 + 语言」本地缓存,整篇与划词共用。
      Translation results are cached locally.
    • 订阅源批量清理:一键选中「更新失败」或「N 天未更新」(默认 365 天)的订阅源后批量删除。
      One-click selection of refresh-failed and stale feeds for bulk deletion.

    变更 / Changed

    • 移除底部附件区:媒体改为在正文里原位播放。
      The bottom attachments area was removed; media now plays in place inside the body.
    • 正文 iframe 不再一律删除:认不出平台的 iframe(音频播放器多为此类)保留并加 sandbox
      Iframes are no longer stripped: unrecognised ones (audio players) are kept and sandboxed.

    修复 / Fixed

    • 视频播放器跑到文末、并与附件区重复
      Video players no longer land at the article's end or duplicate the attachments area.
    • 「获取原文」对「正文只有一个播放器」的帖子静默失效
      "Fetch full text" silently failed for player-only posts.
    • 划词按钮压住正文、悬停变镂空
      The selection chip no longer covers the text or turns see-through on hover.
    • 「更新失败」按钮一直是灰的
      The "refresh failed" button was permanently grey.

    文档 / Documentation

    • README 补充翻译与订阅源清理,并更正过时的音视频说明。
      README updated for translation and feed cleanup.
    Downloads