# legado changelog > legado release notes. - Vendor: legado - Category: Developer Tools - Official site: https://github.com/LegadoTeam/legado - Tracked by: What's New (https://whatsnew.fyi/product/legado) - Harvested from: GitHub (LegadoTeam/legado) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### 3.26072900 — legado_app_3.26072900 - Date: 2026-07-28 - Version: 3.26072900 - Original notes: https://github.com/LegadoTeam/legado/releases/tag/3.26072900 - Permalink: https://whatsnew.fyi/product/legado/releases/3.26072900 - **fixed** — Fix crash caused by abnormal auxiliary key row count configuration - **fixed** — Fix crash caused by layout manager reuse after switching catalog tabs - **fixed** — Fix bookshelf reading progress bar track color not following accent color - **added** — Add direct login entry after saving in JavaScript single-file book source editor - **fixed** — Fix code editor search panel unable to close via search button and rule-wrapped lines adding extra indentation on enter - **fixed** — Fix occasional failure to recognize share commands when restoring app or returning to home page from internal pages - **changed** — Support share commands with both 10-digit second-level and 13-digit millisecond-level validity period timestamps - **fixed** — Fix volume name separator page displaying chapter additional information as body text - **added** — Add API member auto-completion for runtime objects in code editor - **added** — Add bidirectional conversion tool between cURL and AnalyzeUrl in code editor **2026/07/28** - 修复异常辅助按键行数配置导致的崩溃 - 修复目录页签切换后复用布局管理器导致的崩溃 - 修复书架阅读进度条轨道色未跟随强调色的问题 - JavaScript 单文件书源编辑器增加保存后直接登录入口 - 修复代码编辑器搜索面板无法通过搜索按钮关闭及规则包裹行回车多缩进的问题 - 修复应用恢复及从内部页面返回主页时分享口令偶发漏识别的问题 - 兼容分享口令 10 位秒级和 13 位毫秒级有效期时间戳 - 修复卷名分隔页把章节附加信息显示为正文的问题 - 增加代码编辑器运行时对象 API 成员补全 - 增加代码编辑器 cURL 与 AnalyzeUrl 双向转换工具 ### 3.26072618 — legado_app_3.26072618 - Date: 2026-07-26 - Version: 3.26072618 - Original notes: https://github.com/LegadoTeam/legado/releases/tag/3.26072618 - Permalink: https://whatsnew.fyi/product/legado/releases/3.26072618 - **fixed** — Fix issue where book source group management page retained invalid filters after deleting or renaming groups - **removed** — Remove duplicate and non-functional old directory from regex help - **fixed** — Fix issue where book details refresh would overwrite original information when catalog refresh failed **2026/07/26** - 修复书源分组删除或改名后管理页保留失效筛选的问题 - 移除正则帮助中重复且不可跳转的旧目录 - 修复书籍详情刷新后目录失败时覆盖原有信息的问题 ### 3.26072522 — legado_app_3.26072522 - Date: 2026-07-25 - Version: 3.26072522 - Original notes: https://github.com/LegadoTeam/legado/releases/tag/3.26072522 - Permalink: https://whatsnew.fyi/product/legado/releases/3.26072522 - **fixed** — Merge concurrent same-origin browser verification requests to avoid repeated verification dialogs when refreshing the bookshelf - **fixed** — Fix issue where clicking paragraph comments during continuous scrolling or chapter switching may request wrong chapter and display empty - **fixed** — Fix subscription source JSON sourceUrls array accepting null or blank addresses while preserving empty array semantics - **added** — Add toggle switch for bookshelf recent reading and quantity statistics, disabled by default - **fixed** — Ignore error logs from missing optional JSONPath fields in paragraph comments - **fixed** — Fix paragraph comment entries as JavaScript objects where JS field rules were not executed, causing empty comment content - **added** — Restore built-in web homepage and original styles, scripts and background resources - **fixed** — Fix book source JSON import only validating first array item and accepting blank addresses, simultaneously validate sourceUrls array - **fixed** — Fix subscription source JSON array import validating only first item, causing invalid sources to mix in - **fixed** — Reject blank sourceUrl in RSS subscription source JSON - **fixed** — Fix book source editor loading oversized rule text directly into inline input box, changed to placeholder prompt and open via full text editor - **fixed** — Fix local books at same path being overwritten or path changed still reusing old parser, ensure EPUB, MOBI, PDF and UMD reread new files - **fixed** — Fix file association import loading state not ending after permission denial, directory reselection or import failure, and explicitly migrate local book paths and caches - **fixed** — Fix login script and login page rule containing surrounding whitespace unrecognizable - **added** — Add clear login information entry in book source login page and delete login headers - **fixed** — Fix 'Uncategorized' filter possibly mismatching other groups - **fixed** — Fix URL parameter editor unable to save body script and overwriting request script - **fixed** — Fix bottom webpage popup configuration update exception possibly causing crashes - **fixed** — Fix bookmark content search possibly matching bookmarks from other books - **fixed** — Fix base URL parsing incorrectly retaining query parameters, fragments or short host paths - **fixed** — Fix book source domain check incorrectly connecting HTTPS addresses without explicit port to port 80 - **added** — Add persistent scheduled tasks supporting five-segment Cron, JavaScript editing and debugging, notifications and directory refresh actions, scheduled by system after restart - **added** — Add entry to generate single-book directory update scheduled task from book details page - **changed** — Unify book source management, source switching, chapter source switching, discovery and RSS list dynamic row menus as themed vertical menus with login, discovery toggle and delete confirmation - **added** — Add bottom bar image collection import, icon allocation, editing, export and sharing functionality - **fixed** — Fix old book source passing runtime objects to shared JavaScript library through top-level `this` losing `java` and other bindings - **changed** — Change book details page introduction to default expanded, retaining manual collapse and re-expansion - **fixed** — Fix configuration script written `globalThis` state lost in subsequent JavaScript rules, restore legacy book source body parsing and batch download compatibility - **changed** — Change code editor formatting to use built-in js-beautify runtime, normal use in offline environments **2026/07/25** - 合并可安全重取的同源并发浏览器验证请求,避免刷新书架时重复弹出验证界面 - 修复连续滚动或切换章节时点击段评可能请求错误章节并显示为空的问题 - 修复订阅源 JSON 的 sourceUrls 包装数组接受空值或空白地址的问题,并保留空数组语义 - 增加书架最近阅读与数量统计开关,默认关闭 - 忽略段评可选 JSONPath 字段缺失产生的错误日志 - 修复段评条目为 JavaScript 对象时字段 JS 规则未执行,导致评论内容为空的问题 - 恢复内置 Web 首页及原有样式、脚本和背景资源 - 恢复段评数量和正文 JSONPath 字段缺失时的错误日志 - 补充 Rhino 间接 eval 与 Function 运行时作用域回归测试 - 修复书源 JSON 导入只校验数组首项并接受空白地址的问题,同时校验 sourceUrls 包装数组 - 修复订阅源 JSON 数组导入仅校验首项,导致后续无效订阅源混入的问题 - 拒绝 RSS 订阅源 JSON 中为空白的 sourceUrl - 修复书源编辑器将超长规则文本直接加载到内联输入框,改为占位提示并通过全文编辑器打开 - 修复同一路径本地书被覆盖或路径变化后仍复用旧解析器的问题,确保 EPUB、MOBI、PDF 与 UMD 重新读取新文件 - 修复文件关联导入在权限拒绝、目录重选或导入失败后加载状态未结束,并显式迁移本地书路径与缓存 - 修复登录脚本和登录界面规则包含前后空白时无法识别的问题 - 书源登录界面增加清除登录信息入口,同时删除登录头 - 修复“未分组”筛选可能误匹配其他分组的问题 - 修复订阅源与替换规则按组筛选不精确的问题 - 修复删除订阅源或替换规则分组可能误改无关数据的问题 - 修复删除书源分组可能误改无关书源的问题 - 修复书源管理与发现页部分分组点击后无结果的问题 - 修复换源分组匹配不精确、旧格式分组失效及全部书源遗漏缓存的问题 - 修复换源时章节数变化导致阅读进度定位偏移的问题 - 修复 URL 参数编辑器无法保存正文脚本并覆盖请求脚本的问题 - 修复底部网页弹窗配置更新异常可能导致崩溃的问题 - 修复书签内容搜索可能匹配到其他书籍书签的问题 - 修复底部网页弹窗视图重建后仍操作旧 BottomSheet 的问题 - 修复基础网址解析误保留查询参数、片段或短主机路径的问题 - 修复底部网页弹窗视图重建时继续使用已回池 WebView 的问题 - 修复书源域名检查将无显式端口的 HTTPS 地址误连到 80 端口的问题 - 修复池化 WebView 重复释放后可能从池中取出已销毁实例的问题 - 修复池化 WebView 复用时残留上一个页面的 JavaScript 接口问题 - 修复带有效期的字符串缓存进入内存后不再过期的问题 - 修复欢迎页退出或重建后延迟任务仍启动主页,导致返回失效或重复打开的问题 - 修复短时间连续打开弹窗或导出文件时临时 Intent 数据键冲突,导致内容串换或丢失的问题 - 修复 Web 阅读并发加载图片时可能串用其他书籍和书源,并处理空书籍地址 - 修复文件路径使用字符串前缀判断,导致脚本可能越界访问且外部文件被误判的问题 - 批量选择栏的展开菜单改为主题化纵向菜单,保留原有菜单顺序、可见性和回调 - 修复书架仅有音频、漫画或视频阅读记录时不显示继续阅读入口的问题 - 修复听书播放模式切换后未立即保存,重新进入时可能恢复旧模式的问题 - 修复 JavaScript 返回对象中的惰性字符串被错误序列化,导致登录按钮和自动任务内容乱码的问题 - 修复 JavaScript 列表规则返回数组时的解析问题 - 修复从听书通知恢复时缺少或使用过期书籍参数,导致空白页面、误用其他书籍或覆盖书架状态的问题 - 修复定时任务 Cron 日字段使用星号步长时错误放宽日期与星期匹配的问题 - 修复定时任务 Cron 非法步长文本被误当作步长 1 的问题 - 修复段评统计刷新重置朗读位置及后台线程更新阅读视图的问题 - 修复定时任务刷新目录时把卷标题计入新增章节数量的问题 - 缓存管理长按下载菜单改为主题化纵向菜单,保留当前章节后下载与全部下载操作 - 阅读页长按换源与刷新菜单改为主题化纵向菜单,保留章节、整本换源和三种刷新范围 - 修复书籍详情刷新失败后已有缓存目录无法打开的问题 - 段评列表与字段规则执行失败时写入错误日志,便于定位 JavaScript 书源规则问题 - 完善 JavaScript 异常日志中的源码位置提示 - 备份与恢复新增持久化定时任务,恢复完成后自动刷新系统调度 - 定时任务编辑退出时提示保存未提交的修改 - 定时任务管理支持滑动多选并批量修改 Cron 计划 - 修复未入书架书籍从目录选章后仍打开旧章节的问题 - 定时任务支持本地、网络和关联链接一键导入,可选择任务并编辑 ID 后共存 - 定时任务支持导出全部配置,导出文件不包含本地排序和运行记录 - 书源管理、换源、章节换源、发现和 RSS 列表的动态行菜单统一为主题化纵向菜单,保留登录、发现开关与删除确认 - 文件管理长按删除菜单改为主题化纵向菜单,并突出危险操作 - 自动任务、RSS 源、订阅规则、替换规则和 TXT 目录规则的行菜单统一为主题化纵向菜单,并突出删除操作 - 新增持久化定时任务,支持五段 Cron、JavaScript 编辑与调试、通知和目录刷新动作,并由系统在重启后继续调度 - 增加从书籍详情页生成单书目录更新定时任务的入口 - RSS 源编辑页顶部选项改为可折叠面板,并在收起时显示开关状态摘要 - 书源编辑页顶部类型与开关选项改为默认折叠,并显示当前设置摘要 - 加固源与规则分享口令的 URL、前缀、分隔符与有效期校验,无法安全编码的链接不再显示口令按钮 - 书内搜索结果改为卡片样式,提升结果区分度与点击反馈 - 书签列表项改为圆角卡片样式,统一目录抽屉和书签列表的显示 - 修复未加入书架的书籍从详情页目录选择章节后无法进入阅读的问题,并保留分卷阅读进度 - 书源导入弹窗的失败和空结果状态新增说明图标,同时保留原有错误提示 - 书架新增统计信息和继续阅读入口,随书籍数据变化自动刷新 - 修复书架布局设置中最近阅读与数量统计开关和排序选项重叠的问题 - 自定义字体文件列表为当前字体增加强调色描边,提升选中状态辨识度 - 修复自定义字体列表在 AppCompat 主题下加载时崩溃的问题 - 新增底栏图集导入、图标分配、编辑、导出和分享功能 - 修复旧版书源通过顶层 `this` 向共享 JavaScript 库传递运行时对象时 `java` 等绑定丢失的问题 - 点击区域设置弹窗底部内容避让系统导航栏 - 书籍详情页目录入口在书籍数据为空时显示明确提示 - 清理 MCP HTTP 日志列表的未检查类型转换警告 - 书籍详情页简介改为默认展开,保留手动收起和再次展开 - 书籍详情页网络加载书籍信息或目录时新增顶部进度提示 - 修复配置脚本写入的 `globalThis` 状态在后续 JavaScript 规则中丢失的问题,恢复旧版书源正文解析与批量下载兼容 - 代码编辑器格式化改用内置 js-beautify 运行时,离线环境也可正常使用 - 在线导入阅读排版前增加确认,取消时不再解压或写入配置 ### 3.26072500 — legado_app_3.26072500 - Date: 2026-07-24 - Version: 3.26072500 - Original notes: https://github.com/LegadoTeam/legado/releases/tag/3.26072500 - Permalink: https://whatsnew.fyi/product/legado/releases/3.26072500 - **added** — Add toggle switch for bookshelf recent reading and quantity statistics, disabled by default - **added** — Add persistent scheduled tasks support with five-segment Cron, JavaScript editing and debugging, notifications, and directory refresh actions - **added** — Add one-click import for scheduled tasks from local, network, and associated links with optional task selection and ID editing - **added** — Add bottom navigation bar icon collection with import, icon assignment, editing, export, and sharing functions - **changed** — Ignore missing optional JSONPath fields in paragraph comments to prevent error logs - **changed** — Restore built-in Web homepage and original styles, scripts, and background resources - **changed** — Unify dynamic row menus in book source management, source switching, chapter source switching, discovery, and RSS lists to themed vertical menus with login, discovery toggle, and delete confirmation - **changed** — Change bulk selection menu to themed vertical menu while preserving original menu order, visibility, and callbacks - **changed** — Change cache management long-press download menu to themed vertical menu with current chapter download and full download options - **changed** — Change reading page long-press source switching and refresh menu to themed vertical menu with chapter, full book switching, and three refresh range options - **changed** — Unify automatic task, RSS source, subscription rule, replacement rule, and TXT directory rule row menus to themed vertical menus with emphasis on delete operations - **changed** — Change RSS source edit page top options to collapsible panel showing switch status summary when collapsed - **changed** — Change book source edit page top type and switch options to default collapsed state with current settings summary - **changed** — Update book search results to card style for improved result distinction and click feedback - **changed** — Update bookmark list items to rounded card style matching directory drawer and bookmark list display - **changed** — Add emphasis stroke to current font in custom font file list for improved selection visibility - **changed** — Change book details page introduction to default expanded state while preserving manual collapse and re-expansion - **fixed** — Fix book source JSON import only validating first array item and accepting blank addresses, now validates sourceUrls wrapped array - **fixed** — Fix RSS subscription source JSON array import only validating first item, causing subsequent invalid sources to be mixed in - **fixed** — Fix book source editor loading overly long rule text directly into inline input box by switching to placeholder prompt with full-text editor opening - **fixed** — Fix local books at same path being overwritten or reusing old parser after path changes, ensuring EPUB, MOBI, PDF, and UMD files are re-read - **fixed** — Fix file association import not ending loading state after permission denial, directory reselection, or import failure, with explicit local book path and cache migration - **fixed** — Fix login script and login interface rules with leading or trailing whitespace not being recognized - **fixed** — Fix unclassified filter potentially mismatching other groups - **fixed** — Fix subscription source and replacement rule group filtering being imprecise - **fixed** — Fix deleting subscription source or replacement rule groups possibly corrupting unrelated data - **fixed** — Fix deleting book source group possibly corrupting unrelated sources - **fixed** — Fix book source management and discovery page showing no results after clicking certain groups - **fixed** — Fix source switching group matching being imprecise, old format groups failing, and all sources missing cache - **fixed** — Fix reading progress position shifting when chapter count changes during source switching - **fixed** — Fix URL parameter editor unable to save body script and overwriting request script - **fixed** — Fix bottom web popup configuration update anomaly potentially causing crashes - **fixed** — Fix bookmark content search potentially matching bookmarks from other books - **fixed** — Fix bottom web popup view continuing to operate old BottomSheet after view rebuild - **fixed** — Fix base URL parsing incorrectly retaining query parameters, fragments, or short host paths - **fixed** — Fix bottom web popup view reusing recycled WebView after view rebuild - **fixed** — Fix book source domain check incorrectly routing HTTPS addresses without explicit port to port 80 - **fixed** — Fix pooled WebView possibly returning destroyed instances after repeated release - **fixed** — Fix pooled WebView reusing pages retaining JavaScript interface from previous page - **fixed** — Fix string cache with expiration not expiring after entering memory - **fixed** — Fix welcome page exit or rebuild with delayed tasks still starting homepage, causing return failure or duplicate opening - **fixed** — Fix temporary Intent data key conflicts when opening popups or exporting files in short time, causing content swap or loss - **fixed** — Fix Web reading concurrent image loading possibly reusing images and sources from other books, handling empty book addresses - **fixed** — Fix file path using string prefix judgment allowing scripts to potentially access out of bounds and external files being misidentified - **fixed** — Fix bookshelf not showing continue reading entry when only audio, manga, or video reading records exist - **fixed** — Fix JavaScript returning object with lazy strings incorrectly serialized causing garbled text in login buttons and auto-task content - **fixed** — Fix JavaScript list rule parsing when returning arrays - **fixed** — Fix scheduled task Cron day field using asterisk step length incorrectly relaxing date and weekday matching - **fixed** — Fix scheduled task Cron illegal step length text being treated as step length 1 - **fixed** — Fix paragraph comment statistics refresh resetting reading position and background thread updating reading view - **fixed** — Fix scheduled task directory refresh counting section titles toward new chapter count - **fixed** — Fix book details refresh failure with existing cached directory unable to open - **fixed** — Fix books not added to bookshelf opening old chapter after selecting chapter from directory - **fixed** — Fix books not added to bookshelf unable to enter reading after selecting chapter from details page directory, preserving volume reading progress - **fixed** — Fix old version book sources losing java and other bindings when passing runtime objects to shared JavaScript library via top-level this - **fixed** — Fix configuration script written globalThis state being lost in subsequent JavaScript rules, restoring old version source body parsing and batch download compatibility - **security** — Reject empty sourceUrl in RSS subscription source JSON - **security** — Strengthen book source and rule sharing command URL, prefix, delimiter, and validity period validation, not displaying command button for links unable to be safely encoded **2026/07/23** - 增加书架最近阅读与数量统计开关,默认关闭 - 忽略段评可选 JSONPath 字段缺失产生的错误日志 - 恢复内置 Web 首页及原有样式、脚本和背景资源 - 补充 Rhino 间接 eval 与 Function 运行时作用域回归测试 - 修复书源 JSON 导入只校验数组首项并接受空白地址的问题,同时校验 sourceUrls 包装数组 - 修复订阅源 JSON 数组导入仅校验首项,导致后续无效订阅源混入的问题 - 拒绝 RSS 订阅源 JSON 中为空白的 sourceUrl - 修复书源编辑器将超长规则文本直接加载到内联输入框,改为占位提示并通过全文编辑器打开 - 修复同一路径本地书被覆盖或路径变化后仍复用旧解析器的问题,确保 EPUB、MOBI、PDF 与 UMD 重新读取新文件 - 修复文件关联导入在权限拒绝、目录重选或导入失败后加载状态未结束,并显式迁移本地书路径与缓存 - 修复登录脚本和登录界面规则包含前后空白时无法识别的问题 - 修复“未分组”筛选可能误匹配其他分组的问题 - 修复订阅源与替换规则按组筛选不精确的问题 - 修复删除订阅源或替换规则分组可能误改无关数据的问题 - 修复删除书源分组可能误改无关书源的问题 - 修复书源管理与发现页部分分组点击后无结果的问题 - 修复换源分组匹配不精确、旧格式分组失效及全部书源遗漏缓存的问题 - 修复换源时章节数变化导致阅读进度定位偏移的问题 - 修复 URL 参数编辑器无法保存正文脚本并覆盖请求脚本的问题 - 修复底部网页弹窗配置更新异常可能导致崩溃的问题 - 修复书签内容搜索可能匹配到其他书籍书签的问题 - 修复底部网页弹窗视图重建后仍操作旧 BottomSheet 的问题 - 修复基础网址解析误保留查询参数、片段或短主机路径的问题 - 修复底部网页弹窗视图重建时继续使用已回池 WebView 的问题 - 修复书源域名检查将无显式端口的 HTTPS 地址误连到 80 端口的问题 - 修复池化 WebView 重复释放后可能从池中取出已销毁实例的问题 - 修复池化 WebView 复用时残留上一个页面的 JavaScript 接口问题 - 修复带有效期的字符串缓存进入内存后不再过期的问题 - 修复欢迎页退出或重建后延迟任务仍启动主页,导致返回失效或重复打开的问题 - 修复短时间连续打开弹窗或导出文件时临时 Intent 数据键冲突,导致内容串换或丢失的问题 - 修复 Web 阅读并发加载图片时可能串用其他书籍和书源,并处理空书籍地址 - 修复文件路径使用字符串前缀判断,导致脚本可能越界访问且外部文件被误判的问题 - 批量选择栏的展开菜单改为主题化纵向菜单,保留原有菜单顺序、可见性和回调 - 修复书架仅有音频、漫画或视频阅读记录时不显示继续阅读入口的问题 - 修复 JavaScript 返回对象中的惰性字符串被错误序列化,导致登录按钮和自动任务内容乱码的问题 - 修复 JavaScript 列表规则返回数组时的解析问题 - 修复定时任务 Cron 日字段使用星号步长时错误放宽日期与星期匹配的问题 - 修复定时任务 Cron 非法步长文本被误当作步长 1 的问题 - 修复段评统计刷新重置朗读位置及后台线程更新阅读视图的问题 - 修复定时任务刷新目录时把卷标题计入新增章节数量的问题 - 缓存管理长按下载菜单改为主题化纵向菜单,保留当前章节后下载与全部下载操作 - 阅读页长按换源与刷新菜单改为主题化纵向菜单,保留章节、整本换源和三种刷新范围 - 修复书籍详情刷新失败后已有缓存目录无法打开的问题 - 段评列表与字段规则执行失败时写入错误日志,便于定位 JavaScript 书源规则问题 - 完善 JavaScript 异常日志中的源码位置提示 - 备份与恢复新增持久化定时任务,恢复完成后自动刷新系统调度 - 定时任务编辑退出时提示保存未提交的修改 - 修复未入书架书籍从目录选章后仍打开旧章节的问题 - 定时任务支持本地、网络和关联链接一键导入,可选择任务并编辑 ID 后共存 - 书源管理、换源、章节换源、发现和 RSS 列表的动态行菜单统一为主题化纵向菜单,保留登录、发现开关与删除确认 - 文件管理长按删除菜单改为主题化纵向菜单,并突出危险操作 - 自动任务、RSS 源、订阅规则、替换规则和 TXT 目录规则的行菜单统一为主题化纵向菜单,并突出删除操作 - 新增持久化定时任务,支持五段 Cron、JavaScript 编辑与调试、通知和目录刷新动作,并由系统在重启后继续调度 - RSS 源编辑页顶部选项改为可折叠面板,并在收起时显示开关状态摘要 - 书源编辑页顶部类型与开关选项改为默认折叠,并显示当前设置摘要 - 加固源与规则分享口令的 URL、前缀、分隔符与有效期校验,无法安全编码的链接不再显示口令按钮 - 书内搜索结果改为卡片样式,提升结果区分度与点击反馈 - 书签列表项改为圆角卡片样式,统一目录抽屉和书签列表的显示 - 修复未加入书架的书籍从详情页目录选择章节后无法进入阅读的问题,并保留分卷阅读进度 - 书源导入弹窗的失败和空结果状态新增说明图标,同时保留原有错误提示 - 书架新增统计信息和继续阅读入口,随书籍数据变化自动刷新 - 自定义字体文件列表为当前字体增加强调色描边,提升选中状态辨识度 - 新增底栏图集导入、图标分配、编辑、导出和分享功能 - 修复旧版书源通过顶层 `this` 向共享 JavaScript 库传递运行时对象时 `java` 等绑定丢失的问题 - 点击区域设置弹窗底部内容避让系统导航栏 - 书籍详情页目录入口在书籍数据为空时显示明确提示 - 清理 MCP HTTP 日志列表的未检查类型转换警告 - 书籍详情页简介改为默认展开,保留手动收起和再次展开 - 书籍详情页网络加载书籍信息或目录时新增顶部进度提示 - 修复配置脚本写入的 `globalThis` 状态在后续 JavaScript 规则中丢失的问题,恢复旧版书源正文解析与批量下载兼容 ### 3.26072400 — legado_app_3.26072400 - Date: 2026-07-23 - Version: 3.26072400 - Original notes: https://github.com/LegadoTeam/legado/releases/tag/3.26072400 - Permalink: https://whatsnew.fyi/product/legado/releases/3.26072400 - **added** — Write error logs when paragraph comment lists and field rules fail to execution for easier debugging of JavaScript book source rules - **changed** — Unified row menus for automatic tasks, RSS sources, subscription rules, replacement rules, and TXT directory rules to themed vertical menus with emphasized delete operations - **added** — Add persistent scheduled tasks supporting five-segment Cron expressions, JavaScript editing and debugging, notifications and directory refresh actions that continue after system restart - **changed** — Change RSS source edit page top options to collapsible panels with switch status summary displayed when collapsed - **changed** — Change book source edit page type and switch options to default collapsed state with current settings summary displayed - **changed** — Strengthen URL, prefix, separator and validity period validation for source and rule sharing passwords, hiding password button for links that cannot be safely encoded - **changed** — Change in-book search results to card style for better result distinction and click feedback - **changed** — Change bookmark list items to rounded card style, unifying display between directory drawer and bookmark list - **fixed** — Fix issue where books not added to shelf cannot enter reading after selecting chapter from detail page directory, while preserving volume reading progress - **changed** — Add explanation icons to book source import dialog failure and empty result states while retaining original error messages - **added** — Add statistics information and continue reading entry to bookshelf that automatically refresh with book data changes - **changed** — Add emphasis color stroke outline to custom font file list for current font to enhance selected state distinction - **added** — Add bottom bar image collection import, icon assignment, editing, export and sharing functions - **fixed** — Fix issue where legacy book sources lose java and other bindings when passing runtime objects to shared JavaScript libraries through top-level this - **changed** — Click on area settings dialog bottom content to avoid system navigation bar - **changed** — Display clear prompt in book detail page directory entry when book data is empty - **fixed** — Clean up unchecked type conversion warnings in MCP HTTP log list - **changed** — Change book detail page introduction to default expanded state while retaining manual collapse and re-expand - **added** — Add top progress indicator when book detail page network loads book information or directory - **fixed** — Fix issue where globalThis state written by configuration scripts is lost in subsequent JavaScript rules, restoring legacy book source text parsing and batch download compatibility **2026/07/23** - 段评列表与字段规则执行失败时写入错误日志,便于定位 JavaScript 书源规则问题 - 自动任务、RSS 源、订阅规则、替换规则和 TXT 目录规则的行菜单统一为主题化纵向菜单,并突出删除操作 - 新增持久化定时任务,支持五段 Cron、JavaScript 编辑与调试、通知和目录刷新动作,并由系统在重启后继续调度 - RSS 源编辑页顶部选项改为可折叠面板,并在收起时显示开关状态摘要 - 书源编辑页顶部类型与开关选项改为默认折叠,并显示当前设置摘要 - 加固源与规则分享口令的 URL、前缀、分隔符与有效期校验,无法安全编码的链接不再显示口令按钮 - 书内搜索结果改为卡片样式,提升结果区分度与点击反馈 - 书签列表项改为圆角卡片样式,统一目录抽屉和书签列表的显示 - 修复未加入书架的书籍从详情页目录选择章节后无法进入阅读的问题,并保留分卷阅读进度 - 书源导入弹窗的失败和空结果状态新增说明图标,同时保留原有错误提示 - 书架新增统计信息和继续阅读入口,随书籍数据变化自动刷新 - 自定义字体文件列表为当前字体增加强调色描边,提升选中状态辨识度 - 新增底栏图集导入、图标分配、编辑、导出和分享功能 - 修复旧版书源通过顶层 `this` 向共享 JavaScript 库传递运行时对象时 `java` 等绑定丢失的问题 - 点击区域设置弹窗底部内容避让系统导航栏 - 书籍详情页目录入口在书籍数据为空时显示明确提示 - 清理 MCP HTTP 日志列表的未检查类型转换警告 - 书籍详情页简介改为默认展开,保留手动收起和再次展开 - 书籍详情页网络加载书籍信息或目录时新增顶部进度提示 - 修复配置脚本写入的 `globalThis` 状态在后续 JavaScript 规则中丢失的问题,恢复旧版书源正文解析与批量下载兼容 ### 3.26072300 — legado_app_3.26072300 - Date: 2026-07-22 - Version: 3.26072300 - Original notes: https://github.com/LegadoTeam/legado/releases/tag/3.26072300 - Permalink: https://whatsnew.fyi/product/legado/releases/3.26072300 - **added** — Add built-in icon color settings for chapter comments with support for following reading theme - **added** — Add optional catalogue offline audio caching for audiobooks with range caching, catalogue cache status, automatic fallback for corruption, and cache preservation on cancellation or failure - **added** — Add native chapter comment statistics and details support for book sources - **added** — Add native chapter comment statistics and details functions for single-file JavaScript book sources with function pair validation, pagination, and nested reply compatibility - **added** — Support returning download links in detail functions for single-file JavaScript file sources with direct import and relative address compatibility - **added** — Add HTTP request log read-only query API with token protection to Web API supporting summary list and single detail views - **added** — Add book details page support for collapsible and expandable long text, HTML and Markdown introductions - **added** — Add native MCP book source development service with token and Host/Origin protection supporting source saving, debugging, querying, deletion and desensitized HTTP log tools - **fixed** — Fix chapter comment icon reuse when switching chapters and incorrect full text loading - **fixed** — Fix chapter comment icon being squeezed into text area when full text fills one line, allow icon to use right page margin while maintaining double page boundaries - **fixed** — Fix custom theme issue where some floating layer menus and history dropdown backgrounds did not follow theme changes - **fixed** — Fix shallow clone build using incorrect version count causing versionCode to decrement, ensure versionCode increments by complete commit history - **fixed** — Restore block-level const scope compatibility for legacy JavaScript book sources and fix some chapter comment pages from continuous loading - **changed** — Enhance empty link validation for JavaScript single-file file sources **2026/07/22** - 新增段评内置图标颜色设置,支持恢复跟随阅读主题 - 听书新增可选目录的离线音频缓存,支持范围缓存、目录缓存状态、损坏自动回源,以及取消或失败时保留已有有效缓存 - 新增书源原生段评统计与详情支持,修复章节切换时段评图标串用及空正文误加载的问题 - 修复正文排满一行时段评图标被挤入文字区的问题,允许图标使用右侧页边距并保持双页边界 - JavaScript 单文件书源新增原生段评统计与详情函数支持,补充函数配对校验、分页和嵌套回复兼容 - JavaScript 单文件文件源支持在详情函数返回下载链接并直接下载导入,兼容相对地址并校验空链接 - Web API 新增带令牌保护的 HTTP 请求日志只读查询接口,支持摘要列表与单条详情 - 书籍详情页的长文本、HTML 与 Markdown 简介支持折叠和展开 - 新增带令牌与 Host/Origin 防护的原生 MCP 书源开发服务,支持书源保存、调试、查询、删除和脱敏 HTTP 日志工具 - 修复自定义主题下部分浮层菜单与历史下拉框背景未随主题变化的问题 - 修复正式版构建使用浅克隆时版本号计数回退的问题,确保 `versionCode` 按完整提交历史递增 - 恢复旧版 JavaScript 书源的块内 `const` 作用域兼容,修复部分段评页面持续加载的问题 ### 3.26072200 — legado_app_3.26072200 - Date: 2026-07-21 - Version: 3.26072200 - Original notes: https://github.com/LegadoTeam/legado/releases/tag/3.26072200 - Permalink: https://whatsnew.fyi/product/legado/releases/3.26072200 **2026/07/22** - 恢复旧版 JavaScript 书源的块内 `const` 作用域兼容,修复部分段评页面持续加载的问题 ### 3.26072122 — legado_app_3.26072122 - Date: 2026-07-21 - Version: 3.26072122 - Original notes: https://github.com/LegadoTeam/legado/releases/tag/3.26072122 - Permalink: https://whatsnew.fyi/product/legado/releases/3.26072122 - **fixed** — Fix Rhino stack overflow caused by reverse reading of login information during dynamic login form initialization in scripts - **changed** — Restore Jsoup chaining call compatibility for java.getElements(...) return results in JavaScript rules, supporting legacy methods like attr, text, html - **changed** — Restore compatibility for with scope, E4X XML descendant selection, and nested eval Java method calls in legacy JavaScript sources - **added** — Add token-protected pure JavaScript single-file book source save interface to Web API with unified protection for book source writing, searching and debugging - **changed** — Change Brotli response to use underlying streaming decoder directly, removing unnecessary OkHttp wrapper dependencies while maintaining decompression and resource cleanup behavior - **fixed** — Fix JavaScript single-file book source parsing being treated as normal failure when cancelled, preventing continued error handling after leaving edit or import workflow - **changed** — Add compatibility for Cronet 151 conditional reference of Private Compute service for future Android versions, fixing compilation failure from missing classes in Release R8 - **fixed** — Fix Cronet update task misreading string attributes when parsing ABI filenames, restoring version download, verification and metadata generation - **fixed** — Fix recursive reload triggered when closing old parser during local MOBI and PDF file opening, causing files to hang or fail to open - **fixed** — Close input stream promptly after checking local book file existence to prevent accumulation of file handles when entering reading page repeatedly - **changed** — Tighten R8 retention scope for video player to only preserve runtime reflection constructors and clean up invalid Media3 private field rules, reducing install package size - **changed** — Streamline R8 retention rules for code editor, delegating reflection model retention to TextMate dependency and removing unused implementations, reducing install package size - **changed** — Streamline unused Kotlin built-in metadata in current runtime, reducing install package size - **changed** — Compress TextMate syntax and theme configuration while preserving JSON structure, reducing install package size - **changed** — Streamline code highlight resources in built-in help pages, retaining only JavaScript, Java, HTML/XML and plain text languages used in documentation, reducing install package size - **changed** — Optimize invalid book cache cleanup by querying only necessary fields in normal cleanup and reading full comic data only when comic retention policy is enabled - **changed** — Optimize reading background preview loading by directly using image cache to read built-in resources, avoiding synchronous copying of complete image data during list binding - **added** — Include CryptoJS 4.2.0 compatibility library providing MD5, SHA, HMAC, Base64, AES capabilities for rules and pure JS book sources, using system secure random number generation for salt - **added** — Add JS indicator to book source management list for quick distinction of pure JavaScript single-file book sources - **fixed** — Fix RSS reading record title missing preventing page from loading, adding compatibility for cases where corresponding subscription source is deleted - **fixed** — Fix single RSS subscription source JSON unable to reimport **2026/07/20** - 修复动态登录表单初始化时脚本反向读取登录信息导致 Rhino 递归溢出的问题 - 恢复 JavaScript 规则中 `java.getElements(...)` 返回结果的 Jsoup 链式调用兼容,支持继续使用 `attr`、`text`、`html` 等旧式写法 - 恢复旧版 JavaScript 源对 `with` 作用域、E4X XML 后代选择和嵌套 `eval` Java 方法调用的兼容 - Web API 新增带令牌保护的纯 JavaScript 单文件书源保存接口,统一保护书源写入、搜索和调试,令牌不再持久化,并加强正文 HTML、接口响应、请求大小、幂等保存和相似 URL 状态隔离 - Brotli 响应改为直接使用底层流式解码器,移除不再需要的 OkHttp 包装依赖并保持 br 解压与资源关闭行为 - 修复 JavaScript 单文件书源解析被取消时仍按普通失败处理的问题,避免离开编辑或导入流程后继续错误收尾 - 兼容 Cronet 151 对 Android 未来版本 Private Compute 服务的条件引用,修复 Release R8 缺失类导致的编译失败 - 修复 Cronet 更新任务解析 ABI 文件名时误读字符串属性,恢复版本下载、校验与元数据生成 - 修复本地 MOBI 与 PDF 打开时关闭旧解析器触发递归重载,导致文件一直加载或无法打开的问题 - 检查本地书籍文件是否存在后及时关闭输入流,避免重复进入阅读页积累文件句柄 - 收紧视频播放器的 R8 保留范围,仅保留运行时反射构造器并清理失效的 Media3 私有字段规则,减少安装包体积 - 精简代码编辑器的 R8 保留规则,交由 TextMate 依赖保留反射模型并移除未使用实现,减少安装包体积 - 精简当前运行时未使用的 Kotlin 内置元数据,减少安装包体积 - 压缩 TextMate 语法与主题配置,在保持 JSON 结构不变的前提下减少安装包体积 - 精简内置帮助页代码高亮资源,仅保留文档使用的 JavaScript、Java、HTML/XML 与纯文本语言,减少安装包体积 - 优化无效书籍缓存清理,普通清理仅查询必要字段,并仅在启用漫画保留策略时读取完整漫画数据 - 优化阅读背景预览加载,直接交由图片缓存读取内置资源,避免列表绑定时同步复制完整图片数据 - 内置 CryptoJS 4.2.0 兼容库,为规则与纯 JS 书源提供 MD5、SHA、HMAC、Base64、AES 等能力,并使用系统安全随机数生成随机盐 - 书源管理列表增加 JS 标识,便于快速区分纯 JavaScript 单文件书源 - 优化规则大数据目录清理,批量校验书籍与 RSS 关联并在删除前复核,避免残留无效空目录 - 升级 JavaScript 执行引擎,兼容 `for (const ... in ...)` 与块级 `const`,修复部分 JS 书源导入或保存时报语法错误的问题 - 优化 RSS 源导入预览的批量匹配,并避免界面重建时重复加载导致状态错位 - 修复 RSS 阅读记录标题缺失时页面无法加载,并兼容对应订阅源已删除的情况 - 优化替换规则导入预览时的数据库查询,批量匹配并保持原导入顺序 - 优化选中书源导出时的数据库查询,批量解析并保持原选择顺序 - 修复单个 RSS 订阅源 JSON 无法重新导入的问题 - 修复换源目录加载与 WebDAV 备份查询吞掉协程取消信号的问题 - 修复在线导入排版配置时再次导入重复添加、空列表未写入或成功提示早于持久化完成的问题 - 修复部分 Content Provider 或特定长度的 JSON 文件识别失败问题 ### 3.26072114 — legado_app_3.26072114 - Date: 2026-07-21 - Version: 3.26072114 - Original notes: https://github.com/LegadoTeam/legado/releases/tag/3.26072114 - Permalink: https://whatsnew.fyi/product/legado/releases/3.26072114 - **fixed** — Fix Rhino stack overflow caused by script reverse reading login information during dynamic login form initialization - **changed** — Restore Jsoup chaining compatibility for java.getElements(...) results in JavaScript rules, supporting attr, text, html and other legacy methods - **changed** — Restore compatibility with legacy JavaScript sources for with scope, E4X XML descendant selection, and nested eval Java method calls - **added** — Add token-protected pure JavaScript single-file book source save API to Web API with unified protection for write, search, and debug operations, non-persistent tokens, and enhanced isolation for body HTML, response, request size, idempotent save, and similar URL states - **changed** — Change Brotli response to use underlying streaming decoder directly, removing unnecessary OkHttp wrapper dependency while maintaining br decompression and resource cleanup - **fixed** — Fix JavaScript single-file book source parsing being treated as normal failure when cancelled, preventing continued error handling after leaving edit or import flow - **changed** — Support Cronet 151 conditional references for Android future Private Compute service, fixing compilation failure from missing classes in Release R8 - **fixed** — Fix Cronet update task parsing ABI filename by misreading string property, restoring version download, verification, and metadata generation - **fixed** — Fix recursive reload triggered by closing old parser when opening local MOBI and PDF files, causing endless loading or unable to open - **changed** — Close input stream promptly after checking local book file existence to avoid file handle accumulation from repeated entry into reading page - **changed** — Tighten video player R8 retention scope to only runtime reflection constructors and remove obsolete Media3 private field rules, reducing package size - **changed** — Simplify code editor R8 retention rules by delegating reflection model preservation to TextMate dependency and removing unused implementations, reducing package size - **changed** — Remove unused Kotlin built-in metadata from current runtime, reducing package size - **changed** — Compress TextMate syntax and theme configuration while maintaining JSON structure, reducing package size - **changed** — Simplify built-in help page code highlighting resources to only JavaScript, Java, HTML/XML, and plain text languages used in documentation, reducing package size - **changed** — Optimize invalid book cache cleanup by querying only necessary fields in normal cleanup and reading complete manga data only when manga retention policy is enabled - **changed** — Optimize reading background preview loading by delegating to image cache for built-in resources, avoiding synchronous full image data copying during list binding - **added** — Include CryptoJS 4.2.0 compatibility library providing MD5, SHA, HMAC, Base64, AES and other capabilities for rules and pure JS book sources with system secure random salt generation - **added** — Add JS indicator to book source management list for quick distinction of pure JavaScript single-file book sources - **changed** — Optimize rule big data directory cleanup by batch validating book and RSS associations and reviewing before deletion, avoiding orphaned invalid directories - **changed** — Upgrade JavaScript execution engine to support for (const ... in ...) and block-level const, fixing syntax errors when importing or saving some JS book sources - **changed** — Optimize RSS source import preview batch matching and avoid repeated loading during interface rebuild causing state misalignment - **fixed** — Fix RSS reading history page unable to load when title is missing and support cases where corresponding subscription source is deleted - **changed** — Optimize database queries for replacement rule import preview by batch matching and maintaining original import order - **changed** — Optimize database queries when exporting selected book sources by batch parsing and maintaining original selection order - **fixed** — Fix single RSS subscription source JSON unable to reimport - **fixed** — Fix book source switching directory loading and WebDAV backup query swallowing coroutine cancellation signals - **fixed** — Fix online typesetting configuration import causing duplicate addition on reimport, empty list not written, or success message appearing before persistence completion - **fixed** — Fix identification failure for some Content Provider or JSON files of specific length **2026/07/20** - 修复动态登录表单初始化时脚本反向读取登录信息导致 Rhino 递归溢出的问题 - 恢复 JavaScript 规则中 `java.getElements(...)` 返回结果的 Jsoup 链式调用兼容,支持继续使用 `attr`、`text`、`html` 等旧式写法 - 恢复旧版 JavaScript 源对 `with` 作用域、E4X XML 后代选择和嵌套 `eval` Java 方法调用的兼容 - Web API 新增带令牌保护的纯 JavaScript 单文件书源保存接口,统一保护书源写入、搜索和调试,令牌不再持久化,并加强正文 HTML、接口响应、请求大小、幂等保存和相似 URL 状态隔离 - Brotli 响应改为直接使用底层流式解码器,移除不再需要的 OkHttp 包装依赖并保持 br 解压与资源关闭行为 - 修复 JavaScript 单文件书源解析被取消时仍按普通失败处理的问题,避免离开编辑或导入流程后继续错误收尾 - 兼容 Cronet 151 对 Android 未来版本 Private Compute 服务的条件引用,修复 Release R8 缺失类导致的编译失败 - 修复 Cronet 更新任务解析 ABI 文件名时误读字符串属性,恢复版本下载、校验与元数据生成 - 修复本地 MOBI 与 PDF 打开时关闭旧解析器触发递归重载,导致文件一直加载或无法打开的问题 - 检查本地书籍文件是否存在后及时关闭输入流,避免重复进入阅读页积累文件句柄 - 收紧视频播放器的 R8 保留范围,仅保留运行时反射构造器并清理失效的 Media3 私有字段规则,减少安装包体积 - 精简代码编辑器的 R8 保留规则,交由 TextMate 依赖保留反射模型并移除未使用实现,减少安装包体积 - 精简当前运行时未使用的 Kotlin 内置元数据,减少安装包体积 - 压缩 TextMate 语法与主题配置,在保持 JSON 结构不变的前提下减少安装包体积 - 精简内置帮助页代码高亮资源,仅保留文档使用的 JavaScript、Java、HTML/XML 与纯文本语言,减少安装包体积 - 优化无效书籍缓存清理,普通清理仅查询必要字段,并仅在启用漫画保留策略时读取完整漫画数据 - 优化阅读背景预览加载,直接交由图片缓存读取内置资源,避免列表绑定时同步复制完整图片数据 - 内置 CryptoJS 4.2.0 兼容库,为规则与纯 JS 书源提供 MD5、SHA、HMAC、Base64、AES 等能力,并使用系统安全随机数生成随机盐 - 书源管理列表增加 JS 标识,便于快速区分纯 JavaScript 单文件书源 - 优化规则大数据目录清理,批量校验书籍与 RSS 关联并在删除前复核,避免残留无效空目录 - 升级 JavaScript 执行引擎,兼容 `for (const ... in ...)` 与块级 `const`,修复部分 JS 书源导入或保存时报语法错误的问题 - 优化 RSS 源导入预览的批量匹配,并避免界面重建时重复加载导致状态错位 - 修复 RSS 阅读记录标题缺失时页面无法加载,并兼容对应订阅源已删除的情况 - 优化替换规则导入预览时的数据库查询,批量匹配并保持原导入顺序 - 优化选中书源导出时的数据库查询,批量解析并保持原选择顺序 - 修复单个 RSS 订阅源 JSON 无法重新导入的问题 - 修复换源目录加载与 WebDAV 备份查询吞掉协程取消信号的问题 - 修复在线导入排版配置时再次导入重复添加、空列表未写入或成功提示早于持久化完成的问题 - 修复部分 Content Provider 或特定长度的 JSON 文件识别失败问题 ### 3.26071915 — legado_app_3.26071915 - Date: 2026-07-19 - Version: 3.26071915 - Original notes: https://github.com/LegadoTeam/legado/releases/tag/3.26071915 - Permalink: https://whatsnew.fyi/product/legado/releases/3.26071915 - **fixed** — Fix potential buffer null reference after request cancellation and reduce Release build warnings for network, Cronet, and permission queue type boundaries - **fixed** — Fix missing video source types in some languages and stabilize EPUB file type recognition across different system languages - **fixed** — Fix book export filename not uniformly sanitizing reserved characters, causing normal or multi-volume export failures - **changed** — Use default filename when custom export filename script returns empty value, and prompt rule invalidity in multi-volume export configuration - **changed** — Reduce installation package size by removing unused dependency languages and build resources while preserving all existing application translations - **fixed** — Fix adjacent same-prefix directories in compressed file extraction potentially bypassing target directory boundary validation - **fixed** — Fix external filenames potentially exceeding local book save directory boundaries - **fixed** — Fix Content Provider RSS source save, query, and delete requests being incorrectly routed to source handler - **fixed** — Fix RSS article pagination retry failure, page skipping, and loading state unable to end - **fixed** — Fix RSS category script exception or format corruption resulting in no category results and potential debug crash - **fixed** — Fix source validation incorrectly judging website as invalid when catalogue only contains volume titles - **changed** — Remove currently unused media casting dependency while preserving existing player capabilities and reducing installation package size - **changed** — Expand catalogue volumes by default and preserve interaction to collapse on demand through buttons next to volume titles - **fixed** — Restore paragraph indentation for plain text introductions on book details page - **changed** — Optimize rule editor auxiliary keyboard input method display judgment to avoid false display or missing display under full-screen and gesture navigation - **fixed** — Fix multiple empty addresses in discovery rules being converted to literal null when importing legacy sources - **added** — Support saving single-file JavaScript sources directly in code editor and entering debug mode, continuing to edit after returning - **fixed** — Fix source and RSS feed containing exceptional combined characters potentially freezing edit page, and provide safe editing entry - **fixed** — Fix dynamic login UI cancellation potentially crashing during loading and add loading status prompt - **fixed** — Fix group rename incorrectly adding similar names or groups containing wildcards to new group **2026/07/19** - 收紧网络、Cronet 与权限队列的类型边界,修复请求取消后潜在的缓冲区空引用并减少 Release 编译告警 - 修复部分语言下视频书源类型缺失,并稳定 EPUB 文件类型在不同系统语言下的识别 - 修复书籍导出文件名未统一清洗保留字符,导致普通或分卷导出失败的问题 - 自定义导出文件名脚本返回空值时改用默认名称,并在分卷导出配置中提示规则无效 - 精简安装包中未使用的依赖语言与构建资源,并保留应用现有全部翻译 - 修复压缩文件解包时相邻同前缀目录可能绕过目标目录边界校验的问题 - 修复外部文件名可越过本地书籍保存目录的问题 - 修复 Content Provider 的 RSS 源保存、查询和删除请求错误路由到书源处理的问题 - 修复 RSS 文章分页失败后无法重试、页码跳过和加载状态无法结束的问题 - 修复 RSS 分类脚本异常或格式损坏时无分类结果并可能导致调试崩溃的问题 - 修复书源校验在目录仅含卷标题时误判为网站失效的问题 - 排除当前未使用的媒体投屏依赖,保留现有播放器能力并减小安装包体积 - 目录分卷默认全部展开,并保留通过卷标题右侧按钮按需折叠的交互 - 恢复书籍详情页普通文本简介的段落首行缩进 - 优化规则编辑器辅助键盘的输入法显示判断,避免全面屏和手势导航下误显示或漏显示 - 修复导入旧版书源时多条发现规则中的空地址被转换为字面量 `null` 的问题 - JavaScript 单文件书源支持在代码编辑器中直接保存并进入调试,返回后继续编辑 - 修复书源与 RSS 源包含异常组合字符时可能卡死编辑页的问题,并提供安全编辑入口 - 修复动态登录 UI 加载期间取消脚本可能崩溃,并增加加载状态提示 - 修复分组改名时相似名称或含通配符的组被误加入新分组的问题