Skip to content

Releases: joeseesun/qiaomu-reader

Qiaomu Reader 4.2.15

Choose a tag to compare

@joeseesun joeseesun released this 15 Sep 09:28

修复

  • 修复 iOS 26.5 上打开 PDF 时出现“undefined is not a function”并无法进入阅读的问题。
  • 在 Safari 缺少 ReadableStream 异步迭代能力时,改用 PDF.js reader 接口读取文本;桌面端与 XFA PDF 保持原有路径。

Fix

  • Fix PDFs failing to open on iOS 26.5 with undefined is not a function.
  • Fall back to the PDF.js reader API when Safari lacks ReadableStream async iteration, while preserving the native path on supported platforms and for XFA PDFs.

Qiaomu Reader 4.2.14

Choose a tag to compare

@joeseesun joeseesun released this 15 Sep 01:25
9879ead

修复

  • 修复超长 PDF 打开后内存急剧增长的问题。
  • PDF 页面改为仅对当前可见区域生成图片与可选择文字层;离屏页面保留轻量搜索文本,并在离开可见区域后回收重型 DOM。
  • 保留全文搜索、页码跳转、文字选择、PDF 原始版式、阅读进度与 AI 上下文能力。

验证

  • 248 项自动化测试通过,ESLint、1293 项国际化检查、标准与社区构建、产物验证均通过。
  • 最终代码从线上稳定版 4.2.13 的代码树重新分支实现,并通过 PR 与 GitHub CI。
  • 在独立 Obsidian 1.13.7 / 临时 vault 中实测 1500 页、46,525,080 字节 PDF:仅维持 3–5 个邻近页面的图片和可选文字层,渲染进程峰值约 356 MB,随后稳定约 130–255 MB;第 750/777/1500 页跳转、全文搜索定位、文字选择、返回首页与关闭清理均通过。
  • 没有覆盖或修改用户日常 vault 中的正式安装。

4.2.13

Choose a tag to compare

@joeseesun joeseesun released this 14 Sep 10:48
12f1ba1
  • Add an API key entry for custom OpenAI-compatible endpoints using Obsidian SecretStorage; the key remains optional.
  • Keep selected secrets and endpoint overrides scoped to each provider when switching models.
  • Migrate existing provider settings without exposing keys in data.json, and localize custom-provider setup summaries.

4.2.12

Choose a tag to compare

@joeseesun joeseesun released this 11 Sep 18:30
4346c2a
  • Fix the mobile AI companion close button so it responds reliably.
  • Place Close inside the safe-area header beside Settings.
  • Use 44 px touch targets for the mobile header controls.

4.2.11 — Mobile AI and reproducible release

Choose a tag to compare

@joeseesun joeseesun released this 11 Sep 17:22
095a2b2

Mobile AI response and touch-layout fixes, with a reproducible Obsidian release artifact.

  • Fix AI replies staying blank on Obsidian mobile by giving the modal its own Markdown rendering lifecycle.
  • Add a 45-second inactivity timeout and an inline retry action so failed or stalled requests return to a usable state.
  • Improve the mobile AI panel with safe-area spacing, a full-height layout, an independently scrolling conversation, and a 44px send/stop control.
  • Keep the text-selection toolbar usable on narrow touch screens with horizontal scrolling.
  • Publish the repository-root build artifact required for Obsidian's byte-for-byte release verification.

Automated validation: GitHub CI passed for tests, translation checks, ESLint, standard/community builds, release verification, and committed-build reproduction. Physical mobile testing is intentionally left to the maintainer after release.

Release verification: the official Obsidian Preview Scan completed for candidate commit 7934087 without reported errors or warnings.

4.2.10 — Mobile AI and touch layout

Choose a tag to compare

@joeseesun joeseesun released this 11 Sep 16:57
f0e5c04

Mobile AI response and touch-layout fixes.

  • Fix AI replies staying blank on Obsidian mobile by giving the modal its own Markdown rendering lifecycle.
  • Add a 45-second inactivity timeout and an inline retry action so failed or stalled requests return to a usable state.
  • Improve the mobile AI panel with safe-area spacing, a full-height layout, an independently scrolling conversation, and a 44px send/stop control.
  • Keep the text-selection toolbar usable on narrow touch screens with horizontal scrolling.

Automated validation: GitHub CI passed for tests, translation checks, ESLint, standard/community builds, release verification, and committed-build reproduction. Physical mobile testing is intentionally left to the maintainer after release.

Release verification: the official Obsidian Preview Scan completed for candidate commit 9e28ae1 without reported errors or warnings.

4.2.9 — Reader navigation and lifecycle fixes

Choose a tag to compare

@joeseesun joeseesun released this 10 Sep 08:34

Reader navigation and lifecycle fixes.

  • Ebooks now use the current engine exclusively for TOC, history, bookmarks and return navigation. Obsolete block-only ebook destinations are no longer supported; source books and note files are preserved.
  • Fix book opening that could stall in background windows, and prevent unfinished PDF loads from overwriting saved progress.
  • Stop stale highlight and PDF image work when switching or closing books; release the previous parser when reusing a reader.
  • Validate navigation destinations instead of reporting success for an ignored jump.

Validation: 242 tests, ESLint, translation checks, standard/community builds, repeated and concurrent ebook opens, CFI history/bookmarks and original PDF rendering in isolated Obsidian 1.13.7. Modal/mobile routing was exercised on desktop; physical-device mobile testing and full heap profiling are not claimed.

Release verification: official preview and final 4.2.9 review completed for a70b7a9, with no errors or warnings and byte-for-byte build reproduction. Downloaded draft/public assets match. A clean install creates all six starter books; upgrading from 4.2.8 preserves settings, bookmarks, highlights, Markdown note content/links and the saved CFI. The official directory lists 4.2.9 with review Passed.

4.2.8 — 修复书库打开空白

Choose a tag to compare

@joeseesun joeseesun released this 10 Sep 06:30

4.2.8 — 修复从书库打开后空白

  • 修复保存的阅读位置失效时,打开电子书显示空白、点击目录后才恢复的问题。
  • 优先恢复精确位置;失效时按上次阅读百分比恢复,再尝试正文起点。旧版只有百分比的记录也能恢复。
  • 如果正文确实加载失败,显示错误和重试入口,不再把空白页当成加载完成。
  • 保留 4.2.7 的 AI 伴读和翻译保存功能。

Validation

233 automated tests, ESLint with zero warnings, nine-language validation, standard build/release verification and community build pass. Isolated Obsidian 1.13.7 reproduces the old blank-page/TOC-recovery behavior; the fix renders the same stale-CFI fixture near the saved 40% position. A percentage-only 世说新语 record restores to 德行第一 at 2%; valid CFI reopens stay exact. Double-click produces one reader. Physical mobile devices are not tested.

Candidate: c45dd4e. Official final-SHA preview completed with zero errors and warnings. Downloaded draft assets match the tested build. Fresh installation imports six books and renders 世说新语 on first double-click. Upgrade preserves settings, book/note files, highlights and exact CFI.

Install. Existing users: Settings → Community plugins → Check for updates.

Live client verification

The Obsidian updater detected and installed 4.2.8 in the active demo vault. A native double-click on 世说新语 in the library displayed 德行第一 directly, without selecting the TOC. Installed main.js matches the published candidate plus Obsidian's standard nosourcemap suffix. Fingerprints confirm reading appearance, selection configuration, AI settings, note links and highlights were retained.

Official release verification

The formal 4.2.8 scan completed for c45dd4e with zero errors or warnings, no vulnerable dependencies, and a byte-for-byte reproduction of the released main.js. Three advisory recommendations remain: optional GitHub artifact attestations, vault enumeration for the library, and user-triggered clipboard copy. The public Obsidian directory now lists 4.2.8. The native Obsidian update and post-update book opening were verified as described above.

4.2.7 — AI 伴读与翻译笔记

Choose a tag to compare

@joeseesun joeseesun released this 10 Sep 05:42

4.2.7 — AI 伴读与翻译笔记

  • AI 助读更名为 AI 伴读。宽屏桌面首次打开书时展示侧栏;记住主动关闭状态,手机和窄窗口不自动展开。
  • 未配置时可直接在伴读侧栏选择服务并检测连接,完成后进入对话。打开书不会自动发送模型请求。
  • 翻译结果可保存到本书阅读笔记、当前打开的笔记、新建笔记或今日笔记;一起保留原文、译文和位置链接。
  • 当前笔记显示实际文件名,关闭或切换后不误写。日记沿用 Obsidian 的日期、目录和模板。重复保存不重复追加,保存后保留译文。

Validation

232 automated tests, ESLint with zero warnings, nine-language validation, standard build and asset verification, and community build pass. Desktop interaction QA used isolated Obsidian 1.13.7: first-open/close behavior, inline setup via a local HTTP test service, actual Google translation, all four note destinations, editor draft preservation, a nested Daily Notes path/template, and CFI return to the source passage. No physical mobile-device test is claimed.

Candidate: cf852ae39f5e2de375391992ff66950de56bc402.

Install from the official directory. Existing users: Settings → Community plugins → Check for updates.

Pre-release gates

  • PR #6 CI passed for the final candidate. Official Preview Scan completed for the exact SHA with 0 errors and 0 warnings.
  • Downloaded draft assets match the local SHA256 values. Clean installation on Obsidian 1.13.7 supplies six starter books and opens inline companion setup; closing it remains remembered after reload.
  • The 4.2.6 → 4.2.7 upgrade preserves all 13 existing vault files, tracked reader settings, note links and chat history. The existing EPUB reopens at the exact saved CFI with its highlight intact.
  • A 390 CSS-pixel desktop viewport, with host sidebars collapsed, keeps the companion closed and the reader within its available width. This is simulation, not a physical mobile test.

Asset SHA256:

  • main.js: ac200be5b2c29dab982e3ec47cb6f857c565066357a492f27024593c0c2339ba
  • manifest.json: 9354b55712060237bb4dfd37eba22e44ab431076b247274aee7368d63a1e4b5a
  • styles.css: c0c1ed08f1f4c7f466f4f7b00c1c9b358c912411e273fe384225f5459e5ee64f

Client verification

The Obsidian 1.13.7 community-plugin browser finds version 4.2.7. Installing and enabling it from that browser succeeds. The native updater detects and installs 4.2.6 → 4.2.7, preserving reader settings, note links, the saved EPUB CFI and highlight. Existing books and Markdown files are unchanged; the progress file updates normally when the book is opened. Both installations match the public release bytes, allowing for Obsidian's appended nosourcemap marker.

Official result

Formal scan completed for 4.2.7 / cf852ae with no errors or warnings, no vulnerable dependencies, and byte-for-byte reproduction of main.js. The public directory reports 4.2.7. Three advisory recommendations remain: artifact attestations are not attached; file enumeration supports the local book library; clipboard access is the user-triggered copy action (no clipboard read API).

4.2.6 — 原文定位与选文工具栏

Choose a tag to compare

@joeseesun joeseesun released this 10 Sep 04:56

4.2.6 — 原文定位与选文工具栏

  • 修复 AI 回复中“查看原文”错误提示书籍未加载的问题,支持跨章节及重新打开原书定位,保留 PDF 原页跳转。
  • 选文工具栏默认仅显示图标;启用翻译后显示翻译按钮。
  • 在「设置 → 翻页操作 → 选文工具栏」配置按钮文字、显示与顺序。隐藏功能仍可从“更多”和右键菜单使用。
  • 保留划线颜色标记与独立颜色下拉,窄窗口自动换行。

Validation

225 automated tests; ESLint, nine-language validation, standard build, release-asset verification and community build pass. Desktop interaction QA covers EPUB cross-chapter/reopened-book source links, PDF page navigation, persisted toolbar preferences and a 390 px viewport. No physical mobile-device test is claimed.

Candidate: f62932c1999942ce3ee3282d8d9d04edda9593df.

Official pre-release preview completed for the exact candidate with zero errors or warnings. Downloaded draft assets match the local build. Fresh installation provides all six starter books; 4.2.5 upgrades preserve settings, highlights, reading anchors and existing book/note files. Source-link navigation passes on both fresh and upgraded Obsidian 1.13.7 installations.

Publication verification

  • PR #5 merged as 59617f9d5ab47267da30b9dcb3ffb50740e11e81; its tree matches the pre-scanned release candidate. Tag 4.2.6 points to f62932c1999942ce3ee3282d8d9d04edda9593df.
  • Official 4.2.6 review completed: 0 errors, 0 warnings; dependencies pass and main.js reproduced byte-for-byte. The directory's current release is 4.2.6.
  • Three recommendations remain: optional artifact attestations are not configured; vault enumeration supports library discovery; clipboard access supports user-triggered copy actions. These are recommendations, not failed checks.
  • Public assets match draft hashes. The Obsidian 1.13.7 client finds Qiaomu Reader 4.2.6; installation and enablement through Community Plugins succeeded. A real client update from 4.2.5 to 4.2.6 preserved highlights, note links and font settings.

Install from the official directory. Existing users: Settings → Community plugins → Check for updates.