Skip to content

Bookdock v0.6.1

Choose a tag to compare

@github-actions github-actions released this 19 Oct 19:06
· 61 commits to main since this release

[0.6.1] - 2026-10-20

Highlights

  • Track and maintain your reading history with calendars, trends, independent automatic/manual timers, and JSON backup or CSV export.
  • Reader headers and footers leave unused positions clear; hidden controls no longer block text selection or links.
  • More reliable book opening, remote downloads, and library navigation, with loading and retry feedback where needed.

Added

  • Per-book reading data with a calendar, daily trends, time-of-day distribution, retroactive entries, and record editing/deletion without moving the reader's saved position.
  • Week, month, year, and all-time archive views with date drill-down and matching book, note, and reading statistics.
  • Personal reading history remains available after the original book is removed or becomes inaccessible. Reading data can be backed up/restored as JSON or exported as CSV, for one book or the whole account.

Changed

  • Automatic and manual timing can be enabled independently, used together, or both disabled while keeping history and retroactive entry available. Both timers share a configurable suspension grace period, excluding time spent away.
  • Reading captures survive page changes, refreshes, and temporary connection failures. Rejected records remain stored without blocking other books, and overlapping timed activity is counted only once per account.
  • Reading statistics split known active intervals across local days and hours; a per-book reading day requires at least one minute. Historical reading volume and untouched record precision are preserved when content grows or records are corrected.
  • WebDAV and S3 book reads use verified partial downloads when supported, reuse concurrent downloads, and fall back to whole-file caching when partial reads fail or small remote reads are slow.
  • Reader startup waits for the fonts needed by visible text and avoids flashing a loading indicator during fast opens. If font preparation fails, reading can continue with a fallback font and a notice.
  • Scrolling reader headers and footers use compact, opaque labels, leaving empty positions clear of the text. Paginated information fits within page margins without an extra band when all its fields are disabled.
  • Book details provide direct access to reading data. The review shortcut opens your existing review or a new composer; publishing, converting a collected book to a personal book, and uploading another version move into More actions.
  • Reader saves and background recovery stay quiet, without save-status warnings or retry buttons over the text.
  • Animation now respects the operating system's reduced-motion preference across the whole app, instead of only on a handful of hand-marked elements.
  • Loading screens announce themselves to screen readers and expose their busy state.

Fixed

  • Hidden reader controls no longer intercept text selection or link clicks through invisible hover areas. Sidebar resizing and floating controls keep their hit areas within their actual bounds.
  • Opening a book no longer briefly shows a white page or book-defined typography before the reader theme appears, including when chapter loads overlap.
  • Text replacement rules are ready before the reader opens, avoiding a second load and relocation just after the first page appears.
  • Rebuilding the reader for a text replacement or a Chinese conversion now covers the reading area while it is rebuilt, instead of briefly showing an empty or unstyled page.
  • Refreshing library, shelf, and tag views preserves known names or shows local loading and retry states instead of briefly showing a default or unrelated title.
  • Opening a shared-library link no longer loads personal books or exposes personal actions while the requested library is unresolved. Filter corrections and scroll restoration wait for the matching view.
  • Recently Read shows a loading placeholder and retry after initial failures instead of silently disappearing while books load.
  • Opening a book now applies saved reading settings before displaying its text, preventing a temporary default layout while preferences load. Failed initial settings or font-list loads offer a retry.
  • Books can open correctly when a stored file size differs from the actual file size, including previously cached files.
  • Uploading the same TXT file in different accounts or libraries no longer overwrites another generated book; repeated uploads within the same library still reuse the existing book.
  • Remote downloads retain timeout protection until the response finishes, and incomplete downloads are discarded so subsequent opens can retry.
  • Confirmation dialogs lock while their request is in flight, so double-clicking can no longer send a second destructive request and a dialog can no longer be dismissed mid-request.
  • Replacing a highlight no longer loses the highlights it replaced when saving the new one fails.
  • Drag-reordering shelves and tags keeps hidden items in their original slots instead of dropping them, and re-syncs with the server once the change settles.
  • Registering an account no longer leaves the page treating the session as a guest.
  • Instance-wide settings switches and the first-owner setup form can no longer be submitted twice at once.
  • A failed library-preference change now rolls back only the field that failed, instead of undoing a newer successful change to a different field.
  • Storage migration and restore actions report failures instead of failing silently.
  • The WebDAV import queue always releases its lock when a run finishes, so cancelling or closing the panel no longer leaves importing permanently stuck.
  • Moving a book to another category in a shared library now reports a failure instead of silently doing nothing.

Upgrade notes

  • Back up the complete DATA_DIR before upgrading. Migration 0052 converts existing reading history to the new model automatically; downgrading requires the pre-upgrade data and matching previous release.
  • Existing reading time and coverage are retained. Older records without detailed time or position information remain historical totals; the upgrade does not invent missing hourly activity or per-record coverage. Reading-data JSON exports do not replace a complete instance backup.

中文

[0.6.1] - 2026-10-20

主要更新

  • 阅读数据支持日历、趋势与记录维护,自动记录和手动计时可独立使用,并提供 JSON 备份与 CSV 导出。
  • 页眉页脚的空位置不再遮挡正文,隐藏控件不再拦截选字和链接点击。
  • 改善书籍打开、远端下载与书库导航的稳定性,在需要时提供加载和重试反馈。

新增

  • 单书阅读数据页提供阅读日历、每日趋势、时段分布、补录与记录编辑/删除,维护记录不改变阅读器保存的位置。
  • 档案支持周、月、年和全部时间范围,可下钻到具体日期,书籍、笔记与阅读统计使用同一范围。
  • 原书删除或不可访问后,个人阅读档案仍保留;支持单书或全账号阅读数据的 JSON 备份/恢复与 CSV 导出。

变更

  • 自动记录与手动计时可分别开启、同时使用或全部关闭;关闭后仍可查看历史和补录。两种计时共用可配置的离开宽限,离开期间不计时。
  • 阅读采集可在页面切换、刷新和临时断网后恢复;失败记录保留且不阻塞其他书籍保存,同一账号的重叠有效时段只计一次。
  • 已知有效时段按记录时的本地日期与小时拆分,单书单日累计至少一分钟才计为阅读日;内容增长或纠正记录时,保留历史阅读量与未修改字段的原精度。
  • WebDAV 和 S3 读取在支持时使用经过校验的分段下载,合并并发下载;分段读取失败或远端小段读取过慢时,回退为整文件缓存。
  • 阅读器启动时等待可见正文所需的字体,快速打开时避免加载提示一闪而过;字体准备失败时会提示并使用替代字体继续阅读。
  • 滚动阅读的页眉页脚改为紧凑的不透明信息标签,空位置不再遮挡正文;翻页信息栏复用页边距,整栏字段均关闭时不额外占用空间。
  • 书籍详情可直接进入阅读数据;书评快捷入口打开自己的已有书评或新建编辑器,发布、转存为个人书籍和上传新版本移入“更多操作”。
  • 阅读保存与后台恢复保持安静,不再在正文上显示保存状态警告或重试按钮。
  • 应用内的动画现在遵循操作系统的“减少动态效果”偏好,不再只作用于少数手工标记的元素。
  • 加载界面会向屏幕阅读器播报自身状态,并标记为忙碌状态。

修复

  • 阅读器隐藏的控制栏不再通过透明热区拦截选字和链接点击;侧栏拖动把手与浮动控件的操作范围收紧到实际边界内。
  • 打开书籍时不再先显示白底或书籍自带排版,再突然切换为阅读器主题;章节加载交错时也能正确应用主题。
  • 文本替换规则在阅读器打开前就绪,避免首屏出现后再次加载并重新定位。
  • 文本替换或简繁转换触发阅读器重建时,阅读区会被加载层覆盖,不再短暂露出空白或未排版的页面。
  • 刷新书库、书架或标签页面时,保留已知名称,或显示局部加载与重试状态,不再短暂显示默认名称或无关标题。
  • 打开共享书库链接时,先确认目标书库,再决定列表和操作权限;等待期间不请求个人书籍、不显示个人操作,也不提前调整筛选或恢复滚动位置。
  • 最近阅读在首次加载和失败时提供局部加载与重试反馈,不再突然插入页面或静默消失。
  • 打开书籍时先应用已保存的阅读设置,再显示正文,避免偏好加载期间短暂显示默认排版;首次加载设置或字体列表失败时可重试。
  • 修复记录的文件大小与实际大小不一致时书籍无法正常打开的问题,包括已有本地缓存的文件。
  • 修复不同账号或书库上传相同 TXT 时,生成的书籍文件可能互相覆盖的问题;同一书库内重复上传仍复用已有书籍。
  • 远端下载的超时保护持续到响应接收完成,未完成的下载会被丢弃,后续打开可重新尝试。
  • 确认对话框在请求进行期间会锁定,连点不再发出第二个破坏性请求,请求中途也无法关闭或按 Esc 退出。
  • 替换划线时,若新划线保存失败,被替换的旧划线不再丢失。
  • 拖拽调整书架与标签顺序时,隐藏项保留在原有位置,不再被丢弃;变更结算后会与服务端重新同步。
  • 注册账号后,页面不再继续把当前会话视为访客。
  • 实例级设置开关与首个所有者初始化表单无法再被重复提交。
  • 书库偏好某一项保存失败时,只回滚该字段,不再连带撤销其他字段上已成功的修改。
  • 存储迁移与还原操作会提示失败,不再静默失败。
  • WebDAV 导入队列在一轮任务结束时必定释放占用,取消或关闭面板不再导致导入永久卡住。
  • 在共享书库中把书籍移动到其他分类时,失败会提示,不再静默无反应。

升级说明

  • 升级前完整备份 DATA_DIR。迁移 0052 随启动自动转换已有阅读历史;降级需要一起恢复升级前的数据与对应旧版本。
  • 旧阅读时长与覆盖会保留;缺少详细时间或位置依据的记录仍作为历史汇总,不推测缺失的小时活动或逐条覆盖。阅读数据 JSON 导出不能替代完整实例备份。