Skip to content

V1.0.306

Choose a tag to compare

@JoyinJoester JoyinJoester released this 20 Aug 04:58
· 37 commits to main since this release

Monica Android 发行说明

中文

简短版

  • KeePass 项目现在支持原生无损移动,跨库时保留历史、附件、自定义图标及 KeePass 专属字段。
  • 密码库新增可选的分层文件夹布局,可按存储源与文件夹层级浏览全部项目。
  • KeePass 密钥文件不再受 1MB 限制,并改进权限申请体验。
  • KeePass 数据库现在复用原生解锁会话;未变化的数据库不再因切换页面重复解析和刷新索引。
  • 新增完整的原生 KeePass 管理模式,支持文件夹树、通用条目、历史、高级搜索、批量操作和附件管理。
  • 新增真实数据库设置、主密钥修改、恢复副本、完整性修复、原样另存、原生合并与远端冲突中心。
  • 优化密码库批量移动速度,移动期间顶部面包屑会显示真实进度。
  • 统一多选移动与复制的目标选择,打开面板时默认定位当前数据库。
  • 重做 KeePass“管理数据库内容”页面,改为紧凑的文件夹与条目列表。
  • 优化 KeePass 原生条目的新建、编辑与详情,支持标准字段、自定义敏感字段和强密码生成,并减少创建时的重复刷新。
  • 密码页与密码库的 KeePass 菜单可直接进入“管理数据库内容”。
  • 优化 KeePass 编辑保存性能:写入后不再重复读取整个 KDBX,密码、笔记等兼容投影改为按需构建。
  • 进一步延迟原生会话、浏览快照和字段引用索引的创建,减少切换页面时的重复遍历。
  • 保存、远端同步和恢复副本复用已计算的数据库修订值,减少重复哈希与整库读取。
  • 优化大 KDBX 编码缓冲区、缓存淘汰、条目计数更新和深层文件夹遍历,降低内存复制与等待。
  • 冲突中心支持密码条目逐字段选择本地或远端版本,敏感字段在预览中自动遮蔽。
  • KeePass 新增自定义图标编辑器、条目级 Auto-Type 编辑、文件夹批量拖拽和完整模板流程。
  • 大型 KDBX 的本地读取、写入、恢复和校验改用流式临时文件路径,减少整库内存峰值。
  • 修复 KeePass 新建、编辑和移动保存失败;管理数据库内容菜单现在可以正常跳转。
  • 密码与密码库新增可选的父分类聚合显示,并修复密码库新增、修改或删除后刷新延迟。
  • 云端同步和跨数据库移动现在会区分网络、登录、权限、冲突、锁定、限流等失败原因,并给出更清晰的处理提示。
  • 分类文件夹在编辑模式下支持重命名、整树移动和复制,可连同子文件夹、全部项目及密码附件跨 Monica、KeePass、MDBX 与 Bitwarden 转移。
  • 优化移动与复制面板的文件夹树,子文件夹现在按层级缩进并显示父路径。

详细版

  • 优化 KeePass 分类管理:同库移动直接调整原生分组且不生成删除记录;跨库移动保留原始 UUID、字段保护状态、历史版本、Auto-Type、标签、颜色、时间、自定义数据、未知字段、附件和自定义图标。Monica 会重新读取并校验目标文件,远端目标还必须确认同步成功,之后才删除来源;批量操作按项目记录成功与失败,Room 仅作为搜索索引,不再二次重建 KDBX 条目。尚未支持安全源删除的目标继续自动使用复制,以保护原始数据。
  • “页面调整自定义”新增密码库分层文件夹布局,默认保持经典布局。新布局先显示 Monica 本地、KeePass、Bitwarden 与 MDBX 存储源,再按各自文件夹层级展示内容;支持子树项目计数、返回上一层并恢复滚动位置,搜索与聚合筛选继续使用原有平铺结果,多选全选仅作用于当前文件夹可见项目。
  • 移除 KeePass 密钥文件的 1MB 大小限制,覆盖外部文件读取、Monica 内部副本和加密备份恢复,修复大型密钥文件导致数据库无法解锁或保存的问题。
  • 权限管理中的相机、存储、通知和手机状态权限会先显示 Android 原生授权确认;系统拒绝后再提供前往应用设置的操作。自动填充、无障碍和生物识别会进入各自对应的系统页面,返回后自动刷新权限状态并显示结果。
  • 重构 KeePass 读取边界:每个数据库版本只构建一次原生树遍历和字段引用上下文,密码、验证器、笔记、卡包、证件与 Passkey 共用同一会话;Room 仅在 KDBX 版本变化时刷新兼容索引。分组筛选新增数据库与分组 UUID 身份,能够区分同名同路径分组,并继续兼容只有路径信息的旧数据。
  • 新增 Monica 风格的原生 KeePass 管理页面:文件夹与条目按原生 UUID 导航,支持面包屑、创建和管理文件夹、通用未知条目、正则与字段范围搜索、自然或时间排序、条目长按多选、批量移动、回收站删除和显式永久删除。未识别的模板及插件条目不再因缺少 Monica 固定模型而从列表消失。
  • 完善原生历史与附件:条目修改会保留 KDBX 历史,可查看、恢复或删除版本;通用条目可以添加、原样导出、单独重命名和删除附件。同一二进制内容使用不同文件名时能够分别管理,历史版本仍引用的附件数据不会被错误清理。
  • 新增完整数据库设置与凭据管理:可修改真实 KDBX 主密码、密钥文件或组合凭据,并管理数据库名称、描述、默认用户名、颜色、压缩、加密算法、KDF 参数、历史限制、回收站、模板分组、只读模式和主动锁定。
  • 新增数据库工具与安全闭环:支持重复 UUID、缺失或孤立附件和自定义图标检查,修复前自动保留经过校验的恢复副本;恢复副本可查看、恢复、导出或删除。另可逐字节另存完整 KDBX、无损合并另一数据库,并在远端冲突时比较本地、远端和共同基线,选择合并、保留本地、采用远端或取消。查看冲突后任一来源发生变化都会拒绝写入。
  • 统一密码页与密码库的批量移动执行链:密码库不再为不同内容类型分别启动互不等待的逐条任务,而是复用现有的 MDBX 批量写入、KeePass 原生批量移动和逐项失败统计。操作开始后,顶部面包屑会切换为真实的移动进度,切换页面后任务仍由 ViewModel 继续完成,并通过通知报告后台进度与部分失败结果。
  • 统一密码、密码库、验证器、笔记、卡包与 Passkey 的移动和复制目标面板。面板会根据当前筛选预选 Monica、KeePass、MDBX 或 Bitwarden 数据库,同时保留具体文件夹选择与数据库切换;ALL 等全局视图默认使用 Monica 本地数据库。
  • 管理数据库内容页面采用文件夹优先的紧凑节点布局:顶部栏仅保留当前层级、搜索、排序和更多操作,搜索框按需展开并自动获得焦点,面包屑改为单行横向滚动。条目列表保留类型、账号、网址和分组信息,文件夹显示直接子项数量;批量模式新增当前列表全选/反选,移动、删除和只读状态均提供明确的可用性反馈。页面使用受控内容宽度适配平板与横屏,加载过程显示线性进度,读取失败提供重试入口。
  • 重构 KeePass 原生条目编辑链路:新建条目先在内存表单中填写标题、用户名、密码、URL、备注和自定义字段,确认保存后再一次性写入 KDBX,不再创建空条目后重复刷新。常见 KeePass 字段别名会映射到标准输入项,同时保留原字段名称、顺序、保护状态以及未知字段、TOTP 和插件数据;自定义字段复用 Monica 的敏感内容与显隐控制。详情页按凭据、备注、自定义字段、附件和元数据分区展示,并在密码页与密码库的 KeePass 菜单提供直接入口。
  • 缩短 KeePass 保存后的关键路径:本地、外部文件和远端工作副本完成安全写入后,直接复用已经编码并验证的 KDBX 字节更新 revision 与原生会话,不再为刷新缓存额外读取整库。密码、笔记、卡包和 Passkey 使用的兼容投影改为首次需要时构建,原生条目保存不再同步承担全部页面的索引转换成本;外部文件回读校验、恢复副本和远端版本冲突保护保持不变。
  • 进一步优化原生 KeePass 生命周期:会话、浏览器快照、兼容投影、字段引用索引和 UUID 文件夹索引均按需或按数据库修订创建,并在缓存淘汰时同步释放,避免空转初始化和重复全库扫描。
  • 写入链路复用已编码字节的 KeePassSourceRevision,本地保存、远端同步、外部文件写入和恢复副本不再重复计算哈希或读取整库;受限预分配编码缓冲区减少大 KDBX 扩容复制。
  • 条目计数仅在数值变化时通知 Room,深层分组遍历改为显式队列,降低无意义刷新和递归栈风险。
  • 远端冲突采用共同基础版本、本地版本和远端版本进行三方比较。互不重叠的字段修改会自动合并;同一字段、文件夹位置、条目删除与编辑、附件或其他 KeePass 属性同时变化时,冲突中心会展示本地与远端摘要并要求选择来源。密码字段等受保护内容只显示遮蔽文本,选择结果会保留原有保护状态、历史和附件;未选择的旧式整库合并仍保留冲突副本作为数据保护措施。
  • 新增自定义图标编辑器:支持图片格式与尺寸校验、图标池浏览、上传、重命名、分配和清除;删除前检查条目、文件夹及历史引用,变更通过原生 KDBX 图标池和远端变更集同步。
  • 新增条目级 Auto-Type 编辑:可编辑启用状态、混淆模式、默认序列和窗口匹配规则,并在保存前校验空窗口与重复规则;原有 Auto-Type 元数据和未知字段保持不变。
  • 文件夹批量拖拽模式支持长按进入、多选来源、目标高亮、父子选择校验和非法后代目标拦截;确认后一次性移动整个文件夹集合,避免中途留下半完成树结构,同时保留原有移动菜单。
  • 完整模板流程覆盖模板分组自动恢复、创建、编辑、重命名、复制、套用、分类浏览和删除。套用模板会保留附件、图标、历史、Auto-Type、标签、自定义数据及插件字段;远程重放同时携带模板组元数据和资源池,避免跨设备同步后退化为普通条目。
  • 大文件处理进一步改为流式边界:本地/外部 KDBX 读取先落入临时文件并从流解码,编码直接写临时文件后原子替换,恢复副本、外部写入和持久化校验均使用文件流。变更集对压缩附件保留 Kotpass 原始存储字节和哈希,旧格式仍兼容;WebDAV、OneDrive、Google Drive 的单次 ByteArray 仅保留在现有网络 API 上传边界。
  • 修复流式 KDBX 编码在 Kotpass 自动关闭输出流后继续执行 flush/sync 导致的保存失败。新增保存、编辑和移动的原始异常日志,便于区分权限、文件来源、修订冲突与编码错误;同库原生密码移动改为一次事务写入,并按原生分组 UUID 定位目标。
  • “页面调整自定义”新增“父分类包含子分类内容”开关,默认保持原有的仅当前分类行为;开启后,密码页与密码库会在父分类中汇总全部子分类项目。密码库的本地密码投影同时改为即时合并,新增、修改和删除后不再等待聚合列表重新计算。
  • 重新整理 KeePass 与 OneDrive 的失败分类。同步和移动会保留底层原因,分别提示远端冲突、网络不可用、登录过期、写入权限不足、数据库未解锁、服务限流或远端异常;批量操作会保留实际失败数量和去重后的具体原因,避免只显示笼统的“操作失败”。
  • 分类文件夹编辑菜单新增重命名、移动和复制。重命名会同步更新完整子目录路径;移动或复制会先在目标数据库创建完整目录树,再按原分类放置密码、独立 TOTP、笔记、银行卡、证件、账单地址、支付账户和 Passkey,并复用附件转移与校验链路。全部成功后才删除源目录;部分失败时保留失败项目与源目录结构,并显示失败详情。为防止数据丢失,通行密钥复制、免费 Bitwarden 附件以及目标数据库不支持的数据类型会在执行前阻止。
  • 重做移动与复制目标的文件夹展示:Monica、KeePass 和 MDBX 文件夹按真实深度缩进,使用层级引导线,并在子文件夹下显示父路径;目标选择和跨数据库操作逻辑保持不变。

English

Short Version

  • KeePass items now support lossless native moves while preserving history, attachments, custom icons, and KeePass-specific fields.
  • The password library now offers an optional hierarchical folder layout for browsing by storage source and folder level.
  • KeePass key files are no longer limited to 1 MB, and permission requests are easier to complete.
  • KeePass databases now reuse a native unlocked session, avoiding repeated parsing and index refreshes when switching pages without source changes.
  • Added a complete native KeePass management mode with folder trees, generic entries, history, advanced search, batch actions, and attachment management.
  • Added real database settings, master-key changes, recovery copies, integrity repair, exact save-copy, native merge, and a remote conflict center.
  • Improved password-library batch move performance with live progress in the breadcrumb area.
  • Unified move and copy target selection so the picker opens on the currently viewed database.
  • Redesigned the KeePass “Manage database contents” page with a compact folder-and-entry list.
  • Improved native KeePass entry creation, editing, and details with standard fields, protected custom fields, password generation, and fewer redundant refreshes.
  • KeePass menus on both Passwords and Password Library now open “Manage database contents” directly.
  • Improved KeePass edit-and-save performance by removing the redundant full-file reread and building compatibility projections only when needed.
  • Further deferred native sessions, browser snapshots, and field-reference indexes to reduce repeated traversal when switching pages.
  • Reused computed database revisions during saving, remote synchronization, and recovery-copy creation to avoid duplicate hashing and full-file reads.
  • Improved large-KDBX encoding buffers, cache eviction, entry-count updates, and deeply nested-folder traversal to reduce memory copying and waiting.
  • The conflict center now supports per-field local or remote choices for KeePass entries, with protected values masked in the preview.
  • Added a custom-icon editor for KeePass: it validates image format and size, browses the icon pool, uploads, renames, assigns, clears, and checks entry, folder, and history references before deletion. Icon-pool changes are persisted losslessly and included in remote change sets.
  • Added entry-level Auto-Type editing for enabled state, obfuscation mode, default sequence, and window rules, with validation for blank or duplicate windows while preserving existing metadata and unknown fields.
  • Added batch folder drag mode: long-press to enter, select multiple source folders, highlight valid targets, reject parent/child and descendant mistakes, and commit the complete move as one database mutation. The existing menu-based move remains available.
  • Completed the template lifecycle with automatic template-group recovery, create, edit, rename, duplicate, instantiate, browse, and delete. Instantiation preserves attachments, icons, history, Auto-Type, tags, custom data, and plugin fields; remote replay carries template metadata and resource pools as well.
  • Extended large-KDBX streaming paths: local/external sources are staged in temporary files and decoded from streams, encoding writes to a temporary file before atomic replacement, and recovery, external writes, and persisted verification stay file-stream based. Compressed attachments now retain Kotpass's raw stored bytes and hash during change-set replay, while legacy payloads remain readable; existing network APIs still allocate only at the upload boundary.
  • Fixed KeePass save failures caused by flushing or syncing a stream after Kotpass had already closed it during streaming encoding. New-entry, edit, and move failures now retain the original stack trace for diagnosis; same-database native password moves are committed as one mutation and resolve the target by native group UUID.
  • Fixed the “Manage database contents” shortcut so requests from Passwords and Password Library navigate to the manager screen instead of only changing an unobserved ViewModel state.
  • Added optional parent-category aggregation to Passwords and Password Library, and removed delayed refreshes after local password creation, edits, or deletion in Password Library.
  • Cloud synchronization and cross-database moves now distinguish network, authentication, permission, conflict, lock, rate-limit, and remote-service failures with clearer recovery guidance.
  • Category folders can now be renamed, moved, or copied as complete trees, including descendants, supported item types, and password attachments across Monica, KeePass, MDBX, and Bitwarden.
  • Improved the move/copy folder tree with hierarchy indentation and parent-path context.

Detailed Version

  • Improved KeePass organization workflows: same-database moves relocate the native entry without creating a deletion record. Cross-database moves preserve the original UUID, protected fields, history, Auto-Type, tags, colors, timestamps, custom data, unknown fields, attachments, and custom icons. Monica reads the destination back for verification and requires remote targets to finish syncing before source removal. Batch results are tracked per item, while Room remains a search index instead of rebuilding the KDBX entry. Destinations without a safe move workflow still fall back to copy.
  • Added an optional hierarchical folder layout under Page Adjustment Customization while keeping the classic layout as the default. It groups content by Monica local, KeePass, Bitwarden, and MDBX sources, shows folders before items, counts all item types in each subtree, restores the previous folder and scroll position on Back, keeps search and aggregate filters in the existing flat layout, and limits Select All to visible items in the current folder.
  • Removed the 1 MB KeePass key-file limit from external reads, Monica's private copy, and encrypted backup restore, fixing database unlock and save failures with larger key files.
  • Permission Management now requests camera, storage, notification, and phone-state permissions through Android's native confirmation dialog first. If Android rejects a request, Monica offers the app-settings fallback. Autofill, accessibility, and biometric entries open their dedicated system pages, then refresh and report the resulting status on return.
  • Refactored the KeePass read boundary so each database revision builds its native tree traversal and field-reference context once. Passwords, authenticators, notes, cards, documents, and passkeys share the same session, while Room compatibility indexes refresh only when the KDBX revision changes. Group filters now carry database and group UUID identity to distinguish duplicate paths, with path fallback for legacy data.
  • Added a Monica-styled native KeePass manager. Folders and entries navigate by native UUID with breadcrumbs, folder creation and management, generic unknown entries, regex and field-scoped search, natural or time sorting, long-press selection, batch move, recycle-bin deletion, and explicit permanent deletion. Unrecognized template or plugin entries no longer disappear simply because they lack a fixed Monica model.
  • Completed native history and attachment workflows. KDBX edits retain entry history with view, restore, and delete actions. Generic entries can add, export byte-exact, rename, and remove attachments. Equal binary payloads with different file names remain independently manageable, and data still referenced by history is never cleaned up prematurely.
  • Added full database and credential settings. Monica can change the real KDBX master password, key file, or combined credentials, along with the database name, description, default username, color, compression, cipher, KDF parameters, history limits, recycle bin, templates group, read-only mode, and explicit locking.
  • Added a database safety toolkit. Monica can inspect duplicate UUIDs and missing or orphaned attachments and custom icons, retain a verified recovery copy before repair, and list, restore, export, or delete those copies. It can also save a byte-identical KDBX, merge another database losslessly, and resolve remote conflicts by comparing local, remote, and common-base state before choosing merge, keep local, use remote, or cancel. Any source change after review rejects the write.
  • Unified the batch-move path used by the Password page and Password Library. The library no longer launches separate, uncoordinated per-type jobs; it now reuses MDBX batch writes, native KeePass password moves, per-item failure accounting, and the shared background notification flow. The breadcrumb area shows real move progress immediately, and the ViewModel keeps the operation running when the user switches pages.
  • Unified the move and copy target picker across Passwords, Password Library, Authenticator, Notes, Wallet, and Passkeys. The picker now preselects the current Monica, KeePass, MDBX, or Bitwarden database while retaining folder selection and database switching; global views such as ALL default to Monica local storage.
  • Reworked the native database browser into a folder-first compact node layout. The top bar now keeps only hierarchy, search, sort, and overflow actions; search expands on demand with automatic focus, and breadcrumbs scroll on one line. Entry rows retain type, username, URL, and group context, while folder rows show direct child counts. Selection mode adds current-list select-all/toggle-all, mutation actions respect read-only state, tablet and landscape layouts use a constrained readable width, loading uses a linear indicator, and existing errors expose a retry action.
  • Reworked the native KeePass entry editor. New entries are completed in memory with title, username, password, URL, notes, and custom fields, then written to the KDBX once on confirmation instead of creating an empty entry and refreshing repeatedly. Common KeePass aliases map to standard inputs while preserving original field names, order, protection state, unknown fields, TOTP settings, and plugin data. Custom fields reuse Monica's protected-value controls, while the detail view separates credentials, notes, custom fields, attachments, and metadata. Passwords and Password Library also expose a direct manager shortcut in their KeePass menus.
  • Shortened the KeePass post-save critical path. After a local, external, or remote working-copy write completes, Monica now reuses the already encoded and verified KDBX bytes to update its revision and native session instead of reading the complete file again. Compatibility projections used by Passwords, Notes, Wallet, and Passkeys are built on first use, so native entry saves no longer synchronously pay every page's conversion cost. External read-back verification, recovery copies, and remote version-conflict protection remain unchanged.
  • Further optimized the native KeePass lifecycle: sessions, browser snapshots, compatibility projections, field-reference indexes, and UUID folder indexes are created on demand or per database revision and released together on cache eviction, avoiding idle initialization and repeated full-tree scans.
  • The write path reuses the encoded-byte KeePassSourceRevision, so local saves, remote sync, external-file writes, and recovery copies no longer recalculate hashes or reread the whole database. A bounded preallocation policy also reduces buffer growth copies for large KDBX files.
  • Room entry-count updates are skipped when the value is unchanged, and deeply nested group traversal now uses an explicit queue to reduce redundant notifications and recursion-stack risk.
  • Remote conflicts now use a three-way comparison of the common base, local, and remote databases. Non-overlapping field edits merge automatically; simultaneous changes to the same field, folder location, entry existence, attachments, or other KeePass properties are summarized and require an explicit side selection. Protected values remain masked while the selected value keeps its original protection, history, and attachments. The existing whole-database merge remains available and retains conflict copies when no field-level choice is supplied.
  • Added a “Parent categories include child items” option under Page Adjustment Customization. It remains off by default to preserve the existing current-folder-only behavior; when enabled, Passwords and Password Library include every descendant category. Password Library also merges the current local-password projection immediately, so create, edit, and delete operations no longer wait for the aggregate list to recompute.
  • Reworked KeePass and OneDrive failure classification. Synchronization and move flows preserve the underlying cause and separately report remote conflicts, unavailable networks, expired authentication, missing write access, locked databases, rate limiting, and remote-service failures. Batch operations retain the real failed-item count and deduplicate specific reasons instead of collapsing everything into a generic failure.
  • Added full category-folder operations in edit mode. Renaming updates every descendant path. Move and copy create the complete destination tree first, then preserve the original structure for passwords, standalone TOTP entries, notes, bank cards, documents, billing addresses, payment accounts, and passkeys while reusing the attachment transfer and verification path. Source folders are removed only after complete success; partial failures retain failed items and the original folder structure and show details. Unsafe passkey copies, attachments on non-premium Bitwarden vaults, and unsupported destination item types are blocked before mutation.
  • Redesigned move/copy destinations as a compact folder tree. Monica, KeePass, and MDBX folders now use their actual nesting depth, hierarchy guides, and parent-path context while preserving selection and cross-database behavior.