{
  "review_date": "2026-10-30",
  "timezone": "Asia/Shanghai",
  "default_branch": "fx-rime-only",
  "code_commit": "81ce935746eb4e17911bd503ddb2012fdb6b8435",
  "docs_before": "703cd9e28",
  "inherited_base": "3ad25fc9bd00898c48c68e622cbe472044d210ee",
  "direct_parent": "5fb6bca3415107ebe088b98751109f5b4f644972",
  "scope": {
    "all_commits": 316,
    "direct_commits": 55,
    "inherited_commits": 261
  },
  "method": {
    "direct": "逐项核对提交改动与相关当前源码、用户入口、协议和文档。",
    "inherited": "逐项收录历史提交及改动路径，分类映射现行主题；旧原生实现、依赖更新和回退单独标注，不宣称全部旧补丁仍在生效。",
    "validation": "文档与源码的静态核对；本次不重新运行 Android、云端语音或历史性能实验。"
  },
  "commits": [
    {
      "sha": "63d41b6930afe008bd1776419602b885a098737e",
      "date": "2026-09-04",
      "subject": "ci: 为单元测试启用 testDebugUnitTest 并收紧 nightly 发布分支",
      "phase": "inherited",
      "paths": [
        ".github/workflows/ci.yml",
        "app/build.gradle.kts"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "73fa05afffe3171dc627bff44d98d5cb95f299c5",
      "date": "2026-09-04",
      "subject": "fix(更新器): 注册镜像列表 Activity 并清理分屏键盘死代码",
      "phase": "inherited",
      "paths": [
        "app/src/main/AndroidManifest.xml",
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboard.kt"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "0160e49a2687e8955e71a4e2939376a6f560a03c",
      "date": "2026-09-04",
      "subject": "fix(键盘): 清理 SplitKeyboardStateManager 死代码并 recycle 触摸事件",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/SplitKeyboardStateManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "e19a361c6662b1a82ef9dca7e66b3703affca62e",
      "date": "2026-09-04",
      "subject": "fix(键盘手势): resetState 与取消手势不再被运行时开关守卫",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CustomGestureView.kt"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "658806a54b01f5ce51201c7772c5d3e27c4bc8bd",
      "date": "2026-09-04",
      "subject": "fix(语音输入): AudioRecord 停止路径不再静默吞异常",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/VoiceInputAudioCapture.kt"
      ],
      "document": "features/voice-input.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "语音"
    },
    {
      "sha": "1ee554aa8342d92e882b3b49ad9bceb74abd6dfd",
      "date": "2026-09-04",
      "subject": "fix(顶栏按钮面板): 拖拽期间不再整体重建顶栏",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/status/ButtonsAdjustingWindow.kt"
      ],
      "document": "features/kawaii-bar.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "工具栏"
    },
    {
      "sha": "0a9da83604e628e06c00b5b5c55a44852c12777c",
      "date": "2026-09-04",
      "subject": "fix(图标主题): 选取文件不再用 DISPLAY_NAME 直接拼路径",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/IconThemeManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/icon/IconThemeEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/FileNames.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/utils/FileNamesTest.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "11f011eea96c2a006ce8e1bf2a2669893ecf1bd2",
      "date": "2026-09-04",
      "subject": "fix(剪贴板同步): 存储路径解码对裸 % 与畸形编码健壮",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/ui/StoragePathUtils.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/clipboardsync/ui/StoragePathUtilsTest.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "2459a65e407d97376c002a6bf4ac903b3d5011aa",
      "date": "2026-09-04",
      "subject": "fix(布局解析): 布局 JSON 健壮性——非对象元素、缺 tap 宏键与 JsonNull",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtils.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtilsTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "6f1218e0c303371f3f5957aaa1b486d7e12a9150",
      "date": "2026-09-04",
      "subject": "fix(更新器): 镜像 replacement 的非法组引用不再崩溃",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateCheckActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateMirrorEditActivity.kt",
        "app/src/main/res/values-de/strings_local.xml",
        "app/src/main/res/values-es/strings_local.xml",
        "app/src/main/res/values-ja/strings_local.xml",
        "app/src/main/res/values-ko/strings_local.xml",
        "app/src/main/res/values-ru/strings_local.xml",
        "app/src/main/res/values-zh-rCN/strings_local.xml",
        "app/src/main/res/values-zh-rTW/strings_local.xml",
        "app/src/main/res/values/strings_local.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/update/UpdateMirrorRuleValidationTest.kt"
      ],
      "document": "features/update-checker.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "更新下载"
    },
    {
      "sha": "b7cacda698910e3be361097b0d59f3f5bc5bf105",
      "date": "2026-09-04",
      "subject": "perf(更新器): 下载校验移到 IO 线程并为 SHA-256 加缓存",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateCheckActivity.kt"
      ],
      "document": "features/update-checker.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "更新下载"
    },
    {
      "sha": "c80eecac5fedfb9bdac0e13acdab23917ce861b5",
      "date": "2026-09-04",
      "subject": "fix(更新器): 轮询随 onPause 停止，hosts 抓取复用与写回收敛",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateCheckActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateHostsSettingsActivity.kt",
        "app/src/main/res/values-de/strings_local.xml",
        "app/src/main/res/values-es/strings_local.xml",
        "app/src/main/res/values-ja/strings_local.xml",
        "app/src/main/res/values-ko/strings_local.xml",
        "app/src/main/res/values-ru/strings_local.xml",
        "app/src/main/res/values-zh-rCN/strings_local.xml",
        "app/src/main/res/values-zh-rTW/strings_local.xml",
        "app/src/main/res/values/strings_local.xml"
      ],
      "document": "features/update-checker.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "更新下载"
    },
    {
      "sha": "1ad9684a7e789c33a856090c4495b8c3aba21c79",
      "date": "2026-09-04",
      "subject": "perf(更新器): 下载复用 OkHttpClient 实例",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateRepository.kt"
      ],
      "document": "features/update-checker.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "更新下载"
    },
    {
      "sha": "69e4580dda14dc86686fa242767b26c64a16b8ba",
      "date": "2026-09-04",
      "subject": "fix(布局分享): XZ 解压设置内存上限，挡住 GB 级字典预分配",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/share/LayoutQrTransferCodec.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "08a6d4e934c3ce2d5446250450edcbf7258634f4",
      "date": "2026-09-04",
      "subject": "fix(输入配置): 带注释的布局 JSON 解析不再静默回退",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/config/ConfigProvider.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/config/UserJsonConfigStore.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/config/UserJsonConfigStoreCommentsTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "回退记录，不能将被回退的方案按标题列为现有功能；查当前主题说明。",
      "topic": "布局与宏"
    },
    {
      "sha": "0fdc7030f9968620392c89ffca5b60e832203466",
      "date": "2026-09-04",
      "subject": "fix(日志): Logcat 可重复打开并回收子进程",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/utils/Logcat.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "d9c33bea0634ab1da9730948a90569015b1b0821",
      "date": "2026-09-04",
      "subject": "fix(数据迁移): 备份时间戳含毫秒且不再删子模式 displayText",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/migration/DataMigrationManager.kt"
      ],
      "document": "features/backup-restore.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "数据与备份"
    },
    {
      "sha": "5b36265c3d20e6d0f88824aa07c4f5ad2b543896",
      "date": "2026-09-04",
      "subject": "fix(图标主题): 导入的异常捕获放宽到 Throwable",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/icon/IconThemeListActivity.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "eddcad9a85212b69d5706b0de91414a4428021e6",
      "date": "2026-09-04",
      "subject": "fix(备份): 导入安全关闭 Room，不再覆盖 WAL 与降级清库",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/UserDataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/clipboard/ClipboardManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/clipboard/db/ClipboardDatabase.kt",
        "app/src/main/res/values-de/strings_local.xml",
        "app/src/main/res/values-es/strings_local.xml",
        "app/src/main/res/values-ja/strings_local.xml",
        "app/src/main/res/values-ko/strings_local.xml",
        "app/src/main/res/values-ru/strings_local.xml",
        "app/src/main/res/values-zh-rCN/strings_local.xml",
        "app/src/main/res/values-zh-rTW/strings_local.xml",
        "app/src/main/res/values/strings_local.xml"
      ],
      "document": "features/backup-restore.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "数据与备份"
    },
    {
      "sha": "bf62a8de3edcb3a20aec71d6321a0effe7f83cc0",
      "date": "2026-09-04",
      "subject": "fix(剪贴板): 暂存文件命名去重并与数据库同步",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/clipboard/ClipboardManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/ClipboardUriStore.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/utils/ClipboardUriStoreNamingTest.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "7097cd85271e817a2f315187cf5da653384ad269",
      "date": "2026-09-04",
      "subject": "fix(剪贴板同步): 历史增量全部导入，游标不再跳过",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "38b3901366f81a234b760ec036325783a931f70e",
      "date": "2026-09-04",
      "subject": "fix(布局编辑器): 旋屏重建的状态保存与拖拽结果传递",
      "phase": "inherited",
      "paths": [
        "app/src/main/AndroidManifest.xml",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/ButtonsCustomizerActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/MacroEditorActivity.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "adaebe8eba6e341275dcebb75644eb1918981db7",
      "date": "2026-09-04",
      "subject": "fix(顶栏按钮面板): 分区去重与拖拽结果及时持久化",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/status/ButtonsAdjustingWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/status/ButtonsPanelPartition.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/status/ButtonsPanelPartitionTest.kt"
      ],
      "document": "features/kawaii-bar.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "工具栏"
    },
    {
      "sha": "1c5a98aae3bea62f53aa688f8edf96e70b52f6c7",
      "date": "2026-09-04",
      "subject": "fix(布局编辑器): 布局保存原子化且迁移按需执行",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDataManager.kt",
        "app/src/main/res/values-de/strings_local.xml",
        "app/src/main/res/values-es/strings_local.xml",
        "app/src/main/res/values-ja/strings_local.xml",
        "app/src/main/res/values-ko/strings_local.xml",
        "app/src/main/res/values-ru/strings_local.xml",
        "app/src/main/res/values-zh-rCN/strings_local.xml",
        "app/src/main/res/values-zh-rTW/strings_local.xml",
        "app/src/main/res/values/strings_local.xml"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "7b8dbcf4e0d15a210b0b51635e593a3a4757eecf",
      "date": "2026-09-04",
      "subject": "fix(剪贴板同步): 编辑器存储路径输入对裸 % 与畸形编码健壮",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/ui/StoragePathUtils.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "41de06215a89bcfc2a01e0862d594a6146f22ee6",
      "date": "2026-09-04",
      "subject": "test(主题): 修正 ThemeSerializationTest 与当前实现的偏差",
      "phase": "inherited",
      "paths": [
        "app/src/test/java/org/fcitx/fcitx5/android/ThemeSerializationTest.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "d232585747bf558f6441cecf06e98e9e69cd17d9",
      "date": "2026-09-04",
      "subject": "fix(剪贴板同步): 状态专用存储与锁内序列化",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/SyncStateStore.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/clipboardsync/SyncStateStoreTest.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "00d1baf412ec5e63098c6fa0464bc466c8d1316e",
      "date": "2026-09-04",
      "subject": "fix(顶栏): InputView 销毁时清空单例回调，消除泄漏",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/KawaiiBarComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/VoiceInputProviderManager.kt"
      ],
      "document": "features/kawaii-bar.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "工具栏"
    },
    {
      "sha": "f6fa88e0e132d09b6c0ec2fda20ddea13e86f010",
      "date": "2026-09-04",
      "subject": "fix(剪贴板分词): 分词 job 跟随视图生命周期取消",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/clipboard/TokenizedClipboardWindow.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "9ab92bd90eb9a5cd89458bc0ac77f51c912fadb1",
      "date": "2026-09-04",
      "subject": "fix(键盘): 静态 keydef 缓存设上限",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboard.kt"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "9ec852a90d0cfb538cb17ca00bf6b3172f8be993",
      "date": "2026-09-04",
      "subject": "fix(网络编辑桥): 有界线程池、请求体上限与连接数限制",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/webeditor/ImeWebEditorBridgeServer.kt"
      ],
      "document": "features/online-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "局域网编辑"
    },
    {
      "sha": "62a1d44666ade468d2ed80e0b7a355d0c9581e22",
      "date": "2026-09-04",
      "subject": "fix(语音输入): 回调主线程化与录音会话清理竞态",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/VoiceInputProviderManager.kt"
      ],
      "document": "features/voice-input.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "语音"
    },
    {
      "sha": "a5e9140e5d35867d248c48da8e38cf7bad3f0353",
      "date": "2026-09-04",
      "subject": "fix(键盘): 按键事件语义——录音结束、候选误提交与长按连删",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyboardWindow.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "554de0f04728d4c12f06a8eb2f63f5fdfecd36b0",
      "date": "2026-09-04",
      "subject": "fix(按键弹窗): dismissAllPopups 按 viewId 区分，双指打字不误清",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/PopupAction.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/PopupComponent.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "165fa28889e7ebc5f23f78bc31024dc94dce6b2a",
      "date": "2026-09-04",
      "subject": "fix(键盘): 缓存行的文本缩放重放与空格滑动开关",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/PopupComponent.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "cfc057edb5191d215b928a71083358765387ab8b",
      "date": "2026-09-04",
      "subject": "fix(键盘手势): baseline 记录在包装前，监听链不再增长",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "48d56f791e03aeb3acddd013456256dfe6d24779",
      "date": "2026-09-04",
      "subject": "fix(布局编辑器): 拖拽排除添加键并修正 FlowLayout 测量",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/DraggableFlowLayout.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/FlowLayout.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/FlowLayoutLines.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/KeyboardLayoutAdapter.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/FlowLayoutLinesTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "873fccdd49e2c45e3d4af6dd13001913edf1a7b8",
      "date": "2026-09-04",
      "subject": "fix(顶栏): 删除自定义宏后按钮不再执行旧宏",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/KawaiiBarComponent.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "0debfa333e8ae1e6a5576bf8edfc0f17dcba0418",
      "date": "2026-09-04",
      "subject": "perf(按键弹窗): 长按弹窗缓存判定前置，不再每次同步读盘",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/PopupComponent.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "13c840815ca07d3752fee1ea9f728f3c1ea82f7a",
      "date": "2026-09-04",
      "subject": "perf(主题): refreshThemes 移到 IO 线程",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemeManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/webeditor/ImeWebEditorBridgeServer.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeListFragment.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "f166d5098e789dfabd3bfa3ca0835d8deeadad6f",
      "date": "2026-09-04",
      "subject": "perf(图标主题): IconThemeManager 初始化移出主线程",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxApplication.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/IconThemeManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/icon/IconThemeListActivity.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "716f1c1f9547628d5bf06160699a833e7fbe65e3",
      "date": "2026-09-04",
      "subject": "perf(主题): 壁纸解码移出主线程且只解一次",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/Theme.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "3b71f54cf5f54dcc48a61862df432826264c73a0",
      "date": "2026-09-04",
      "subject": "perf(布局编辑器): 布局加载/解析/序列化/写入移出主线程",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/ButtonsCustomizerActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDataManager.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "9c524ad2d10db0709b47a7d74f36c7307ae593c8",
      "date": "2026-09-04",
      "subject": "perf(分享导入): 分享接收与二维码长图保存移出主线程",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/ShareReceiveManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/share/JsonFileQrShareManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/icon/IconThemeListActivity.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "476327c8ac54437c9b56389f9c66575ff6633807",
      "date": "2026-09-04",
      "subject": "perf(图标主题): 导入导出有界读取并后台化",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/icon/IconThemeListActivity.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "0ca07d2bb2eb080d42a4ddbc74efd674297b8c55",
      "date": "2026-09-04",
      "subject": "perf(剪贴板): 图片粘贴移出主线程，去除 Thread.sleep",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/clipboard/ClipboardManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/clipboard/ClipboardWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/clipboard/TokenizedClipboardWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/ClipboardUriStore.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "4168a951938f71cc2ed7b44ed969ba4a5fee9b4f",
      "date": "2026-09-04",
      "subject": "perf(输入法服务): 字体刷新标志读取后即清，不再全量重建组件树",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "9447fa740ccf166c91627f5888ea60fdaf20e370",
      "date": "2026-09-04",
      "subject": "perf(剪贴板同步): ClearURLs 规则与截图查询移出主线程",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/ScreenshotClipboardWatcher.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "206aaa5869c26d25b0bc490ce7e898fc026ba287",
      "date": "2026-09-04",
      "subject": "fix(剪贴板分词): 对长文本设上限",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/clipboard/ClipboardAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/clipboard/ClipboardTextTokenizer.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/clipboard/TokenizedClipboardWindow.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/clipboard/ClipboardTextTokenizerTest.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "518baea4987d016d9170999af5b80b567b77c14d",
      "date": "2026-09-04",
      "subject": "perf(模糊效果): 模糊遮罩每键一次裁剪一次绘制",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "c0e715053a5c8f0af53da7780e4da87f4a8b010a",
      "date": "2026-09-04",
      "subject": "perf(水波纹): 缓存 RadialGradient 不再每帧重建",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyboardWaterRippleView.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "db875357c48f4aae1c1f205b6f614b91ba71e3a1",
      "date": "2026-09-04",
      "subject": "perf(模糊效果): 模糊区域重建收敛为有界重试",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "c286a62fd399c3a4f252f8f9b95fc7f56e0f9989",
      "date": "2026-09-04",
      "subject": "perf(顶栏): 辅助栏仅在位置与内容变化时重排",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/idle/KawaiiBarLayout.kt"
      ],
      "document": "features/kawaii-bar.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "工具栏"
    },
    {
      "sha": "121badf54b35c46ca36b7142d73cfbc9c5abc9fe",
      "date": "2026-09-04",
      "subject": "perf(候选栏): 增量刷新，去除递归 view.post",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/CandidatesView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateViewAdapter.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "ba5f52bd16896fe0c718694d267aadc152d41d38",
      "date": "2026-09-04",
      "subject": "perf(键盘): textKeys 缓存化，不再全树遍历",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboard.kt"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "a5a81fc0924f6233625ae7ec702af462839fe214",
      "date": "2026-09-04",
      "subject": "perf(布局编辑器): 行 chip 复用，局部刷新替代全行重建",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/KeyboardLayoutAdapter.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "4eb18ea2bc1400e6a16d93397c5f480e79dd7237",
      "date": "2026-09-04",
      "subject": "fix(顶栏): ButtonsBarUi 以稳定 viewType 复用并去除 bind 自刷新",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/idle/ButtonsBarUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/idle/KawaiiBarLayout.kt"
      ],
      "document": "features/kawaii-bar.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "工具栏"
    },
    {
      "sha": "3bf2fcf86a2687fcee3ce7efd5cf2aa9612cbf45",
      "date": "2026-09-04",
      "subject": "perf(列表): 剪贴板分词与更新资产列表改为局部 notify",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/clipboard/TokenizedClipboardAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateAssetAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateCheckActivity.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "02d3da7e9a6c4155eaa2a652d34623a55a8dc631",
      "date": "2026-09-04",
      "subject": "fix(剪贴板同步): 前台服务 dataSync 类型与空闲降频不停摆",
      "phase": "inherited",
      "paths": [
        "app/src/main/AndroidManifest.xml",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt",
        "app/src/main/res/values-zh-rCN/strings_local.xml",
        "app/src/main/res/values/strings_local.xml"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "71dc6a8b8b2d717956f3c2fa0c15ecc24caea61b",
      "date": "2026-09-04",
      "subject": "fix(快捷磁贴): 真正启动/停止同步服务",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/service/QuickSyncTileService.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "ae4b8d77628115c8a9cb6fa8b626e9c89a6152ec",
      "date": "2026-09-04",
      "subject": "perf(剪贴板同步): 接收过滤缓存化，不逐条重建",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/SyncFilterPrefs.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "aba1c7904a4a4974a0c54cbe270dca9dd4f0d433",
      "date": "2026-09-04",
      "subject": "fix(剪贴板同步): 网络栈超时、取消语义与 PBKDF2 参数",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/network/ClipCascadeClient.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/network/Models.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/network/SyncClient.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "7b4dfe80365a614cf88e5fa76a88f1dd3898dc42",
      "date": "2026-09-04",
      "subject": "perf(更新器): MediaStore 查询限定范围并按时间排序",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateCheckActivity.kt"
      ],
      "document": "features/update-checker.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "更新下载"
    },
    {
      "sha": "a8d1413c1efc8f9bf9064211e52c8d71f158bcce",
      "date": "2026-09-04",
      "subject": "fix(签名校验): 包签名比对兼容 API 23~27",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxRemoteService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/data/DataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/PackageSignatures.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "77ad8677250515b4c51e49be53391978c0e2e3b0",
      "date": "2026-09-04",
      "subject": "fix(剪贴板同步): 传输按上限流式读取，解码前先过滤尺寸",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/network/SyncClient.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "c2fb5166eb8fee74f1828a3239ebcabb5a4b8f55",
      "date": "2026-09-04",
      "subject": "fix(引擎守护): FcitxDaemon 不再用 CancellationException 表示断连",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/daemon/FcitxDaemon.kt"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "4019829c266334d6b32808e529886f49d298f179",
      "date": "2026-09-04",
      "subject": "fix(图标主题): ZIP 导入流式处理并设条目与总量上限",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/IconThemeManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/icon/IconThemeEditorActivity.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "8bb0b3472863b80d33e189930344e6b542a1b478",
      "date": "2026-09-04",
      "subject": "perf(布局编辑器): 键盘预览走独立布局通道，不再清空全局缓存",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/preview/KeyboardPreviewManager.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "23d9d88b74c3b71c313d30229659245aa5b8e6a4",
      "date": "2026-09-04",
      "subject": "fix(顶栏按钮面板): 视图树随 InputView 生命周期绑定",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/status/ButtonsAdjustingWindow.kt"
      ],
      "document": "features/kawaii-bar.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "工具栏"
    },
    {
      "sha": "3e3878e0036457a95b56c31c0b3c939c37b614e5",
      "date": "2026-09-04",
      "subject": "fix(分享导入): 7z 导入加 SDK 守卫，避开 desugar 缺失的 nio",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/ShareReceiveManager.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "9a53a38a5a638e5463cac3a37f44933b4f6a1f03",
      "date": "2026-09-04",
      "subject": "fix(布局分享): 二维码长图分片数超限时可导回",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/share/JsonFileQrShareManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/share/LayoutQrBitmapUtil.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "cec6b842e9828680965a4e14bacef2f31b557786",
      "date": "2026-09-04",
      "subject": "ci: 插件构建使用本 fork 的 applicationId",
      "phase": "inherited",
      "paths": [
        ".github/workflows/ci.yml",
        ".github/workflows/nix.yml",
        ".github/workflows/pull_request.yml",
        "build-logic/convention/src/main/kotlin/AndroidPluginAppConventionPlugin.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "82303918536c1b03ee7316e127dec23f597938d1",
      "date": "2026-09-04",
      "subject": "fix(剪贴板同步): 测试连接期间旋屏/返回不再崩溃",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/ui/SettingsActivity.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "9cd45d79c7bf00d2983db4225c3fda0603b39255",
      "date": "2026-09-04",
      "subject": "fix(剪贴板同步): 前台通知、状态落盘与网络栈超时/取消的审查收尾",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/SyncStateStore.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/network/ClipCascadeClient.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/network/SyncClient.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "43226d17f792b969449bbde957393449b22a1baf",
      "date": "2026-09-04",
      "subject": "fix(语音输入): 队列切换丢包与重复就绪竞态；键盘组合态与断连崩溃兜底",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/BaseInputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/VoiceInputProviderManager.kt"
      ],
      "document": "features/voice-input.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "语音"
    },
    {
      "sha": "1470576fbdf42ebda51206044952558cb5002e6f",
      "date": "2026-09-04",
      "subject": "fix(布局编辑器): 草稿恢复补辅助栏与 profile 校验，旋转预览与拖拽索引兜底",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/DraggableFlowLayout.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/PopupEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDataManager.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "b3612cb3224f9299a7d40684abdb63b29ece4bfd",
      "date": "2026-09-04",
      "subject": "test(剪贴板同步): base64 尺寸估算抽成纯函数并补 7 例单测",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/Base64Payload.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/clipboardsync/Base64PayloadTest.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "dc08c2a970484126508a40850ee22e85c5afc133",
      "date": "2026-09-04",
      "subject": "fix(剪贴板同步): 前台状态更新幂等，避免重复投递通知与误清 foregroundActive",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/SyncStateStore.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "ffc6e4c1ac1d5c3c1ec23bc4f96ec73fc7efd0c8",
      "date": "2026-09-04",
      "subject": "fix(输入法服务): 事件流断连兜底只捕获 FcitxDisconnectedException",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "6719825624392f2b951c8d64408cea0b2643b84d",
      "date": "2026-09-05",
      "subject": "ci: 移除 nightly release 与 mainline 构建任务",
      "phase": "inherited",
      "paths": [
        ".github/workflows/ci.yml"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "b1bba67b388a76a9489bd4aea27aba42074ca944",
      "date": "2026-09-05",
      "subject": "refactor(插件): 删除 9 个其他语言/功能插件模块",
      "phase": "inherited",
      "paths": [
        ".gitmodules",
        "plugin/anthy/build.gradle.kts",
        "plugin/anthy/licenses/libraries/anthy-unicode.json",
        "plugin/anthy/licenses/libraries/fcitx5-anthy.json",
        "plugin/anthy/proguard-rules.pro",
        "plugin/anthy/src/main/AndroidManifest.xml",
        "plugin/anthy/src/main/cpp/CMakeLists.txt",
        "plugin/anthy/src/main/cpp/anthy-cmake",
        "plugin/anthy/src/main/cpp/anthy-unicode.conf",
        "plugin/anthy/src/main/cpp/fcitx5-anthy",
        "plugin/anthy/src/main/play/listings/en-US/graphics/icon/icon.png",
        "plugin/anthy/src/main/play/listings/en-US/short-description.txt",
        "plugin/anthy/src/main/play/listings/en-US/title.txt",
        "plugin/anthy/src/main/play/listings/ru/short-description.txt",
        "plugin/anthy/src/main/play/listings/ru/title.txt",
        "plugin/anthy/src/main/play/listings/zh-CN/short-description.txt",
        "plugin/anthy/src/main/play/listings/zh-CN/title.txt",
        "plugin/anthy/src/main/res/drawable-hdpi/ic_launcher_foreground.png",
        "plugin/anthy/src/main/res/drawable-mdpi/ic_launcher_foreground.png",
        "plugin/anthy/src/main/res/drawable-xhdpi/ic_launcher_foreground.png",
        "plugin/anthy/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png",
        "plugin/anthy/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png",
        "plugin/anthy/src/main/res/drawable/ic_launcher_background.xml",
        "plugin/anthy/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
        "plugin/anthy/src/main/res/mipmap-hdpi/ic_launcher.png",
        "plugin/anthy/src/main/res/mipmap-mdpi/ic_launcher.png",
        "plugin/anthy/src/main/res/mipmap-xhdpi/ic_launcher.png",
        "plugin/anthy/src/main/res/mipmap-xxhdpi/ic_launcher.png",
        "plugin/anthy/src/main/res/mipmap-xxxhdpi/ic_launcher.png",
        "plugin/anthy/src/main/res/values-es/strings.xml",
        "plugin/anthy/src/main/res/values-ru/strings.xml",
        "plugin/anthy/src/main/res/values-zh-rCN/strings.xml",
        "plugin/anthy/src/main/res/values-zh-rTW/strings.xml",
        "plugin/anthy/src/main/res/values/strings.xml",
        "plugin/anthy/src/main/res/xml/plugin.xml",
        "plugin/anthy/src/main/res/xml/plugin_resources_keep.xml",
        "plugin/chewing/build.gradle.kts",
        "plugin/chewing/licenses/libraries/fcitx5-chewing.json",
        "plugin/chewing/licenses/libraries/libchewing.json",
        "plugin/chewing/proguard-rules.pro",
        "plugin/chewing/src/main/AndroidManifest.xml",
        "plugin/chewing/src/main/cpp/CMakeLists.txt",
        "plugin/chewing/src/main/cpp/fcitx5-chewing",
        "plugin/chewing/src/main/play/listings/en-US/graphics/icon/icon.png",
        "plugin/chewing/src/main/play/listings/en-US/short-description.txt",
        "plugin/chewing/src/main/play/listings/en-US/title.txt",
        "plugin/chewing/src/main/play/listings/ru/short-description.txt",
        "plugin/chewing/src/main/play/listings/ru/title.txt",
        "plugin/chewing/src/main/play/listings/zh-CN/short-description.txt",
        "plugin/chewing/src/main/play/listings/zh-CN/title.txt",
        "plugin/chewing/src/main/res/drawable-hdpi/ic_launcher_foreground.png",
        "plugin/chewing/src/main/res/drawable-mdpi/ic_launcher_foreground.png",
        "plugin/chewing/src/main/res/drawable-xhdpi/ic_launcher_foreground.png",
        "plugin/chewing/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png",
        "plugin/chewing/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png",
        "plugin/chewing/src/main/res/drawable/ic_launcher_background.xml",
        "plugin/chewing/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
        "plugin/chewing/src/main/res/mipmap-hdpi/ic_launcher.png",
        "plugin/chewing/src/main/res/mipmap-mdpi/ic_launcher.png",
        "plugin/chewing/src/main/res/mipmap-xhdpi/ic_launcher.png",
        "plugin/chewing/src/main/res/mipmap-xxhdpi/ic_launcher.png",
        "plugin/chewing/src/main/res/mipmap-xxxhdpi/ic_launcher.png",
        "plugin/chewing/src/main/res/values-ru/strings.xml",
        "plugin/chewing/src/main/res/values-zh-rCN/strings.xml",
        "plugin/chewing/src/main/res/values-zh-rTW/strings.xml",
        "plugin/chewing/src/main/res/values/strings.xml",
        "plugin/chewing/src/main/res/xml/plugin.xml",
        "plugin/chewing/src/main/res/xml/plugin_resources_keep.xml",
        "plugin/clipboard-filter/ClearURLsRules",
        "plugin/clipboard-filter/build.gradle.kts",
        "plugin/clipboard-filter/licenses/libraries/rules.json",
        "plugin/clipboard-filter/proguard-rules.pro",
        "plugin/clipboard-filter/src/main/AndroidManifest.xml",
        "plugin/clipboard-filter/src/main/java/org/fcitx/fcitx5/android/plugin/clipboard_filter/ClearURLs.kt",
        "plugin/clipboard-filter/src/main/java/org/fcitx/fcitx5/android/plugin/clipboard_filter/MainService.kt",
        "plugin/clipboard-filter/src/main/java/org/fcitx/fcitx5/android/plugin/clipboard_filter/RegexSerializer.kt",
        "plugin/clipboard-filter/src/main/play/listings/en-US/graphics/icon/icon.png",
        "plugin/clipboard-filter/src/main/play/listings/en-US/short-description.txt",
        "plugin/clipboard-filter/src/main/play/listings/en-US/title.txt",
        "plugin/clipboard-filter/src/main/play/listings/ru/short-description.txt",
        "plugin/clipboard-filter/src/main/play/listings/ru/title.txt",
        "plugin/clipboard-filter/src/main/play/listings/zh-CN/short-description.txt",
        "plugin/clipboard-filter/src/main/play/listings/zh-CN/title.txt",
        "plugin/clipboard-filter/src/main/res/drawable-hdpi/ic_launcher_foreground.png",
        "plugin/clipboard-filter/src/main/res/drawable-mdpi/ic_launcher_foreground.png",
        "plugin/clipboard-filter/src/main/res/drawable-xhdpi/ic_launcher_foreground.png",
        "plugin/clipboard-filter/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png",
        "plugin/clipboard-filter/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png",
        "plugin/clipboard-filter/src/main/res/drawable/ic_launcher_background.xml",
        "plugin/clipboard-filter/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
        "plugin/clipboard-filter/src/main/res/mipmap-hdpi/ic_launcher.png",
        "plugin/clipboard-filter/src/main/res/mipmap-mdpi/ic_launcher.png",
        "plugin/clipboard-filter/src/main/res/mipmap-xhdpi/ic_launcher.png",
        "plugin/clipboard-filter/src/main/res/mipmap-xxhdpi/ic_launcher.png",
        "plugin/clipboard-filter/src/main/res/mipmap-xxxhdpi/ic_launcher.png",
        "plugin/clipboard-filter/src/main/res/values-es/strings.xml",
        "plugin/clipboard-filter/src/main/res/values-ru/strings.xml",
        "plugin/clipboard-filter/src/main/res/values-zh-rCN/strings.xml",
        "plugin/clipboard-filter/src/main/res/values-zh-rTW/strings.xml",
        "plugin/clipboard-filter/src/main/res/values/strings.xml",
        "plugin/clipboard-filter/src/main/res/xml/plugin.xml",
        "plugin/clipboard-filter/src/main/res/xml/plugin_resources_keep.xml",
        "plugin/hangul/build.gradle.kts",
        "plugin/hangul/licenses/libraries/fcitx5-hangul.json",
        "plugin/hangul/licenses/libraries/libhangul.json",
        "plugin/hangul/proguard-rules.pro",
        "plugin/hangul/src/main/AndroidManifest.xml",
        "plugin/hangul/src/main/cpp/CMakeLists.txt",
        "plugin/hangul/src/main/cpp/fcitx5-hangul",
        "plugin/hangul/src/main/play/listings/en-US/graphics/icon/icon.png",
        "plugin/hangul/src/main/play/listings/en-US/short-description.txt",
        "plugin/hangul/src/main/play/listings/en-US/title.txt",
        "plugin/hangul/src/main/play/listings/ru/short-description.txt",
        "plugin/hangul/src/main/play/listings/ru/title.txt",
        "plugin/hangul/src/main/play/listings/zh-CN/short-description.txt",
        "plugin/hangul/src/main/play/listings/zh-CN/title.txt",
        "plugin/hangul/src/main/res/drawable-hdpi/ic_launcher_foreground.png",
        "plugin/hangul/src/main/res/drawable-mdpi/ic_launcher_foreground.png",
        "plugin/hangul/src/main/res/drawable-xhdpi/ic_launcher_foreground.png",
        "plugin/hangul/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png",
        "plugin/hangul/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png",
        "plugin/hangul/src/main/res/drawable/ic_launcher_background.xml",
        "plugin/hangul/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
        "plugin/hangul/src/main/res/mipmap-hdpi/ic_launcher.png",
        "plugin/hangul/src/main/res/mipmap-mdpi/ic_launcher.png",
        "plugin/hangul/src/main/res/mipmap-xhdpi/ic_launcher.png",
        "plugin/hangul/src/main/res/mipmap-xxhdpi/ic_launcher.png",
        "plugin/hangul/src/main/res/mipmap-xxxhdpi/ic_launcher.png",
        "plugin/hangul/src/main/res/values-ru/strings.xml",
        "plugin/hangul/src/main/res/values-zh-rCN/strings.xml",
        "plugin/hangul/src/main/res/values-zh-rTW/strings.xml",
        "plugin/hangul/src/main/res/values/strings.xml",
        "plugin/hangul/src/main/res/xml/plugin.xml",
        "plugin/hangul/src/main/res/xml/plugin_resources_keep.xml",
        "plugin/jyutping/build.gradle.kts",
        "plugin/jyutping/licenses/libraries/libime-jyutping.json",
        "plugin/jyutping/proguard-rules.pro",
        "plugin/jyutping/src/main/AndroidManifest.xml",
        "plugin/jyutping/src/main/cpp/CMakeLists.txt",
        "plugin/jyutping/src/main/cpp/libime-jyutping",
        "plugin/jyutping/src/main/play/listings/en-US/graphics/icon/icon.png",
        "plugin/jyutping/src/main/play/listings/en-US/short-description.txt",
        "plugin/jyutping/src/main/play/listings/en-US/title.txt",
        "plugin/jyutping/src/main/play/listings/ru/short-description.txt",
        "plugin/jyutping/src/main/play/listings/ru/title.txt",
        "plugin/jyutping/src/main/play/listings/zh-CN/short-description.txt",
        "plugin/jyutping/src/main/play/listings/zh-CN/title.txt",
        "plugin/jyutping/src/main/res/drawable-hdpi/ic_launcher_foreground.png",
        "plugin/jyutping/src/main/res/drawable-mdpi/ic_launcher_foreground.png",
        "plugin/jyutping/src/main/res/drawable-xhdpi/ic_launcher_foreground.png",
        "plugin/jyutping/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png",
        "plugin/jyutping/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png",
        "plugin/jyutping/src/main/res/drawable/ic_launcher_background.xml",
        "plugin/jyutping/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
        "plugin/jyutping/src/main/res/mipmap-hdpi/ic_launcher.png",
        "plugin/jyutping/src/main/res/mipmap-mdpi/ic_launcher.png",
        "plugin/jyutping/src/main/res/mipmap-xhdpi/ic_launcher.png",
        "plugin/jyutping/src/main/res/mipmap-xxhdpi/ic_launcher.png",
        "plugin/jyutping/src/main/res/mipmap-xxxhdpi/ic_launcher.png",
        "plugin/jyutping/src/main/res/values-ru/strings.xml",
        "plugin/jyutping/src/main/res/values-zh-rCN/strings.xml",
        "plugin/jyutping/src/main/res/values-zh-rTW/strings.xml",
        "plugin/jyutping/src/main/res/values/strings.xml",
        "plugin/jyutping/src/main/res/xml/plugin.xml",
        "plugin/jyutping/src/main/res/xml/plugin_resources_keep.xml",
        "plugin/sayura/build.gradle.kts",
        "plugin/sayura/licenses/libraries/fcitx5-sayura.json",
        "plugin/sayura/proguard-rules.pro",
        "plugin/sayura/src/main/AndroidManifest.xml",
        "plugin/sayura/src/main/cpp/CMakeLists.txt",
        "plugin/sayura/src/main/cpp/fcitx5-sayura",
        "plugin/sayura/src/main/play/listings/en-US/graphics/icon/icon.png",
        "plugin/sayura/src/main/play/listings/en-US/short-description.txt",
        "plugin/sayura/src/main/play/listings/en-US/title.txt",
        "plugin/sayura/src/main/play/listings/ru/short-description.txt",
        "plugin/sayura/src/main/play/listings/ru/title.txt",
        "plugin/sayura/src/main/play/listings/zh-CN/short-description.txt",
        "plugin/sayura/src/main/play/listings/zh-CN/title.txt",
        "plugin/sayura/src/main/res/drawable-hdpi/ic_launcher_foreground.png",
        "plugin/sayura/src/main/res/drawable-mdpi/ic_launcher_foreground.png",
        "plugin/sayura/src/main/res/drawable-xhdpi/ic_launcher_foreground.png",
        "plugin/sayura/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png",
        "plugin/sayura/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png",
        "plugin/sayura/src/main/res/drawable/ic_launcher_background.xml",
        "plugin/sayura/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
        "plugin/sayura/src/main/res/mipmap-hdpi/ic_launcher.png",
        "plugin/sayura/src/main/res/mipmap-mdpi/ic_launcher.png",
        "plugin/sayura/src/main/res/mipmap-xhdpi/ic_launcher.png",
        "plugin/sayura/src/main/res/mipmap-xxhdpi/ic_launcher.png",
        "plugin/sayura/src/main/res/mipmap-xxxhdpi/ic_launcher.png",
        "plugin/sayura/src/main/res/values-ru/strings.xml",
        "plugin/sayura/src/main/res/values-zh-rCN/strings.xml",
        "plugin/sayura/src/main/res/values-zh-rTW/strings.xml",
        "plugin/sayura/src/main/res/values/strings.xml",
        "plugin/sayura/src/main/res/xml/plugin.xml",
        "plugin/sayura/src/main/res/xml/plugin_resources_keep.xml",
        "plugin/text-editor/build.gradle.kts",
        "plugin/text-editor/language-textmate/build.gradle.kts",
        "plugin/text-editor/language-textmate/consumer-rules.pro",
        "plugin/text-editor/language-textmate/proguard-rules.pro",
        "plugin/text-editor/language-textmate/src/main/AndroidManifest.xml",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/MyState.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/TextMateAnalyzer.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/TextMateColorScheme.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/TextMateLanguage.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/TextMateNewlineHandler.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/TextMateSymbolPairMatch.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/folding/FoldingHelper.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/folding/FoldingRegion.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/folding/FoldingRegions.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/folding/IndentRange.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/folding/PreviousRegion.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/folding/RangesCollector.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/registry/FileProviderRegistry.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/registry/GrammarRegistry.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/registry/ThemeRegistry.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/registry/dsl/GrammarDefinitionDSL.kt",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/registry/model/DefaultGrammarDefinition.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/registry/model/GrammarDefinition.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/registry/model/ThemeModel.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/registry/provider/AssetsFileResolver.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/registry/provider/FileResolver.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/registry/reader/LanguageDefinitionReader.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/utils/MatcherUtils.java",
        "plugin/text-editor/language-textmate/src/main/java/io/github/rosemoe/sora/langs/textmate/utils/StringUtils.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/TMException.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/grammar/IGrammar.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/grammar/IStateStack.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/grammar/IToken.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/grammar/ITokenizeLineResult.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/AttributedScopeStack.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/BalancedBracketSelectors.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/BasicScopeAttributes.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/BasicScopeAttributesProvider.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/Grammar.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/Injection.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/LineTokenizer.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/LineTokens.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/ScopeStack.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/StateStack.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/TokenTypeMatcher.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/TokenizeLineResult.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/dependencies/AbsoluteRuleReference.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/dependencies/IncludeReference.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/dependencies/ScopeDependencyProcessor.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/IRawCaptures.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/IRawGrammar.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/IRawRepository.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/IRawRule.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/RawCaptures.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/RawGrammar.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/RawGrammarReader.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/RawRepository.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/RawRule.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/tokenattrs/EncodedTokenAttributes.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/tokenattrs/EncodedTokenDataConsts.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/tokenattrs/OptionalStandardTokenType.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/tokenattrs/StandardTokenType.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/matcher/Matcher.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/matcher/MatcherBuilder.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/matcher/MatcherWithPriority.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/matcher/NameMatcher.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/OnigCaptureIndex.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/OnigRegExp.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/OnigResult.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/OnigScanner.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/OnigScannerMatch.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/OnigSearcher.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/OnigString.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/parser/PropertySettable.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/parser/TMParser.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/parser/TMParserJSON.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/parser/TMParserPList.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/parser/TMParserPropertyPath.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/parser/TMParserYAML.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/registry/IGrammarRepository.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/registry/IThemeProvider.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/registry/SyncRegistry.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/BeginEndRule.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/BeginWhileRule.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/CaptureRule.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/CompilePatternsResult.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/CompiledRule.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/IGrammarRegistry.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/IRuleFactoryHelper.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/IRuleRegistry.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/IncludeOnlyRule.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/MatchRule.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/RegExpSource.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/RegExpSourceList.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/Rule.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/RuleFactory.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/RuleId.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/ColorMap.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/FontStyle.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/IThemeSetting.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/ParsedThemeRule.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/StyleAttributes.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/Theme.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/ThemeTrieElement.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/ThemeTrieElementRule.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/raw/IRawTheme.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/raw/IRawThemeSetting.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/raw/RawTheme.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/raw/RawThemeReader.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/utils/AbstractListeners.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/utils/MoreCollections.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/utils/NullSafetyHelper.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/utils/ObjectCloner.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/utils/RegexSource.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/utils/ScopeNames.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/utils/StringUtils.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/registry/IGrammarConfiguration.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/registry/IGrammarSource.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/registry/IRegistryOptions.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/registry/IThemeSource.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/registry/Registry.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/AutoClosingPair.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/AutoClosingPairConditional.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/CharacterPair.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/CommentRule.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/CompleteEnterAction.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/EnterAction.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/FoldingRules.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/IndentForEnter.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/IndentationRules.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/LanguageConfiguration.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/OnEnterRule.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/RegExPattern.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/supports/CharacterPairSupport.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/supports/CommentSupport.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/supports/IndentRulesSupport.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/supports/OnEnterSupport.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/utils/RegExpUtils.java",
        "plugin/text-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/utils/TextUtils.java",
        "plugin/text-editor/proguard-rules.pro",
        "plugin/text-editor/src/main/AndroidManifest.xml",
        "plugin/text-editor/src/main/extra-assets/textmate/grammars/ini.tmLanguage.json",
        "plugin/text-editor/src/main/extra-assets/textmate/grammars/json.tmLanguage.json",
        "plugin/text-editor/src/main/extra-assets/textmate/grammars/lua.tmLanguage.json",
        "plugin/text-editor/src/main/extra-assets/textmate/grammars/markdown.tmLanguage.json",
        "plugin/text-editor/src/main/extra-assets/textmate/grammars/shell.tmLanguage.json",
        "plugin/text-editor/src/main/extra-assets/textmate/grammars/yaml.tmLanguage.json",
        "plugin/text-editor/src/main/extra-assets/textmate/languages.json",
        "plugin/text-editor/src/main/extra-assets/textmate/themes/darcula.json",
        "plugin/text-editor/src/main/extra-assets/textmate/themes/quietlight.json",
        "plugin/text-editor/src/main/java/org/fcitx/fcitx5/android/plugin/text_editor/ArrowTabCodeEditor.kt",
        "plugin/text-editor/src/main/java/org/fcitx/fcitx5/android/plugin/text_editor/ArrowTabEditorRenderer.kt",
        "plugin/text-editor/src/main/java/org/fcitx/fcitx5/android/plugin/text_editor/EditorOptionsActivity.kt",
        "plugin/text-editor/src/main/java/org/fcitx/fcitx5/android/plugin/text_editor/EditorTab.kt",
        "plugin/text-editor/src/main/java/org/fcitx/fcitx5/android/plugin/text_editor/FileBrowserActivity.kt",
        "plugin/text-editor/src/main/java/org/fcitx/fcitx5/android/plugin/text_editor/FontFallbackAdapter.kt",
        "plugin/text-editor/src/main/java/org/fcitx/fcitx5/android/plugin/text_editor/FontLoader.kt",
        "plugin/text-editor/src/main/java/org/fcitx/fcitx5/android/plugin/text_editor/TabBarAdapter.kt",
        "plugin/text-editor/src/main/java/org/fcitx/fcitx5/android/plugin/text_editor/TextFileEditActivity.kt",
        "plugin/text-editor/src/main/java/org/fcitx/fcitx5/android/plugin/text_editor/TextFileSupport.kt",
        "plugin/text-editor/src/main/java/org/fcitx/fcitx5/android/plugin/text_editor/TextMateSetup.kt",
        "plugin/text-editor/src/main/java/org/fcitx/fcitx5/android/plugin/text_editor/WideIdentifierTextMateLanguage.kt",
        "plugin/text-editor/src/main/res/drawable-hdpi/ic_launcher_foreground.png",
        "plugin/text-editor/src/main/res/drawable-mdpi/ic_launcher_foreground.png",
        "plugin/text-editor/src/main/res/drawable-xhdpi/ic_launcher_foreground.png",
        "plugin/text-editor/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png",
        "plugin/text-editor/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png",
        "plugin/text-editor/src/main/res/drawable/bg_search_toggle.xml",
        "plugin/text-editor/src/main/res/drawable/ic_drag_handle.xml",
        "plugin/text-editor/src/main/res/drawable/ic_launcher_background.xml",
        "plugin/text-editor/src/main/res/layout/activity_editor_options.xml",
        "plugin/text-editor/src/main/res/layout/activity_file_browser.xml",
        "plugin/text-editor/src/main/res/layout/activity_text_file_edit.xml",
        "plugin/text-editor/src/main/res/layout/item_editor_tab.xml",
        "plugin/text-editor/src/main/res/layout/item_file_entry.xml",
        "plugin/text-editor/src/main/res/layout/item_font_entry.xml",
        "plugin/text-editor/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
        "plugin/text-editor/src/main/res/mipmap-hdpi/ic_launcher.png",
        "plugin/text-editor/src/main/res/mipmap-mdpi/ic_launcher.png",
        "plugin/text-editor/src/main/res/mipmap-xhdpi/ic_launcher.png",
        "plugin/text-editor/src/main/res/mipmap-xxhdpi/ic_launcher.png",
        "plugin/text-editor/src/main/res/mipmap-xxxhdpi/ic_launcher.png",
        "plugin/text-editor/src/main/res/values-es/strings.xml",
        "plugin/text-editor/src/main/res/values-ru/strings.xml",
        "plugin/text-editor/src/main/res/values-zh-rCN/strings.xml",
        "plugin/text-editor/src/main/res/values-zh-rTW/strings.xml",
        "plugin/text-editor/src/main/res/values/strings.xml",
        "plugin/text-editor/src/main/res/values/themes.xml",
        "plugin/text-editor/src/main/res/xml/plugin.xml",
        "plugin/thai/build.gradle.kts",
        "plugin/thai/licenses/libraries/fcitx5-libthai.json",
        "plugin/thai/licenses/libraries/libiconv.json",
        "plugin/thai/licenses/libraries/libthai.json",
        "plugin/thai/proguard-rules.pro",
        "plugin/thai/src/main/AndroidManifest.xml",
        "plugin/thai/src/main/cpp/CMakeLists.txt",
        "plugin/thai/src/main/cpp/fcitx5-libthai",
        "plugin/thai/src/main/play/listings/en-US/graphics/icon/icon.png",
        "plugin/thai/src/main/play/listings/en-US/short-description.txt",
        "plugin/thai/src/main/play/listings/en-US/title.txt",
        "plugin/thai/src/main/play/listings/ru/short-description.txt",
        "plugin/thai/src/main/play/listings/ru/title.txt",
        "plugin/thai/src/main/res/drawable-hdpi/ic_launcher_foreground.png",
        "plugin/thai/src/main/res/drawable-mdpi/ic_launcher_foreground.png",
        "plugin/thai/src/main/res/drawable-xhdpi/ic_launcher_foreground.png",
        "plugin/thai/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png",
        "plugin/thai/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png",
        "plugin/thai/src/main/res/drawable/ic_launcher_background.xml",
        "plugin/thai/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
        "plugin/thai/src/main/res/mipmap-hdpi/ic_launcher.png",
        "plugin/thai/src/main/res/mipmap-mdpi/ic_launcher.png",
        "plugin/thai/src/main/res/mipmap-xhdpi/ic_launcher.png",
        "plugin/thai/src/main/res/mipmap-xxhdpi/ic_launcher.png",
        "plugin/thai/src/main/res/mipmap-xxxhdpi/ic_launcher.png",
        "plugin/thai/src/main/res/values/strings.xml",
        "plugin/thai/src/main/res/xml/plugin.xml",
        "plugin/thai/src/main/res/xml/plugin_resources_keep.xml",
        "plugin/unikey/build.gradle.kts",
        "plugin/unikey/licenses/libraries/fcitx5-unikey.json",
        "plugin/unikey/proguard-rules.pro",
        "plugin/unikey/src/main/AndroidManifest.xml",
        "plugin/unikey/src/main/cpp/CMakeLists.txt",
        "plugin/unikey/src/main/cpp/fcitx5-unikey",
        "plugin/unikey/src/main/play/listings/en-US/graphics/icon/icon.png",
        "plugin/unikey/src/main/play/listings/en-US/short-description.txt",
        "plugin/unikey/src/main/play/listings/en-US/title.txt",
        "plugin/unikey/src/main/play/listings/ru/short-description.txt",
        "plugin/unikey/src/main/play/listings/ru/title.txt",
        "plugin/unikey/src/main/play/listings/zh-CN/short-description.txt",
        "plugin/unikey/src/main/play/listings/zh-CN/title.txt",
        "plugin/unikey/src/main/res/drawable-hdpi/ic_launcher_foreground.png",
        "plugin/unikey/src/main/res/drawable-mdpi/ic_launcher_foreground.png",
        "plugin/unikey/src/main/res/drawable-xhdpi/ic_launcher_foreground.png",
        "plugin/unikey/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png",
        "plugin/unikey/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png",
        "plugin/unikey/src/main/res/drawable/ic_launcher_background.xml",
        "plugin/unikey/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
        "plugin/unikey/src/main/res/mipmap-hdpi/ic_launcher.png",
        "plugin/unikey/src/main/res/mipmap-mdpi/ic_launcher.png",
        "plugin/unikey/src/main/res/mipmap-xhdpi/ic_launcher.png",
        "plugin/unikey/src/main/res/mipmap-xxhdpi/ic_launcher.png",
        "plugin/unikey/src/main/res/mipmap-xxxhdpi/ic_launcher.png",
        "plugin/unikey/src/main/res/values-ru/strings.xml",
        "plugin/unikey/src/main/res/values-zh-rCN/strings.xml",
        "plugin/unikey/src/main/res/values-zh-rTW/strings.xml",
        "plugin/unikey/src/main/res/values/strings.xml",
        "plugin/unikey/src/main/res/xml/plugin.xml",
        "plugin/unikey/src/main/res/xml/plugin_resources_keep.xml",
        "settings.gradle.kts"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "a5a75db48b30f0dffe067e23cc6277dfb859e80e",
      "date": "2026-09-05",
      "subject": "refactor(构建): 移除 mainline flavor 及任务别名/APK 兼容拷贝",
      "phase": "inherited",
      "paths": [
        ".github/workflows/ci.yml",
        "app/build.gradle.kts",
        "app/src/main/java/org/fcitx/fcitx5/android/data/UserDataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/config/ButtonIconFile.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/AppUtil.kt",
        "app/src/main/res/values-de/strings.xml",
        "app/src/main/res/values-es/strings.xml",
        "app/src/main/res/values-ja/strings.xml",
        "app/src/main/res/values-ko/strings.xml",
        "app/src/main/res/values-ru/strings.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "2215cc235a1dba6c8acc52a58f049cc4e7379086",
      "date": "2026-09-05",
      "subject": "ci: 删除个人 fork 无用的 workflow（fdroid/pull_request/nix/publish）",
      "phase": "inherited",
      "paths": [
        ".github/workflows/fdroid.yml",
        ".github/workflows/nix.yml",
        ".github/workflows/publish.yml",
        ".github/workflows/pull_request.yml"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "7bc89b995b4fc28108dbbaaa94c053e9986f8c86",
      "date": "2026-09-05",
      "subject": "feat(rime): 将 fcitx5-rime 并入主 APK（librime 静态链接 + rime-data 资源 + opencc 软链）",
      "phase": "inherited",
      "paths": [
        "app/build.gradle.kts",
        "app/licenses/libraries/fcitx5-rime.json",
        "app/licenses/libraries/glog.json",
        "app/licenses/libraries/leveldb.json",
        "app/licenses/libraries/librime-lua.json",
        "app/licenses/libraries/librime-octagram.json",
        "app/licenses/libraries/librime-predict-leveldb.json",
        "app/licenses/libraries/librime.json",
        "app/licenses/libraries/marisa.json",
        "app/licenses/libraries/rime-essay.json",
        "app/licenses/libraries/rime-luna-pinyin.json",
        "app/licenses/libraries/rime-prelude.json",
        "app/licenses/libraries/rime-stroke.json",
        "app/licenses/libraries/yaml-cpp.json",
        "app/src/main/cpp/CMakeLists.txt",
        "app/src/main/cpp/native-lib.cpp",
        "plugin/rime/build.gradle.kts",
        "plugin/rime/licenses/libraries/boost.json",
        "plugin/rime/licenses/libraries/lua.json",
        "plugin/rime/licenses/libraries/opencc.json",
        "plugin/rime/proguard-rules.pro",
        "plugin/rime/src/main/AndroidManifest.xml",
        "plugin/rime/src/main/play/listings/en-US/graphics/icon/icon.png",
        "plugin/rime/src/main/play/listings/en-US/short-description.txt",
        "plugin/rime/src/main/play/listings/en-US/title.txt",
        "plugin/rime/src/main/play/listings/ru/short-description.txt",
        "plugin/rime/src/main/play/listings/ru/title.txt",
        "plugin/rime/src/main/play/listings/zh-CN/short-description.txt",
        "plugin/rime/src/main/play/listings/zh-CN/title.txt",
        "plugin/rime/src/main/res/drawable-hdpi/ic_launcher_foreground.png",
        "plugin/rime/src/main/res/drawable-mdpi/ic_launcher_foreground.png",
        "plugin/rime/src/main/res/drawable-xhdpi/ic_launcher_foreground.png",
        "plugin/rime/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png",
        "plugin/rime/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png",
        "plugin/rime/src/main/res/drawable/ic_launcher_background.xml",
        "plugin/rime/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
        "plugin/rime/src/main/res/mipmap-hdpi/ic_launcher.png",
        "plugin/rime/src/main/res/mipmap-mdpi/ic_launcher.png",
        "plugin/rime/src/main/res/mipmap-xhdpi/ic_launcher.png",
        "plugin/rime/src/main/res/mipmap-xxhdpi/ic_launcher.png",
        "plugin/rime/src/main/res/mipmap-xxxhdpi/ic_launcher.png",
        "plugin/rime/src/main/res/values-ru/strings.xml",
        "plugin/rime/src/main/res/values-zh-rCN/strings.xml",
        "plugin/rime/src/main/res/values-zh-rTW/strings.xml",
        "plugin/rime/src/main/res/values/strings.xml",
        "plugin/rime/src/main/res/xml/plugin.xml",
        "plugin/rime/src/main/res/xml/plugin_resources_keep.xml",
        "prepare_personal_build.sh",
        "settings.gradle.kts",
        "transifex-config.ini"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "16d5444d8e5e3b605e96e6057888c6f728bd87d9",
      "date": "2026-09-05",
      "subject": "refactor(native): 删除内置拼音 native 链路（libime/pinyin/table/customphrase），保留 opencc",
      "phase": "inherited",
      "paths": [
        "app/src/main/cpp/CMakeLists.txt",
        "app/src/main/cpp/native-lib.cpp"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "c86c32c34ede046d299345498ac7e566084dece3",
      "date": "2026-09-05",
      "subject": "refactor(构建): 删除拼音相关 gradle 依赖与 lib 模块，CI 移除 plugins 构建",
      "phase": "inherited",
      "paths": [
        ".github/workflows/ci.yml",
        ".gitmodules",
        "app/build.gradle.kts",
        "app/licenses/libraries/boost.json",
        "app/licenses/libraries/fcitx5-chinese-addons.json",
        "app/licenses/libraries/fcitx5-lua.json",
        "app/licenses/libraries/libime.json",
        "app/licenses/libraries/zstd.json",
        "lib/fcitx5-chinese-addons/build.gradle.kts",
        "lib/fcitx5-chinese-addons/src/main/AndroidManifest.xml",
        "lib/fcitx5-chinese-addons/src/main/cpp/CMakeLists.txt",
        "lib/fcitx5-chinese-addons/src/main/cpp/cmake/FindFcitx5ModulePunctuation.cmake",
        "lib/fcitx5-chinese-addons/src/main/cpp/fcitx5-chinese-addons",
        "lib/fcitx5-lua/build.gradle.kts",
        "lib/fcitx5-lua/src/main/AndroidManifest.xml",
        "lib/fcitx5-lua/src/main/cpp/CMakeLists.txt",
        "lib/fcitx5-lua/src/main/cpp/cmake/FindFcitx5ModuleLuaAddonLoader.cmake",
        "lib/fcitx5-lua/src/main/cpp/fcitx5-lua",
        "lib/libime/build.gradle.kts",
        "lib/libime/src/main/AndroidManifest.xml",
        "lib/libime/src/main/cpp/CMakeLists.txt",
        "lib/libime/src/main/cpp/cmake/FindLibIMECore.cmake",
        "lib/libime/src/main/cpp/cmake/FindLibIMEPinyin.cmake",
        "lib/libime/src/main/cpp/cmake/FindLibIMETable.cmake",
        "lib/libime/src/main/cpp/libime",
        "plugin/pinyin-lm/build.gradle.kts",
        "plugin/pinyin-lm/proguard-rules.pro",
        "plugin/pinyin-lm/src/main/AndroidManifest.xml",
        "plugin/pinyin-lm/src/main/res/drawable-hdpi/ic_launcher_foreground.png",
        "plugin/pinyin-lm/src/main/res/drawable-mdpi/ic_launcher_foreground.png",
        "plugin/pinyin-lm/src/main/res/drawable-xhdpi/ic_launcher_foreground.png",
        "plugin/pinyin-lm/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png",
        "plugin/pinyin-lm/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png",
        "plugin/pinyin-lm/src/main/res/drawable/ic_launcher_background.xml",
        "plugin/pinyin-lm/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
        "plugin/pinyin-lm/src/main/res/mipmap-hdpi/ic_launcher.png",
        "plugin/pinyin-lm/src/main/res/mipmap-mdpi/ic_launcher.png",
        "plugin/pinyin-lm/src/main/res/mipmap-xhdpi/ic_launcher.png",
        "plugin/pinyin-lm/src/main/res/mipmap-xxhdpi/ic_launcher.png",
        "plugin/pinyin-lm/src/main/res/mipmap-xxxhdpi/ic_launcher.png",
        "plugin/pinyin-lm/src/main/res/values-ru/strings.xml",
        "plugin/pinyin-lm/src/main/res/values-zh-rCN/strings.xml",
        "plugin/pinyin-lm/src/main/res/values-zh-rTW/strings.xml",
        "plugin/pinyin-lm/src/main/res/values/strings.xml",
        "plugin/pinyin-lm/src/main/res/xml/plugin.xml",
        "plugin/table-data/build.gradle.kts",
        "plugin/table-data/proguard-rules.pro",
        "plugin/table-data/src/main/AndroidManifest.xml",
        "plugin/table-data/src/main/assets/usr/share/fcitx5/inputmethod/db.conf",
        "plugin/table-data/src/main/assets/usr/share/fcitx5/inputmethod/wbpy.conf",
        "plugin/table-data/src/main/assets/usr/share/fcitx5/inputmethod/wbx.conf",
        "plugin/table-data/src/main/assets/usr/share/fcitx5/inputmethod/zrm.conf",
        "plugin/table-data/src/main/res/drawable-hdpi/ic_launcher_foreground.png",
        "plugin/table-data/src/main/res/drawable-mdpi/ic_launcher_foreground.png",
        "plugin/table-data/src/main/res/drawable-xhdpi/ic_launcher_foreground.png",
        "plugin/table-data/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png",
        "plugin/table-data/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png",
        "plugin/table-data/src/main/res/drawable/ic_launcher_background.xml",
        "plugin/table-data/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
        "plugin/table-data/src/main/res/mipmap-hdpi/ic_launcher.png",
        "plugin/table-data/src/main/res/mipmap-mdpi/ic_launcher.png",
        "plugin/table-data/src/main/res/mipmap-xhdpi/ic_launcher.png",
        "plugin/table-data/src/main/res/mipmap-xxhdpi/ic_launcher.png",
        "plugin/table-data/src/main/res/mipmap-xxxhdpi/ic_launcher.png",
        "plugin/table-data/src/main/res/values-zh-rCN/strings.xml",
        "plugin/table-data/src/main/res/values-zh-rTW/strings.xml",
        "plugin/table-data/src/main/res/values/strings.xml",
        "plugin/table-data/src/main/res/xml/plugin.xml",
        "settings.gradle.kts"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "dcc1046f5b47351fc2fe5750020a502c5a0c26a2",
      "date": "2026-09-05",
      "subject": "refactor(设置): 移除拼音/码表 UI 与插件相关入口",
      "phase": "inherited",
      "paths": [
        "app/proguard-rules.pro",
        "app/src/main/AndroidManifest.xml",
        "app/src/main/cpp/jni-utils.h",
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxRemoteService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/AddonSubconfig.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/pinyin/CustomPhraseManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/pinyin/PinyinDictManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/pinyin/customphrase/PinyinCustomPhrase.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/pinyin/dict/BuiltinDictionary.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/pinyin/dict/LibIMEDictionary.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/pinyin/dict/PinyinDictionary.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/pinyin/dict/SougouDictionary.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/pinyin/dict/TextDictionary.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/table/TableBasedInputMethod.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/table/TableManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/table/dict/Dictionary.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/table/dict/LibIMEDictionary.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/table/dict/TextDictionary.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/action/ButtonAction.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/action/CustomActionExecutor.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/MainActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/MainFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/PinyinCustomPhraseFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/PinyinDictionaryFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/PreferenceScreenFactory.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/SettingsRoute.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/TableInputMethodFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/MacroEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/config/ConfigDescriptor.kt",
        "lib/common/src/main/aidl/org/fcitx/fcitx5/android/common/ipc/IFcitxRemoteService.aidl"
      ],
      "document": "features/theme/settings-appearance.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "设置与引导"
    },
    {
      "sha": "cc2f2d6bcafc15feb468094b039ae87b90264b7c",
      "date": "2026-09-05",
      "subject": "refactor(构建): 删除 lib/plugin-base 模块与 transifex 残留配置",
      "phase": "inherited",
      "paths": [
        "lib/plugin-base/build.gradle.kts",
        "lib/plugin-base/src/debug/AndroidManifest.xml",
        "lib/plugin-base/src/main/AndroidManifest.xml",
        "lib/plugin-base/src/main/java/org/fcitx/fcitx5/android/lib/plugin_base/AboutActivity.kt",
        "lib/plugin-base/src/main/res/drawable-v24/ic_launcher_plugin_generic_foreground.xml",
        "lib/plugin-base/src/main/res/drawable/ic_launcher_plugin_generic_background.xml",
        "lib/plugin-base/src/main/res/mipmap-anydpi-v26/ic_launcher_plugin_generic.xml",
        "lib/plugin-base/src/main/res/mipmap-hdpi/ic_launcher_plugin_generic.png",
        "lib/plugin-base/src/main/res/mipmap-mdpi/ic_launcher_plugin_generic.png",
        "lib/plugin-base/src/main/res/mipmap-xhdpi/ic_launcher_plugin_generic.png",
        "lib/plugin-base/src/main/res/mipmap-xxhdpi/ic_launcher_plugin_generic.png",
        "lib/plugin-base/src/main/res/mipmap-xxxhdpi/ic_launcher_plugin_generic.png",
        "lib/plugin-base/src/main/res/raw/keep.xml",
        "lib/plugin-base/src/main/res/values-es/strings.xml",
        "lib/plugin-base/src/main/res/values-ru/strings.xml",
        "lib/plugin-base/src/main/res/values-zh-rCN/strings.xml",
        "lib/plugin-base/src/main/res/values-zh-rTW/strings.xml",
        "lib/plugin-base/src/main/res/values/strings.xml",
        "lib/plugin-base/src/main/res/values/themes.xml",
        "settings.gradle.kts",
        "transifex-config.ini",
        "transifex.yml"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "d85068c04c5a27cc0b274e5913b1b6f0be08b5c5",
      "date": "2026-09-05",
      "subject": "refactor(插件框架): 删除插件检测框架与插件运行时",
      "phase": "inherited",
      "paths": [
        "app/build.gradle.kts",
        "app/src/main/AndroidManifest.xml",
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxApplication.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxRemoteService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/OutgoingClipboardFilter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/Fcitx.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FcitxPluginServices.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/data/DataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/data/FileSource.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/data/PluginDescriptor.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/data/PluginLoadFailed.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/PluginFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/SettingsRoute.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/AdvancedSettingsFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/PrefixListDialogFragment.kt",
        "lib/common/src/main/aidl/org/fcitx/fcitx5/android/common/ipc/IFcitxRemoteService.aidl",
        "lib/common/src/main/java/org/fcitx/fcitx5/android/common/FcitxPluginService.kt",
        "lib/common/src/main/java/org/fcitx/fcitx5/android/common/PluginMessage.kt",
        "lib/common/src/main/java/org/fcitx/fcitx5/android/common/clearurls/ClearUrlsPluginRuntime.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "73497f6eaf83754fb49a9a4702892f7691d8ea56",
      "date": "2026-09-05",
      "subject": "perf(候选栏): 前后缀结构 diff 替代 notifyDataSetChanged 全量重绑",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateViewAdapter.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "3e24e1a4d1ecadf3cd2cbe53db0e95dd4b0e9dec",
      "date": "2026-09-05",
      "subject": "perf(候选栏): 帧延迟、宽度预计算与每键分配削减",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/core/Fcitx.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FcitxEvent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "85971c94f40b37b1d2aae915f03101e9d6878b39",
      "date": "2026-09-05",
      "subject": "perf(输入链路): Phase 0 性能埋点（androidx.tracing）",
      "phase": "inherited",
      "paths": [
        "app/build.gradle.kts",
        "app/src/main/java/org/fcitx/fcitx5/android/core/Fcitx.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/BaseInputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateViewAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "gradle/libs.versions.toml"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "1f6085df4a682a8a8a0b93e52c1d378dfb45aadd",
      "date": "2026-09-05",
      "subject": "fix(远程服务): 删除 FcitxRemoteService 残留的 callingPackage 引用",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxRemoteService.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "c9467e157bbd7ad8df8e33bc033c28660735eb98",
      "date": "2026-09-05",
      "subject": "fix(剪贴板同步): 为 MainService 补充 Service.onBind 空实现",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "46430b40e110af4659bcaca5a716c4c5bfb4a9d1",
      "date": "2026-09-05",
      "subject": "ci: 构建失败时将编译错误输出为 annotations",
      "phase": "inherited",
      "paths": [
        ".github/workflows/ci.yml"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "d1386cfd57f9ba6720cf57495fd2eb988f5fe76f",
      "date": "2026-09-05",
      "subject": "fix(应用): 移除 FcitxApplication 悬空的 @Volatile 注解",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxApplication.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "c5cff57f09825d56fa96c580ba99d82e420e14dc",
      "date": "2026-09-05",
      "subject": "fix(候选栏): onLayoutCompleted 中消费 pendingEnsureVisible",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "7d4c3cf67e5cdb50e9d07e81f4afb610342f51f4",
      "date": "2026-09-05",
      "subject": "feat(构建): 应用包名改为 org.fcitx.fcitx5.android.fx.rime 以便与 fx2 共存安装",
      "phase": "inherited",
      "paths": [
        "README.md",
        "app/build.gradle.kts",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "480cdd26b39ce2c2c06c0021b365671ed302d05e",
      "date": "2026-09-05",
      "subject": "refactor(组件): 移除 androidkeyboard/imselector/spell/unicode 组件",
      "phase": "inherited",
      "paths": [
        "app/build.gradle.kts",
        "app/src/main/cpp/CMakeLists.txt",
        "app/src/main/cpp/androidkeyboard/CMakeLists.txt",
        "app/src/main/cpp/androidkeyboard/androidkeyboard.conf.in.in",
        "app/src/main/cpp/androidkeyboard/androidkeyboard.cpp",
        "app/src/main/cpp/androidkeyboard/androidkeyboard.h",
        "app/src/main/cpp/native-lib.cpp",
        "app/src/main/java/org/fcitx/fcitx5/android/core/Fcitx.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FcitxAPI.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyAction.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt",
        "lib/fcitx5/build.gradle.kts"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "870ab1c863f785e2601004ca0f2a83ee0a729173",
      "date": "2026-09-05",
      "subject": "fix(引擎): 首次启动时预置 rime 为默认启用输入法",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/core/Fcitx.kt"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "47ee56fddc257a082cbf52fb4ef31451bf29fb6b",
      "date": "2026-09-05",
      "subject": "refactor(组件): 移除 quickphrase 快速短语组件",
      "phase": "inherited",
      "paths": [
        "app/build.gradle.kts",
        "app/src/main/cpp/CMakeLists.txt",
        "app/src/main/cpp/native-lib.cpp",
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxRemoteService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/AddonSubconfig.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/Fcitx.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FcitxAPI.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/quickphrase/BuiltinQuickPhrase.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/quickphrase/CustomQuickPhrase.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/quickphrase/QuickPhrase.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/quickphrase/QuickPhraseData.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/quickphrase/QuickPhraseEntry.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/quickphrase/QuickPhraseManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/quickphrase/QuickPhraseSerializer.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/IconTheme.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/action/CustomActionExecutor.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyAction.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/PreferenceScreenFactory.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/QuickPhraseEditFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/QuickPhraseListFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/SettingsRoute.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/MacroEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/config/ConfigDescriptor.kt",
        "app/src/main/res/values-de/strings.xml",
        "app/src/main/res/values-es/strings.xml",
        "app/src/main/res/values-ja/strings.xml",
        "app/src/main/res/values-ko/strings.xml",
        "app/src/main/res/values-ru/strings.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/keyboard_26_ids.xml",
        "app/src/main/res/values/strings.xml",
        "lib/common/src/main/aidl/org/fcitx/fcitx5/android/common/ipc/IFcitxRemoteService.aidl",
        "lib/fcitx5/build.gradle.kts"
      ],
      "document": "features/theme/settings-appearance.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "设置与引导"
    },
    {
      "sha": "0e5b884ff9d65ada62ee25ba8fbff287eba41ed0",
      "date": "2026-09-05",
      "subject": "fix(宏编辑器): 应用动作选择器 id 与标签错位",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/MacroEditorActivity.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "26fc1454669c4dbf89cdeb4561b62b22ffa4e274",
      "date": "2026-09-05",
      "subject": "feat(键盘): 语言键改为发送独立 Shift 敲击，长按弹系统输入法菜单",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/action/ButtonAction.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/LangSwitchBehavior.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardGroupFragment.kt",
        "app/src/main/res/values-de/strings.xml",
        "app/src/main/res/values-es/strings.xml",
        "app/src/main/res/values-ja/strings.xml",
        "app/src/main/res/values-ko/strings.xml",
        "app/src/main/res/values-ru/strings.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "238f61af3d135cc45813415ed8d356c51c0cb4d4",
      "date": "2026-09-05",
      "subject": "fix(布局编辑器): 草稿改存私有文件，修复编辑按键时 TransactionTooLarge 崩溃",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDraftStore.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDraftStoreTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "17d249a4f7076aa089b38f348462e69e15c3fce6",
      "date": "2026-09-05",
      "subject": "feat(设置): 主设置页\"输入法\"改为\"中州韵设置\"，直达 rime 配置页",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/MainFragment.kt",
        "app/src/main/res/values-de/strings.xml",
        "app/src/main/res/values-es/strings.xml",
        "app/src/main/res/values-ja/strings.xml",
        "app/src/main/res/values-ko/strings.xml",
        "app/src/main/res/values-ru/strings.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "0a95e91745a4dd8ba8c0d7cbd5969ba057262432",
      "date": "2026-09-05",
      "subject": "refactor(设置): 清理其余通往输入法列表页的入口",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/dialog/AddMoreInputMethodsPrompt.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/dialog/InputMethodPickerDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/MacroEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/AppUtil.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "34cc7473d8581f0b3f822df0b65c9bcba994d25f",
      "date": "2026-09-05",
      "subject": "perf(键盘): 修饰键保持时长 150ms 降到 50ms，并更正其依据",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "36af5144bfc092f41b09c44bef82c117e2d24202",
      "date": "2026-09-06",
      "subject": "fix(发布): 修复 Play 商店图标失效链接",
      "phase": "inherited",
      "paths": [
        "app/src/main/play/listings/en-US/graphics/icon/icon.png"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "82090abfb71b3d74ce7c28d294b8d86142bc5fc9",
      "date": "2026-09-06",
      "subject": "chore(构建): rime 源码与 prebuilt 改用 SandyYuR 自己的 fork，构建不再依赖 fxliang 账号",
      "phase": "inherited",
      "paths": [
        "prepare_personal_build.sh"
      ],
      "document": "features/theme/settings-appearance.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "设置与引导"
    },
    {
      "sha": "17b38c717592df6c6ac9302c2f754b10cc60790c",
      "date": "2026-09-06",
      "subject": "chore(引擎): 更新 librime 版本元数据至 1.17.0-3cbe4af",
      "phase": "inherited",
      "paths": [
        "app/licenses/libraries/librime.json"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "9a23ea277385f7411792ce94e7d4ae67fb80b657",
      "date": "2026-09-07",
      "subject": "fix(键盘): 宏 layer to 离开数字层时释放手动数字布局记忆",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyboardWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/NumericLayoutOverrideController.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboard.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/keyboard/NumericLayoutOverrideControllerTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "718e0a6e61c9a8f55326813dcb8746654fb16577",
      "date": "2026-09-07",
      "subject": "test(键盘): 修正 BACK 用例注释与 KeyboardWindow 实际门控一致",
      "phase": "inherited",
      "paths": [
        "app/src/test/java/org/fcitx/fcitx5/android/input/keyboard/NumericLayoutOverrideControllerTest.kt"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "2c1b9cb5546a7d4e2c34a433638ea354826c6037",
      "date": "2026-09-07",
      "subject": "fix(rime): IME 退出路径跳过 Rime 全量用户数据同步，修复切回输入法时键盘冻结数秒",
      "phase": "inherited",
      "paths": [
        "app/src/main/cpp/native-lib.cpp"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "589df1877df90e20d236d26c6908f55268c2a476",
      "date": "2026-09-07",
      "subject": "fix(键盘): ?123 进数字盘记入层历史，BACK 空栈时释放手动数字布局",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyboardWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboard.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "56e450b869a36b9942db1b49f6057cccadd37574",
      "date": "2026-09-07",
      "subject": "fix(布局编辑器): 校验草稿快照文件名，阻断路径穿越",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDraftStore.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDraftStoreTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "80338944719c1bfb4bc8b1cb43675f220aba4bd0",
      "date": "2026-09-07",
      "subject": "feat(品牌): 中文名改为靓企鹅.中州韵（仅简繁中文，西文保持 Fcitx5.fx.rime）",
      "phase": "inherited",
      "paths": [
        "app/src/main/res/values-de/strings.xml",
        "app/src/main/res/values-es/strings.xml",
        "app/src/main/res/values-ja/strings.xml",
        "app/src/main/res/values-ko/strings.xml",
        "app/src/main/res/values-ru/strings.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "686c47c7906e30093f33135dde4fbf282a8a590b",
      "date": "2026-09-07",
      "subject": "ci: 恢复 rime-only nightly release",
      "phase": "inherited",
      "paths": [
        ".github/workflows/ci.yml",
        "README.md"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "d4eedecbabfac664e4a15958cb1ad5ca460d9ea4",
      "date": "2026-09-07",
      "subject": "feat(品牌): 应用名定为靓企鹅·中州韵并补全 README 功能说明",
      "phase": "inherited",
      "paths": [
        "README.md",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "55a913f2c72bca3b488be12ab5f4401c57fd2601",
      "date": "2026-09-08",
      "subject": "docs(README): 重写 rime-only 功能说明与相对 fxliang 的改动概览",
      "phase": "inherited",
      "paths": [
        "README.md"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "5cc57c0dac774b7d2511bedcfc1ee2cd3296c783",
      "date": "2026-09-08",
      "subject": "fix(设置): 用户数据目录入口改用应用 DocumentsProvider",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/PreferenceScreenFactory.kt"
      ],
      "document": "features/backup-restore.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "数据与备份"
    },
    {
      "sha": "f0846c779341eac37894a0b6ba4ccc968565c310",
      "date": "2026-09-08",
      "subject": "fix(布局编辑器): 拖拽松手后按键不归位，停在原地错位显示",
      "phase": "inherited",
      "paths": [
        ".github/workflows/ci.yml",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/DraggableFlowLayout.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/KeyboardLayoutAdapter.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "d1e5bafcd858f10253efa7fce9318426ac1bb26b",
      "date": "2026-09-09",
      "subject": "fix(候选栏): 推迟 onLayoutCompleted 内的候选窗口跟随更新，修复双击斜杠崩溃",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "1a883904c9e035a60cc931dfe73dd8205d6c051a",
      "date": "2026-09-09",
      "subject": "fix(悬浮键盘): 横屏切换后延迟刷新并按配置失效尺寸缓存",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "e3d69269bc04687ea9850e244fdfbc16a17ffe81",
      "date": "2026-09-11",
      "subject": "feat(剪贴板): 历史实时搜索（工具栏入口＋辅助栏结果）",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/clipboard/ClipboardManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/clipboard/db/ClipboardDao.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/KawaiiBarComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/ClipboardSearchUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/IdleUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/clipboard/ClipboardSearchController.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/clipboard/ClipboardUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/clipboard/ClipboardWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyboardWindow.kt",
        "app/src/main/res/drawable/ic_clipboard_history_search_24.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "db25adcb1d424c07109fb1fbe9eabac6eb98f8e0",
      "date": "2026-09-10",
      "subject": "fix(网络编辑桥): 修复局域网无法访问（F7 线程池饥饿回归）",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/webeditor/ImeWebEditorBridgeServer.kt"
      ],
      "document": "features/online-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "局域网编辑"
    },
    {
      "sha": "36ebb39d9f4dbb1517c26405f05bba1b742bb4b8",
      "date": "2026-09-10",
      "subject": "chore(引擎): 更新 librime 版本元数据至 1.17.0-35f23e9（streaming_chord + userdict 外部更新修复）",
      "phase": "inherited",
      "paths": [
        "README.md",
        "app/licenses/libraries/librime.json"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "0092a3f0a6c986b62028e3f7ce16b05d1a501f4a",
      "date": "2026-09-10",
      "subject": "docs(README): 文档引用指向 rime-docs 分支（文档分拆收尾）",
      "phase": "inherited",
      "paths": [
        "README.md"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "a4d2f13f74f124c602ae0a22c9dd723382f1ff5a",
      "date": "2026-09-10",
      "subject": "ci(release): 发布描述改为「仅可使用Rime输入方案（插件已合并）」",
      "phase": "inherited",
      "paths": [
        ".github/workflows/ci.yml"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "a787dfd84cddc5358ee720ae3a85ce4d16387ef7",
      "date": "2026-09-11",
      "subject": "fix(输入): 滑动空格箭头键在文本边界不再逃逸输入框焦点",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "83708a684a3eeca8fc6d757bc47f9ba8d02636c8",
      "date": "2026-09-13",
      "subject": "fix(工具栏): 恢复密码框隐藏策略",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/KawaiiBarComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/PasswordToolbarPolicy.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/IdleUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/idle/NumberRow.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/bar/PasswordToolbarPolicyTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/bar/ui/idle/NumberRowTest.kt"
      ],
      "document": "features/kawaii-bar.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "工具栏"
    },
    {
      "sha": "9be829bb48a97cd16a9dabcd15b3fc6e48a4ed5b",
      "date": "2026-09-13",
      "subject": "fix(工具栏): 修复数字行文字和中央按钮偶发空白",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/KawaiiBarComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/IdleUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/idle/ButtonsBarUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/idle/KawaiiBarLayout.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/idle/NumberRow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDef.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyView.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/bar/ui/idle/NumberRowTest.kt"
      ],
      "document": "features/kawaii-bar.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "工具栏"
    },
    {
      "sha": "245e4bf1ddae76342379d0d23da0334cabd5244b",
      "date": "2026-09-13",
      "subject": "feat(工具栏): 移除长按状态区按钮进入的 Kawaii Bar 可拖动编辑面板",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/KawaiiBarComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/idle/KawaiiBarLayout.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/status/ButtonsAdjustingWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/status/ButtonsPanelPartition.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/status/ButtonsPanelPartitionTest.kt"
      ],
      "document": "features/kawaii-bar.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "工具栏"
    },
    {
      "sha": "871341b570ac1908aa7a1abc7ab4c8737257f190",
      "date": "2026-09-13",
      "subject": "fix(剪贴板): 修复 InputView 替换后搜索界面不再刷新",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/KawaiiBarComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/clipboard/ClipboardSearchController.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/clipboard/ClipboardSearchControllerTest.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "7ca3c541193a9714c87a928a1782ce3d375c0b29",
      "date": "2026-09-13",
      "subject": "fix(状态区): 状态区按钮长按按动作分发，修复「亮色/暗色主题」长按无效",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/action/ButtonAction.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/status/StatusAreaAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/status/StatusAreaEntry.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/status/StatusAreaWindow.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "07206012646356ccddf296105e5a2b3bb548a167",
      "date": "2026-09-14",
      "subject": "fix(工具栏): 中央按钮行改为确定性布局，修复悬浮切换后整行空白",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/KawaiiBarComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/IdleUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/idle/ButtonsBarUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/idle/KawaiiBarLayout.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/idle/KawaiiBarRowLayout.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/idle/KawaiiBarRowMetrics.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/bar/ui/idle/KawaiiBarRowMetricsTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "cefa4bc7870aa40faed65422d07f916bf297430b",
      "date": "2026-09-14",
      "subject": "fix(工具栏): 修复数字行单测读取基类不存在的 textSize",
      "phase": "inherited",
      "paths": [
        "app/src/test/java/org/fcitx/fcitx5/android/input/bar/ui/idle/NumberRowTest.kt"
      ],
      "document": "features/kawaii-bar.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "工具栏"
    },
    {
      "sha": "a2db421a287dd9c178af8f1625b35fca80943a53",
      "date": "2026-09-14",
      "subject": "ci(单测): 新增独立单测 job，不阻塞 Nightly 出包",
      "phase": "inherited",
      "paths": [
        ".github/workflows/ci.yml"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "bf9a66adc0d6bd6885c4bdc4fbf68d03a91326d3",
      "date": "2026-09-14",
      "subject": "docs(README): 补充剪贴板实时搜索与中央按钮行修复说明",
      "phase": "inherited",
      "paths": [
        "README.md"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "5dbe1f6cf253a1596d07e5909d99cabc1109395e",
      "date": "2026-09-14",
      "subject": "fix(候选栏): 高亮重绑按结构位移后的坐标解析，修复双高亮",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/CandidateUpdatePlan.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateViewAdapter.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/candidates/horizontal/CandidateUpdatePlanTest.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "a5e0c5d82f388be33a6add531539b5b80ca1f6a5",
      "date": "2026-09-15",
      "subject": "feat(内置资源): 内置群友贡献的布局/主题/图标主题并调整主题默认值",
      "phase": "inherited",
      "paths": [
        "app/build.gradle.kts",
        "\"app/src/main/assets/bundled/\\344\\270\\273\\351\\242\\230/Caramel Dawn.json\"",
        "\"app/src/main/assets/bundled/\\344\\270\\273\\351\\242\\230/Caramel Ember.json\"",
        "\"app/src/main/assets/bundled/\\344\\270\\273\\351\\242\\230/WeChat Dark.json\"",
        "\"app/src/main/assets/bundled/\\344\\270\\273\\351\\242\\230/braun-minimal-dark.json\"",
        "\"app/src/main/assets/bundled/\\344\\270\\273\\351\\242\\230/braun-minimal-light.json\"",
        "\"app/src/main/assets/bundled/\\344\\270\\273\\351\\242\\230/github-dark-dim.json\"",
        "\"app/src/main/assets/bundled/\\344\\270\\273\\351\\242\\230/industrial-orange-light.json\"",
        "\"app/src/main/assets/bundled/\\344\\270\\273\\351\\242\\230/isGboard.json\"",
        "\"app/src/main/assets/bundled/\\344\\270\\273\\351\\242\\230/sage-journey.json\"",
        "\"app/src/main/assets/bundled/\\344\\270\\273\\351\\242\\230/wechat-light.json\"",
        "\"app/src/main/assets/bundled/\\344\\270\\273\\351\\242\\230/\\346\\243\\256\\346\\236\\227\\351\\233\\206\\302\\267write.json\"",
        "\"app/src/main/assets/bundled/\\344\\270\\273\\351\\242\\230/\\351\\225\\277\\346\\227\\245\\345\\260\\206\\347\\203\\254.json\"",
        "\"app/src/main/assets/bundled/\\345\\233\\276\\346\\240\\207\\344\\270\\273\\351\\242\\230/\\346\\227\\240\\351\\242\\230.json\"",
        "\"app/src/main/assets/bundled/\\345\\233\\276\\346\\240\\207\\344\\270\\273\\351\\242\\230/\\350\\260\\267\\346\\255\\214.json\"",
        "\"app/src/main/assets/bundled/\\345\\233\\276\\346\\240\\207\\344\\270\\273\\351\\242\\230/\\351\\225\\277\\346\\227\\245\\345\\260\\206\\347\\203\\254.json\"",
        "\"app/src/main/assets/bundled/\\351\\224\\256\\347\\233\\230\\345\\270\\203\\345\\261\\200/PopupPreset.json\"",
        "\"app/src/main/assets/bundled/\\351\\224\\256\\347\\233\\230\\345\\270\\203\\345\\261\\200/TextKeyboardLayout.9+18+26keys.json\"",
        "\"app/src/main/assets/bundled/\\351\\224\\256\\347\\233\\230\\345\\270\\203\\345\\261\\200/TextKeyboardLayout.QM-\\346\\234\\235\\350\\212\\261.json\"",
        "\"app/src/main/assets/bundled/\\351\\224\\256\\347\\233\\230\\345\\270\\203\\345\\261\\200/TextKeyboardLayout.Sandy-\\346\\225\\260\\345\\255\\227\\350\\241\\21426+\\344\\270\\207\\350\\261\\241\\344\\271\\235\\351\\224\\256.json\"",
        "\"app/src/main/assets/bundled/\\351\\224\\256\\347\\233\\230\\345\\270\\203\\345\\261\\200/TextKeyboardLayout.\\344\\271\\235\\351\\224\\256\\345\\270\\203\\345\\261\\200.json\"",
        "\"app/src/main/assets/bundled/\\351\\224\\256\\347\\233\\230\\345\\270\\203\\345\\261\\200/TextKeyboardLayout.\\350\\241\\214\\344\\271\\213-26\\351\\224\\256.json\"",
        "\"app/src/main/assets/bundled/\\351\\224\\256\\347\\233\\230\\345\\270\\203\\345\\261\\200/TextKeyboardLayout.\\350\\241\\214\\344\\271\\213-\\344\\270\\207\\350\\261\\241\\344\\271\\235\\351\\224\\256v2.json\"",
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxApplication.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/BundledPresets.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemePrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/PopupComponent.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "834eb632d24ecae0e4f63b6088eef9f9fb082028",
      "date": "2026-09-15",
      "subject": "refactor(内置资源): assets/bundled 中文目录改为英文目录",
      "phase": "inherited",
      "paths": [
        "app/build.gradle.kts",
        "\"app/src/main/assets/bundled/icon_themes/\\346\\227\\240\\351\\242\\230.json\"",
        "\"app/src/main/assets/bundled/icon_themes/\\350\\260\\267\\346\\255\\214.json\"",
        "\"app/src/main/assets/bundled/icon_themes/\\351\\225\\277\\346\\227\\245\\345\\260\\206\\347\\203\\254.json\"",
        "app/src/main/assets/bundled/keyboard_layouts/PopupPreset.json",
        "app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.9+18+26keys.json",
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.QM-\\346\\234\\235\\350\\212\\261.json\"",
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.Sandy-\\346\\225\\260\\345\\255\\227\\350\\241\\21426+\\344\\270\\207\\350\\261\\241\\344\\271\\235\\351\\224\\256.json\"",
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.\\344\\271\\235\\351\\224\\256\\345\\270\\203\\345\\261\\200.json\"",
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.\\350\\241\\214\\344\\271\\213-26\\351\\224\\256.json\"",
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.\\350\\241\\214\\344\\271\\213-\\344\\270\\207\\350\\261\\241\\344\\271\\235\\351\\224\\256v2.json\"",
        "app/src/main/assets/bundled/themes/Caramel Dawn.json",
        "app/src/main/assets/bundled/themes/Caramel Ember.json",
        "app/src/main/assets/bundled/themes/WeChat Dark.json",
        "app/src/main/assets/bundled/themes/braun-minimal-dark.json",
        "app/src/main/assets/bundled/themes/braun-minimal-light.json",
        "app/src/main/assets/bundled/themes/github-dark-dim.json",
        "app/src/main/assets/bundled/themes/industrial-orange-light.json",
        "app/src/main/assets/bundled/themes/isGboard.json",
        "app/src/main/assets/bundled/themes/sage-journey.json",
        "app/src/main/assets/bundled/themes/wechat-light.json",
        "\"app/src/main/assets/bundled/themes/\\346\\243\\256\\346\\236\\227\\351\\233\\206\\302\\267write.json\"",
        "\"app/src/main/assets/bundled/themes/\\351\\225\\277\\346\\227\\245\\345\\260\\206\\347\\203\\254.json\"",
        "app/src/main/java/org/fcitx/fcitx5/android/data/BundledPresets.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/PopupComponent.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "67d7ed5efb9c0130435e3e5fe8fd9960e03bf528",
      "date": "2026-09-15",
      "subject": "ci(android-sdk): setup-android 显式只装 platform-tools，修复环境步骤失败",
      "phase": "inherited",
      "paths": [
        ".github/workflows/ci.yml"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "2b93023a07daeb183262064176425566f482907d",
      "date": "2026-09-15",
      "subject": "feat(内置资源): 更新 9+18+26keys 布局为大同版并支持内置资源内容更新",
      "phase": "inherited",
      "paths": [
        "app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.9+18+26keys.json",
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.\\345\\244\\247\\345\\220\\214-9+18+26keys.json\"",
        "app/src/main/java/org/fcitx/fcitx5/android/data/BundledPresets.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "cb8e94fad5e1a7c93aa16ea5f813e7133600a520",
      "date": "2026-09-17",
      "subject": "perf(日志): release 热路径不再构造被丢弃的 DEBUG 字符串",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/core/Fcitx.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/Timber.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "4197dffe17947686bb8cfd8045c2427dbee469c0",
      "date": "2026-09-17",
      "subject": "perf(剪贴板同步): 健康检查、熄屏截图监听与连接生命周期",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/ScreenshotClipboardWatcher.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "4c8b76ea5f68a32b0e0d865ca97d639f6d11443b",
      "date": "2026-09-17",
      "subject": "perf(剪贴板同步): 状态写入按 key 合并与文件名碰撞流式比较",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/SyncStateStore.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/network/HashUtils.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/network/SyncClient.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/clipboardsync/network/HashUtilsStreamingTest.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "17793f046e55d03fc1368d7d648f420076e8824e",
      "date": "2026-09-17",
      "subject": "perf(剪贴板): 历史搜索改 SQL 筛选并加防抖，裁剪只查 id",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/clipboard/ClipboardManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/clipboard/db/ClipboardDao.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/clipboard/ClipboardSearchController.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "13e490aa25c187e1de8684c789dcedf6fe9b1151",
      "date": "2026-09-17",
      "subject": "perf(主题): 主题包读取与解压加限额并校验条目路径",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemeFilesManager.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "5388abc213d2f3b836eb6de5649e5a0d7c6eea50",
      "date": "2026-09-17",
      "subject": "perf(输入): 浮动键盘缩放按帧合并提交",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "98df9d060c4907405a108197a2312ea1f6235a7b",
      "date": "2026-09-17",
      "subject": "perf(工具栏): 自定义图标解析结果加 ConstantState 缓存",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/config/ButtonIconFile.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "400f5523f3a8a4d5d3fd33f7d84b69ba55726f7e",
      "date": "2026-09-17",
      "subject": "perf(语音): PCM 队列按音频时长定界并在过载时中止会话",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/VoiceInputProviderManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/VoicePcmQueueBudget.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/VoicePcmQueueBudgetTest.kt"
      ],
      "document": "features/voice-input.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "语音"
    },
    {
      "sha": "5147a9d245bd411832edb9a25bb271a6f32f4da3",
      "date": "2026-09-17",
      "subject": "fix(Settings): 修复创建中州韵目录后视图销毁导致的崩溃",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/AddonDirProfileManagerFragment.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "7a480550a4a81024ddc7297056732b22a6383c0c",
      "date": "2026-09-17",
      "subject": "fix(辅助选择栏): 纵向辅助栏跟随悬浮高度均分排布",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "ed1ef4290d07021dc8fb4de71531397615e59b0b",
      "date": "2026-09-17",
      "subject": "fix(悬浮键盘): 移动把手顶部空间不足时翻到底部",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/FloatingMoveHandlePlacement.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/FloatingMoveHandlePlacementTest.kt"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "12aabd50213910bd1b196170065528c085b7d30d",
      "date": "2026-09-17",
      "subject": "perf(候选栏): 展开面板 offset 去重、DiffUtil 内容比较与取用时刻全局下标修复",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/CandidateIndexResolver.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/CandidateViewHolder.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/expanded/ExpandedCandidateLayout.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/expanded/ExpandedCandidateRefresh.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/expanded/PagingCandidateDiff.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/expanded/PagingCandidateViewAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/expanded/window/BaseExpandedCandidateWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/candidates/CandidateIndexResolverTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/candidates/expanded/ExpandedCandidateRefreshTest.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "bce1ec0f08ecca77b9ae85718c4a7737cb64f2e3",
      "date": "2026-09-17",
      "subject": "feat(退格保护): 长按删空编码后持续拦截退格直到抬指",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/BackspaceBoundaryGuard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/BackspaceBoundaryGuardTest.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "234c3cfcd70665018b02a46d8daa404b82f18352",
      "date": "2026-09-17",
      "subject": "fix(引擎): 修复词典重建时 table.bin 头部损坏导致的 invalid metadata",
      "phase": "inherited",
      "paths": [
        "README.md",
        "app/licenses/libraries/fcitx5-rime.json",
        "app/licenses/libraries/librime.json",
        "lib/fcitx5/src/main/cpp/prebuilt",
        "plugin/rime/src/main/cpp/fcitx5-rime"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "b5ea522232f2bb82fa806d02940e382dc2d47ba1",
      "date": "2026-09-18",
      "subject": "feat(退格保护): 保护段内被吞的重复退格不再触发按键反馈",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/BackspaceBoundaryGuard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/BackspaceBoundaryGuardTest.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "08e48eacd9ebc64f0b459e8bd5fd222a8fff12c8",
      "date": "2026-09-19",
      "subject": "feat(语言键与宏操作): 长按语言键弹Rime方案选单，宏应用操作新增切换输入法与方案选单",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/action/ButtonAction.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/dialog/RimeSchemaMenuDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyAction.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/MacroEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/manager/SubModeManager.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "6bdf2a8601ad18da000ea0a292f34b9926a2540c",
      "date": "2026-09-20",
      "subject": "feat(内置资源): 更新大同与 Sandy 布局，去高度覆盖并接入方案选单宏",
      "phase": "inherited",
      "paths": [
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.Sandy-\\346\\225\\260\\345\\255\\227\\350\\241\\21426+\\344\\270\\207\\350\\261\\241\\344\\271\\235\\351\\224\\256.json\"",
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.\\345\\244\\247\\345\\220\\214-9+18+26keys.json\"",
        "app/src/main/java/org/fcitx/fcitx5/android/data/BundledPresets.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "2f9d84cf3955ac12250c0f2ea28fa359642aa8c5",
      "date": "2026-09-20",
      "subject": "feat(候选词): 上滑弹出选字窗提交单字",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/BaseInputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/CandidateCharacter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/CandidateCharacterPopup.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/expanded/window/BaseExpandedCandidateWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/candidates/CandidateCharacterTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "1539e99bdf4e1ebf03c35c218b324613ecfbd8a4",
      "date": "2026-09-20",
      "subject": "chore(引擎): prebuilt 指针更新至 6b5b2ee6，修复忘记词汇连带删除同音词",
      "phase": "inherited",
      "paths": [
        "lib/fcitx5/src/main/cpp/prebuilt"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "d1d4eba088533bf3ef240559ea60db444ab235e1",
      "date": "2026-09-20",
      "subject": "fix(工具栏): 自定义图标归一到标准尺寸，修复按钮左右空隙",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/IconThemeManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/config/ButtonIconFile.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/config/IconSize.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/status/StatusAreaEntryUi.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/config/IconSizeTest.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "87ed7f06ba34ac1ae0ac15344516277ddd4bdc09",
      "date": "2026-09-20",
      "subject": "feat(候选词): 手势改为按住后滑动，上滑选字、下滑呼出操作菜单",
      "phase": "inherited",
      "paths": [
        "README.md",
        "app/src/main/java/org/fcitx/fcitx5/android/input/BaseInputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/expanded/window/BaseExpandedCandidateWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CustomGestureView.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "8a1493321b425650cd468d1005969ee6924157fa",
      "date": "2026-09-20",
      "subject": "feat(Rime): 不再预置任何输入方案，也不附带 essay.txt",
      "phase": "inherited",
      "paths": [
        "README.md",
        "app/licenses/libraries/rime-essay.json",
        "app/licenses/libraries/rime-luna-pinyin.json",
        "app/licenses/libraries/rime-stroke.json",
        "app/src/main/cpp/CMakeLists.txt",
        "plugin/rime/src/main/cpp/CMakeLists.txt",
        "plugin/rime/src/main/cpp/default.yaml"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "4cc4c8e49ec61f7b1469500b6ec09731c126d63c",
      "date": "2026-09-20",
      "subject": "feat(虚拟键盘): 键盘高度百分比默认按真实屏幕尺寸计算",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "927b90e489b4c6c5c72ea2c350c42f1935e041df",
      "date": "2026-09-20",
      "subject": "fix(日志): 语音与剪贴板原文不再写入 release 日志",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/clipboard/ClipboardManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/VoiceInputProviderManager.kt"
      ],
      "document": "features/voice-input.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "语音"
    },
    {
      "sha": "91afccc3c6092e9ed94e646869fedd8c6c0e8287",
      "date": "2026-09-20",
      "subject": "perf(主题编辑器): 绘制期不再每帧分配渐变与画笔",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/HueSliderView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/SaturationValuePickerView.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "815aa4c3731a2765480307cf594f6dcc97400fa5",
      "date": "2026-09-20",
      "subject": "fix(输入): 候选分页模式在无活动输入上下文时崩溃",
      "phase": "inherited",
      "paths": [
        "app/src/main/cpp/androidfrontend/androidfrontend.cpp"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "41032347259416bd0292acaf2c30de9624e76c2e",
      "date": "2026-09-20",
      "subject": "fix(数据目录): descriptor 改为原子写入，避免异常退出后全量重同步",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/core/data/DataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/FileUtil.kt"
      ],
      "document": "features/backup-restore.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "数据与备份"
    },
    {
      "sha": "caef154772f0f3882282fea6bdbebe74a3bdcd3d",
      "date": "2026-09-20",
      "subject": "fix(键盘布局编辑): 保存基线快照前移，返回键改走 OnBackPressedDispatcher",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDataManager.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "8843b858133f8bc801a8cfec09424b304189f49d",
      "date": "2026-09-20",
      "subject": "fix(引擎启停): 状态机可停 STARTING、启动失败必收敛、停止不再阻塞主线程",
      "phase": "inherited",
      "paths": [
        "README.md",
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxApplication.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxRemoteService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/Fcitx.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FcitxDispatcher.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FcitxLifecycle.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/daemon/FcitxDaemon.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/AdvancedSettingsFragment.kt"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "f8119628ba9674966c0ded7acfd3af73eec0ac62",
      "date": "2026-09-21",
      "subject": "feat(引擎): prebuilt 指针更新至 a1865519，rewrite 滤镜跟进至 abbdacea",
      "phase": "inherited",
      "paths": [
        "README.md",
        "app/licenses/libraries/librime.json",
        "lib/fcitx5/src/main/cpp/prebuilt"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "746271dfd31420c803abc95b55b3930b522afe99",
      "date": "2026-09-21",
      "subject": "chore(引擎): fcitx5-rime 指针更新至 fc3f98b，移除辅助栏\"清除\"按钮",
      "phase": "inherited",
      "paths": [
        "plugin/rime/src/main/cpp/fcitx5-rime"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "acb1d3b915eaaa3606aa649a8938ae440aac07ed",
      "date": "2026-09-21",
      "subject": "feat(键盘): 退格键长按后上滑清空输入框",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CustomGestureView.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "a560aabe17d2710d1d54a6f654c20a07a26ee39f",
      "date": "2026-09-24",
      "subject": "feat(引擎): 引擎 pin 前移至 ef1a16aa，rewrite 补丁跟进 PR #1232 至 8530499b",
      "phase": "inherited",
      "paths": [
        "README.md",
        "app/licenses/libraries/librime.json",
        "lib/fcitx5/src/main/cpp/prebuilt"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "f44913fc8b563a018e71598ebac4cd869b7b61c6",
      "date": "2026-09-24",
      "subject": "refactor(jni): 统一 JNI 数组迭代写法并修正引用释放",
      "phase": "inherited",
      "paths": [
        "app/src/main/cpp/native-lib.cpp",
        "app/src/main/cpp/object-conversion.h"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "3b4f4cd660f172c549b0bb6133aab6fc8bfe8415",
      "date": "2026-09-24",
      "subject": "fix(主题): styledColorOrDefault 属性缺失时不再崩溃",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/utils/Splitties.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "dd3a47c4c8f7d08743afd9f769ee79e596d2a5d1",
      "date": "2026-09-24",
      "subject": "fix(语言): zh_*_#Hans/Hant 回退到 zh_CN/zh_TW",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/utils/Locales.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "回退记录，不能将被回退的方案按标题列为现有功能；查当前主题说明。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "177f37cc79efbfb538ab981be1654bf637a85c48",
      "date": "2026-09-24",
      "subject": "chore(引擎): fcitx5 core 指针更新至 1e005518",
      "phase": "inherited",
      "paths": [
        "lib/fcitx5/src/main/cpp/fcitx5"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "819f8fbc8446e08faed16718beb02c2b79dfe3f5",
      "date": "2026-09-24",
      "subject": "chore(引擎): fcitx5 core 指针更新至 27cca6e0",
      "phase": "inherited",
      "paths": [
        "app/licenses/libraries/fcitx5.json",
        "lib/fcitx5/src/main/cpp/fcitx5"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "8d5adb7d893cf0bc675d5a6502a655fb71735560",
      "date": "2026-09-24",
      "subject": "chore(引擎): fcitx5-rime 指针更新至 dcd6162，版本号提升至 5.1.17",
      "phase": "inherited",
      "paths": [
        "app/licenses/libraries/fcitx5-rime.json",
        "plugin/rime/src/main/cpp/fcitx5-rime"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "e7e324624b6a076fd9e1c5dfacf90d5eed4c8a51",
      "date": "2026-09-26",
      "subject": "revert(引擎启停): 回退 8843b858 状态机改动以排查卡键回归 [skip ci]",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxApplication.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxRemoteService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/Fcitx.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FcitxDispatcher.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FcitxLifecycle.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/daemon/FcitxDaemon.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/AdvancedSettingsFragment.kt"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "回退记录，不能将被回退的方案按标题列为现有功能；查当前主题说明。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "4f93612f4d0426ec0cfc20d31d8716c69ffc1736",
      "date": "2026-09-28",
      "subject": "feat(符号面板): 换成 Foxy 风格并支持直达与自定义数据",
      "phase": "inherited",
      "paths": [
        "app/build.gradle.kts",
        "app/src/main/assets/bundled/symbols/emoji.json",
        "app/src/main/assets/bundled/symbols/kaomoji.json",
        "app/src/main/assets/bundled/symbols/symbols.json",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/KawaiiBarComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/IdleUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/config/UserConfigFiles.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyboardWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/PickerData.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/PickerLayout.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/PickerPageUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/PickerPagesAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/PickerPaginationUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/PickerTabsUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/PickerWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/PickerWindowPreset.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/SymbolCatalog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/SymbolPanelUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/SymbolSettingsFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyboardEditorUiBuilder.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/MacroEditorActivity.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/input/config/SymbolCatalogNameTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/picker/SymbolCatalogParseTest.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "b37267e543b2e9a5ee9bf46abcd80be116eeb324",
      "date": "2026-09-28",
      "subject": "chore(引擎): prebuilt 指针更新至 1126616c，修复冷启动全量部署误判",
      "phase": "inherited",
      "paths": [
        "lib/fcitx5/src/main/cpp/prebuilt"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "afc57f4b10e678197fa72d1035c83f39d6020df3",
      "date": "2026-09-28",
      "subject": "fix(布局编辑器): 子模式下拉框补「默认」项，修复 rime 默认布局无法编辑",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/manager/SubModeManager.kt",
        "app/src/main/res/values-de/strings.xml",
        "app/src/main/res/values-es/strings.xml",
        "app/src/main/res/values-ja/strings.xml",
        "app/src/main/res/values-ko/strings.xml",
        "app/src/main/res/values-ru/strings.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/manager/SubModeSpinnerSelectionTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "babd5c139449a14bf02ea4c4bc83456d2e7154d2",
      "date": "2026-09-28",
      "subject": "chore(引擎): fcitx5-rime 指针更新至 9bf94e6，部署期按键与提示修复",
      "phase": "inherited",
      "paths": [
        "plugin/rime/src/main/cpp/fcitx5-rime"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "7a0c0730ff3a10da886e5c0e05563ab211109614",
      "date": "2026-09-28",
      "subject": "文档(README): 重写为用户视角，突出不预置方案与快速上手",
      "phase": "inherited",
      "paths": [
        "README.md"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "f84084c34585c5ac4160b61e93134f9275b23534",
      "date": "2026-09-28",
      "subject": "feat(键盘): 空格键支持在布局编辑器配置划动动作",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/SpaceSwipeMode.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyboardEditorUiBuilder.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtils.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/input/keyboard/SpaceSwipeModeTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtilsTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "8abbf722ed3016ec0d2b4f3670f89a7ae9aef4d2",
      "date": "2026-09-29",
      "subject": "feat(设置): 首页重构为两层分组，并加入搜索与跳转定位",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/ManagedPreferenceFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/DeveloperFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/MainFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/MainViewModel.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/FcitxPreferenceFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/PreferenceScreenFactory.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/SettingsRoute.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/AdvancedSettingsFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/DataBackupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardGroupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardModesFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardSettingsFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/group/SettingsGroupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/group/SettingsGroupSpecs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/PreferenceScrollHelper.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchPreference.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchQuery.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeFragment.kt",
        "app/src/main/res/layout/preference_settings_search.xml",
        "app/src/main/res/values-de/strings.xml",
        "app/src/main/res/values-es/strings.xml",
        "app/src/main/res/values-ja/strings.xml",
        "app/src/main/res/values-ko/strings.xml",
        "app/src/main/res/values-ru/strings.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndexCoverageTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchQueryTest.kt"
      ],
      "document": "features/theme/settings-appearance.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "设置与引导"
    },
    {
      "sha": "4a957b3af92d928b9a24ca220b12be6e80ac8201",
      "date": "2026-09-29",
      "subject": "feat(设置): 主题与候选栏的可见性改进",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/CandidatesPresets.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/CandidatesSettingsFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/CustomThemeActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/MonetThemeEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeListAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeListFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeThumbnailUi.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/CandidatesPresetsTest.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "4be7dc5570d9a4f1f93d248b6937d338dfc7d2ed",
      "date": "2026-09-29",
      "subject": "feat(布局编辑器): 按键类型下拉框加本地化中文说明",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyboardEditorUiBuilder.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "0ae646819d9f13f24c8e31703afb6543027c3b2c",
      "date": "2026-09-29",
      "subject": "feat(键盘): 空格键长按行为新增「重复输入空格」",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/SpaceLongPressBehavior.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/input/keyboard/SpaceKeyDefTest.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "a1ffb91f2bbfc129ec58b7b779a87c053c55bd13",
      "date": "2026-09-29",
      "subject": "feat(布局): MacroKey 显示文本优先，并修复 JNI 非法 UTF-8 崩溃",
      "phase": "inherited",
      "paths": [
        "app/src/main/cpp/jni-utils.h",
        "app/src/main/cpp/native-lib.cpp",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDef.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/KeyboardLayoutAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtils.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtilsTest.kt"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "792099e71e54f4537344573d4bba75bf35301293",
      "date": "2026-09-29",
      "subject": "chore(布局): 26 键字母布局移除宏键多余的显示文本",
      "phase": "inherited",
      "paths": [
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.Sandy-\\346\\225\\260\\345\\255\\227\\350\\241\\21426+\\344\\270\\207\\350\\261\\241\\344\\271\\235\\351\\224\\256.json\"",
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.\\344\\271\\235\\351\\224\\256\\345\\270\\203\\345\\261\\200.json\"",
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.\\345\\244\\247\\345\\220\\214-9+18+26keys.json\"",
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.\\350\\241\\214\\344\\271\\213-\\344\\270\\207\\350\\261\\241\\344\\271\\235\\351\\224\\256v2.json\""
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "d32916288838b4e40df1f040c1675261327e1519",
      "date": "2026-09-29",
      "subject": "chore(文档/CI): README 补全「相对 fxliang 的主要改动」，Nightly 正文去掉固定头",
      "phase": "inherited",
      "paths": [
        ".github/workflows/ci.yml",
        "README.md"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "f2dc67ceb498c8c63d9e5977eacb5909cc1d8ea5",
      "date": "2026-09-30",
      "subject": "feat(布局): AlphabetKey 显示文本优先，并清理 26 键字母层的冗余显示文本",
      "phase": "inherited",
      "paths": [
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.Sandy-\\346\\225\\260\\345\\255\\227\\350\\241\\21426+\\344\\270\\207\\350\\261\\241\\344\\271\\235\\351\\224\\256.json\"",
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.\\344\\271\\235\\351\\224\\256\\345\\270\\203\\345\\261\\200.json\"",
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.\\345\\244\\247\\345\\220\\214-9+18+26keys.json\"",
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.\\350\\241\\214\\344\\271\\213-\\344\\270\\207\\350\\261\\241\\344\\271\\235\\351\\224\\256v2.json\"",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/KeyboardLayoutAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtils.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtilsTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "3b85496ad93b9900d1c7ac7c49e4efbfe2a653de",
      "date": "2026-09-30",
      "subject": "fix(布局编辑器): 子模式下拉框「默认」项不再被当成越界",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/manager/SubModeManager.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/manager/SubModeSpinnerSelectionTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "1464ff5947d6468257020f5fc165adfbd6faaaea",
      "date": "2026-09-30",
      "subject": "feat(设置): 弹出字符设定移入键盘，分组小字与「键盘布局自定义」定稿",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardGroupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/group/SettingsGroupSpecs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/res/values-de/strings.xml",
        "app/src/main/res/values-es/strings.xml",
        "app/src/main/res/values-ja/strings.xml",
        "app/src/main/res/values-ko/strings.xml",
        "app/src/main/res/values-ru/strings.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "fbed250035c4d4ec8e1f48f79d25caa274902260",
      "date": "2026-09-30",
      "subject": "feat(文本编辑): 新增 Foxy 风格文本编辑布局配置",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/editing/FoxyTextEditingUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/editing/TextEditingButton.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/editing/TextEditingCursorPadKey.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/editing/TextEditingKeySpec.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/editing/TextEditingLayout.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/editing/TextEditingStyle.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/editing/TextEditingUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/editing/TextEditingWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/SettingsRoute.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextEditingSettingsFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/LayoutNameInputActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/preview/KeyboardPreviewManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/group/SettingsGroupSpecs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "9862e7b8ebfcca3e8bc1ee088f10518c80563c88",
      "date": "2026-10-02",
      "subject": "fix(键盘): 浮动/分体切换与拖动时按键挤成一行",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "9ec6cc66d7385632211019fd9c49a496dd425013",
      "date": "2026-10-02",
      "subject": "feat(设置): 分体/浮动/单手归并一页、键盘尺寸改名、文案统一",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/FloatingMoveHandlePlacement.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardGroupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardModesFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardSettingsFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "34fd116f2fd82076f52c5305a1d6237692e1c480",
      "date": "2026-10-02",
      "subject": "feat(浮动键盘): 新增「横屏时自动使用浮动键盘」",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardModesFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "c56b2d99369651197d4ba71c1bf847411363a8c1",
      "date": "2026-10-02",
      "subject": "feat(分体键盘): 奇数字母行分体时复制中间字母键（含开关）",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardModesFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "2d63c248fcae61417cc8ebeddc365e870f0376f1",
      "date": "2026-10-02",
      "subject": "feat(主题): 新增候选栏高亮圆角半径与高亮边距",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemePrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/CandidateItemUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "2501375fcd17d34936b49cfb13ab74de8220c051",
      "date": "2026-10-02",
      "subject": "feat(退格手势): 合成中上滑改为清编码区(Esc)，提示条显示Esc",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "4b560f0d99ef8bcca0ac6fd4bc02d4af350b2c5c",
      "date": "2026-10-02",
      "subject": "chore(引擎): fcitx5-rime 指针更新至 107502d，过滤非法音节 tab 乱码",
      "phase": "inherited",
      "paths": [
        "plugin/rime/src/main/cpp/fcitx5-rime"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "584bddaa25b1cec3957c1627ba514b819936d464",
      "date": "2026-10-02",
      "subject": "fix(辅助选择栏): 自定义按键按行高百分比分配高度",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "06364f608f24d15e06623d83b7d257ce9f3ddd37",
      "date": "2026-10-03",
      "subject": "feat(分体键盘): 分体布局可按子布局单独配置，新增空白占位键与中缝对齐开关",
      "phase": "inherited",
      "paths": [
        "README.md",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/idle/NumberRow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/expanded/ExpandedCandidateLayout.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDef.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/LayoutVariant.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/LayoutVariantResolver.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/NumberKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/SplitRowWidths.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboardLayoutState.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardModesFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/KeyboardLayoutAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyboardEditorUiBuilder.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/manager/SubModeManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/migration/DataMigrationManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/preview/KeyboardPreviewManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtils.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/input/keyboard/LayoutVariantResolverTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/keyboard/PlaceholderKeyDefTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/keyboard/SplitRowWidthsTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtilsTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/SplitLayoutSaveJsonTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "d84e20ee90dc9fa330dfbf1fe161ba9c451b7334",
      "date": "2026-10-03",
      "subject": "feat(工具栏): 新增工具栏大小百分比，栏高与图标可缩放，候选字号保持独立",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/KawaiiBarComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ToolbarMetrics.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/CandidateUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/IdleUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/TitleUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/ToolButton.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/idle/ButtonsBarUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/idle/KawaiiBarRowLayout.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/idle/NumberRow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/CandidateItemUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateViewAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardGroupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/KeyboardPreviewUi.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/input/bar/ToolbarMetricsTest.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "18619aefc52b25442f154452d9b725f3b612e820",
      "date": "2026-10-04",
      "subject": "fix(候选栏): 高亮改为三层结构，文字与高亮边框间距恒定且不再上下贴边",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemePrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/CandidateItemUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateViewAdapter.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "e916245e53dddff9a0cfe980af6a4e2d5a86a5ad",
      "date": "2026-10-04",
      "subject": "fix(字体设定): 字体与字号保存后即时生效，不再需要强杀输入法重开",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/AutoScaleTextView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/CandidateItemUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/expanded/PagingCandidateViewAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/floating/LabeledCandidateItemUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/floating/PagedCandidatesUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateViewAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/font/DefaultFontProvider.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/font/FontProviders.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/PopupEntryUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/preedit/PreeditUi.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "3664ef31b865aa1bc12d20099ce928d5ee92adcd",
      "date": "2026-10-05",
      "subject": "fix(工具栏): 恢复100%高度下的图标大小",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ToolbarMetrics.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/ToolButton.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/bar/ToolbarMetricsTest.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "49c7c1694b3fe1f0c2409e09839e07cee682201e",
      "date": "2026-10-05",
      "subject": "fix(图标主题): 安装内置资源后刷新主题列表",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxApplication.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/BundledPresets.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/IconThemeManager.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "37aef03a18c02a7ab8f55e5c90d78ebbb16aad5a",
      "date": "2026-10-05",
      "subject": "docs(README): 文档链接切换到文档站，引擎来源与提交计数更新到当前",
      "phase": "inherited",
      "paths": [
        "README.md"
      ],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "debae6ded9e091f561b07fcea36a56eff762031d",
      "date": "2026-10-07",
      "subject": "fix(候选栏): 注释宽度按实际 span 测量",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/AutoScaleTextView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "751480cd33aeb576acbeb00f0f7970fc76f86dd0",
      "date": "2026-10-07",
      "subject": "feat(候选栏): 支持长候选横向滚动",
      "phase": "inherited",
      "paths": [
        "app/src/androidTest/java/org/fcitx/fcitx5/android/input/candidates/CandidateOverflowTest.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/CandidateItemUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateViewAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardGroupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "d156052b25aae54f4219f799416c9475e1a19128",
      "date": "2026-10-07",
      "subject": "feat(键盘): 支持同一按键分别配置上下划动宏",
      "phase": "inherited",
      "paths": [
        "README.md",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDef.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/SwipeSymbolDirection.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtils.kt",
        "app/src/main/res/values-de/strings.xml",
        "app/src/main/res/values-es/strings.xml",
        "app/src/main/res/values-ja/strings.xml",
        "app/src/main/res/values-ko/strings.xml",
        "app/src/main/res/values-ru/strings.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/input/keyboard/SwipeSymbolDirectionTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtilsTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "4f0d6fb8cf53cd0c1f9666e3095ed70d634981ab",
      "date": "2026-10-08",
      "subject": "fix(键盘): 修复 MacroKey 上下划动标签迁移与动作触发",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtils.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtilsTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "2609dc2dd7d9fafe7c987b56bb096ecd0041f40e",
      "date": "2026-10-08",
      "subject": "fix(按键兼容): 仅在 vivo OriginOS 启用兼容开关",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxApplication.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefsMigration.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "098ec596dfa6793ae98a38aef4b9c8adaf33eebc",
      "date": "2026-10-08",
      "subject": "fix(音节选择栏): 支持超出六项滚动选择",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/AuxBarTabLayout.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/keyboard/AuxBarTabLayoutTest.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "0077c4010e216272cab844b80e75967a366357bf",
      "date": "2026-10-08",
      "subject": "ci(工作流): 为拉取请求增加单测与调试构建",
      "phase": "inherited",
      "paths": [
        ".github/workflows/pr.yml",
        "README.md"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "b94106da34fa534275ab81a3d5832fc1064704a5",
      "date": "2026-10-08",
      "subject": "fix(弹出键盘): 多字符候选改用 CommitAction 提交，避免被 fcitx 静默丢弃",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/LongPressPopupKeyboardUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/PopupKeyboardUi.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "598897b7488644c48357ae6f868cebbbfebf5efc",
      "date": "2026-10-08",
      "subject": "fix(弹出键盘): 校验弹出文本后选择提交方式",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/LongPressPopupKeyboardUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/PopupKeyAction.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/PopupKeyboardUi.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/popup/PopupKeyActionTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "35cfe7f7c79d5582025db8b1023b67cf9e44aa11",
      "date": "2026-10-08",
      "subject": "Merge pull request #2 from Ocyss/fx-rime-only",
      "phase": "inherited",
      "paths": [],
      "document": "legacy/fcitx/maintainer/index.md",
      "outcome": "旧 Fcitx 阶段实现或依赖记录；不作为当前直连库版本和运行链路依据。",
      "topic": "旧引擎与集成"
    },
    {
      "sha": "ed38a31b070072740f61d8e4f98ac4f5b0891685",
      "date": "2026-10-09",
      "subject": "fix(键盘标签): 统一双标签高度回退布局",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemePrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "回退记录，不能将被回退的方案按标题列为现有功能；查当前主题说明。",
      "topic": "布局与宏"
    },
    {
      "sha": "897ece50cb3b74266b0d1e75a6fa1f891bcd871a",
      "date": "2026-10-09",
      "subject": "fix(按键兼容): 小米设备默认开启兼容开关",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefsMigration.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "635d3aa2337189a6e75fc1ee2f828e3f76a809f6",
      "date": "2026-10-10",
      "subject": "feat(候选栏): 增加候选项序号角标开关",
      "phase": "inherited",
      "paths": [
        "app/src/androidTest/java/org/fcitx/fcitx5/android/input/candidates/CandidateIndexBadgeTest.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/CandidateIndexBadgePosition.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/CandidateItemUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateViewAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardGroupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/res/values-de/strings.xml",
        "app/src/main/res/values-es/strings.xml",
        "app/src/main/res/values-ja/strings.xml",
        "app/src/main/res/values-ko/strings.xml",
        "app/src/main/res/values-ru/strings.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "d786dd789e39c487905c1787023b21d9b0afbccd",
      "date": "2026-10-10",
      "subject": "fix(弹出菜单): 跟随主题使用整体背景色",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/BaseInputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/CandidateCharacterPopup.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/dialog/RimeSchemaMenuDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/LongPressPopupKeyboardUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/PopupEntryUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/PopupKeyboardUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/PopupMenuUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/ThemedPopupMenu.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/status/StatusAreaWindow.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "43e16fb6580748082cc56dad9cca87f470cb0ccc",
      "date": "2026-10-10",
      "subject": "feat(随机主题): 增加随机配色评分与即时应用入口",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/IconTheme.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemeAestheticScore.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemeManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemeRandomizer.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/action/ButtonAction.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/ButtonsCustomizerActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/icon/IconThemeEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/CustomThemeActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeListAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeListFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeThumbnailUi.kt",
        "app/src/main/res/drawable/ic_random_theme_24.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/data/theme/ThemeRandomizerTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/action/RandomThemeActionTest.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "01d0dfee391b4aac4bc88c01f7c7272696123690",
      "date": "2026-10-10",
      "subject": "feat(主题): 编码区圆角与工具栏上方圆角接续",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemePrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ContinuousCornerGeometry.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/preedit/PreeditComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/preedit/PreeditUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/KeyboardPreviewUi.kt",
        "app/src/main/res/values-de/strings.xml",
        "app/src/main/res/values-es/strings.xml",
        "app/src/main/res/values-ja/strings.xml",
        "app/src/main/res/values-ko/strings.xml",
        "app/src/main/res/values-ru/strings.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/input/bar/ContinuousCornerGeometryTest.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "4eae653942f38a10e350772e6f5c88023c70c3e6",
      "date": "2026-10-10",
      "subject": "fix(键盘标签): 方向性划动标签与触发方向脱离「标点位置」",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtils.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/keyboard/DirectionalSwipeLabelDefTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtilsTest.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "5085689f73facb2551cf91de7e53c1192b8f5696",
      "date": "2026-10-11",
      "subject": "docs(README): 对齐 10-07~10-10 一批用户可见改动",
      "phase": "inherited",
      "paths": [
        "README.md"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "2ad85b939e322d6a271eccbfb34f01add401da96",
      "date": "2026-10-11",
      "subject": "feat(随机主题): 新装/升级默认常驻随机主题卡片",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemeManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeListFragment.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "fdb765a3072c306c19f86f44a221ef6e52113bf3",
      "date": "2026-10-11",
      "subject": "feat(候选栏): 序号角标增加内容选项，可从0起或跟随方案选词标签",
      "phase": "inherited",
      "paths": [
        "app/src/androidTest/java/org/fcitx/fcitx5/android/input/candidates/CandidateIndexBadgeTest.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/CandidateIndexBadgePosition.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/CandidateItemUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateViewAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardGroupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/res/values-de/strings.xml",
        "app/src/main/res/values-es/strings.xml",
        "app/src/main/res/values-ja/strings.xml",
        "app/src/main/res/values-ko/strings.xml",
        "app/src/main/res/values-ru/strings.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "e8827f0a7fca4fdd60b425979866f156a91171bd",
      "date": "2026-10-11",
      "subject": "fix(工具栏): 移除密码框隐藏策略，恢复常规工具栏",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/KawaiiBarComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/PasswordToolbarPolicy.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/IdleUi.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/bar/PasswordToolbarPolicyTest.kt"
      ],
      "document": "features/kawaii-bar.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "工具栏"
    },
    {
      "sha": "3d0af21ec431b49bf5d9f4fb86a7d3b0cc22a51b",
      "date": "2026-10-11",
      "subject": "fix(分享导入): Loading 只覆盖 detect 阶段，不再盖住后续交互对话框",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/ShareReceiveManager.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "393ba918cfb06dceb4500c2856e699a05f247498",
      "date": "2026-10-12",
      "subject": "fix(密码框): 无活动输入法时 InputMethodStatus 空指针崩溃防护",
      "phase": "inherited",
      "paths": [
        "app/src/main/cpp/androidfrontend/androidfrontend.cpp",
        "app/src/main/cpp/helper-types.h",
        "app/src/main/cpp/native-lib.cpp"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "0ca7903ee5f9820eaff098f0685487a37079b018",
      "date": "2026-10-12",
      "subject": "fix(数字盘): 显式切回数字盘重新武装被 dismiss 的布局覆盖",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyboardWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/NumericLayoutOverrideController.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboard.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/keyboard/NumericLayoutOverrideControllerTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "70298bcbebc39eae1fee9d6a568ff1c97c674766",
      "date": "2026-10-12",
      "subject": "feat(密码框): 固定 default 布局回退链与空格键「（密码输入）」提示",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyboardWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboard.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "回退记录，不能将被回退的方案按标题列为现有功能；查当前主题说明。",
      "topic": "布局与宏"
    },
    {
      "sha": "9310fa02dee8ba4fd5bd12bb6c962ae377b29647",
      "date": "2026-10-13",
      "subject": "fix(键盘布局): 分体复用辅助栏并沿用方案配置键",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/LayoutVariantResolver.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/manager/SubModeManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/preview/KeyboardPreviewManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtils.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/keyboard/LayoutVariantResolverTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutAuxBarSharingTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/SplitLayoutSaveJsonTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/SubLayoutStorageLabelTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "d62e41e49fc995e8d71378c7d55205c367913b03",
      "date": "2026-10-13",
      "subject": "fix(分体键盘): 统一辅助栏与主键的扣缝宽度基准",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/AuxBar.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/keyboard/AuxBarSizeTest.kt"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "1165ebd90e4700f88b2384bff7aa4edb37527496",
      "date": "2026-10-13",
      "subject": "feat(内置布局): 更新 Sandy 九键与数字分体排列",
      "phase": "inherited",
      "paths": [
        "\"app/src/main/assets/bundled/keyboard_layouts/TextKeyboardLayout.Sandy-\\346\\225\\260\\345\\255\\227\\350\\241\\21426+\\344\\270\\207\\350\\261\\241\\344\\271\\235\\351\\224\\256.json\"",
        "app/src/main/java/org/fcitx/fcitx5/android/data/BundledPresets.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "212e67b108246268a6ce45edeb94e5f10d303593",
      "date": "2026-10-13",
      "subject": "feat(数据目录): 支持外部 Rime 目录与完整备份恢复 (#3)",
      "phase": "inherited",
      "paths": [
        ".gitmodules",
        "README.md",
        "app/licenses/libraries/fcitx5-rime.json",
        "app/src/androidTest/java/org/fcitx/fcitx5/android/data/UserDataBackupSnapshotTest.kt",
        "app/src/androidTest/res/values/test_app_aliases.xml",
        "app/src/main/AndroidManifest.xml",
        "app/src/main/java/org/fcitx/fcitx5/android/daemon/FcitxDaemon.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/RimeDataDirectoryState.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/RimeProfileBackup.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/RimeProfileRestorePlan.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/UserDataBackupArchive.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/UserDataBackupManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/UserDataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/UserDataRestoreTransaction.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/DynamicListAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/DynamicListEntryUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/AddonDirProfileManagerFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/PreferenceScreenFactory.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/DataBackupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/RimeRestoreDestinationPicker.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/ExternalRimeStorage.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/Intent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/ZipStream.kt",
        "app/src/main/res/values-de/strings.xml",
        "app/src/main/res/values-es/strings.xml",
        "app/src/main/res/values-ja/strings.xml",
        "app/src/main/res/values-ko/strings.xml",
        "app/src/main/res/values-ru/strings.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/data/RimeDataDirectoryStateTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/RimeProfileBackupTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/RimeProfileRestorePlanTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/UserDataBackupArchiveTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/UserDataRestoreTransactionTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/utils/ExternalRimeStorageTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/utils/ZipStreamSecurityTest.kt",
        "plugin/rime/src/main/cpp/fcitx5-rime",
        "prepare_personal_build.sh"
      ],
      "document": "features/backup-restore.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "数据与备份"
    },
    {
      "sha": "a714feff77fd79082807b9c7141e0515c8c83f73",
      "date": "2026-10-13",
      "subject": "fix(编码区): 对称保留圆角空间并修复长文本越界",
      "phase": "inherited",
      "paths": [
        "app/src/androidTest/java/org/fcitx/fcitx5/android/input/preedit/PreeditLayoutTest.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ContinuousCornerGeometry.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/preedit/PreeditUi.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "b4b09b4af31ea088c621c6ab4d660941fdacdf09",
      "date": "2026-10-16",
      "subject": "修复(输入): 限制最近记录并优化光标日志",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/RecentlyUsed.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/cursor/CursorTracker.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "8aada6693848106bf27cfc9d2b356d5e0900d651",
      "date": "2026-10-17",
      "subject": "修复(剪贴板): 避免截图历史重复入库",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/ScreenshotClipboardWatcher.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/clipboard/ClipboardManager.kt",
        "lib/common/src/main/java/org/fcitx/fcitx5/android/common/ClipboardMetadata.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "cecea4940bb5a5db67f91d6b20e00ee5c97877ea",
      "date": "2026-10-17",
      "subject": "修复(键盘): 按当前设置解析旧版滑动方向",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtils.kt"
      ],
      "document": "features/keyboard/float-keyboard.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "键盘形态"
    },
    {
      "sha": "9d0110abf6e95aee133816b7dd0c6f5ce1280d3b",
      "date": "2026-10-17",
      "subject": "修复(剪贴板): 合并指向同一图片的 URI 条目",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/ScreenshotClipboardWatcher.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/clipboard/ClipboardManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/clipboard/db/ClipboardDao.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/ClipboardUriStore.kt",
        "lib/common/src/main/java/org/fcitx/fcitx5/android/common/ClipboardMetadata.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "剪贴板与网络"
    },
    {
      "sha": "1713d613030d3d009ca227f04eb3eb6b62f29a69",
      "date": "2026-10-18",
      "subject": "改进(界面): 优化布局管理、编辑器配色与工具栏分节",
      "phase": "inherited",
      "paths": [
        "app/src/androidTest/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/KeyboardLayoutAdapterViewTest.kt",
        "app/src/main/AndroidManifest.xml",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/ButtonsCustomizerActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardGroupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutProfileManagerActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/KeyboardLayoutAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/LayoutKeyColors.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/LayoutKeyUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/group/SettingsGroupSpecs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/LayoutKeyColorsTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/LayoutKeyUiTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "92fd34ce060cb4625d99066443d294c453c4c693",
      "date": "2026-10-18",
      "subject": "修复(popup): 让弹出符号经 Rime 方案处理",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/PopupKeyAction.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "53038c225a41372498c6aab2703c3ceab1e34b50",
      "date": "2026-10-20",
      "subject": "修复(主题): 修复 Android 10 及以下换主题崩溃",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ContinuousCornerGeometry.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/bar/ContinuousCornerGeometryTest.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "69fa5a9b8cff32c855373b1fc496a605c0ef753d",
      "date": "2026-10-21",
      "subject": "重建 MD3 设置与首次引导，完善主题配色和返回动画",
      "phase": "inherited",
      "paths": [
        "README.md",
        "app/build.gradle.kts",
        "app/src/main/AndroidManifest.xml",
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxApplication.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/ui/ClipboardSyncSettingsActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/ui/SettingsActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/SettingsUiMotionPreferences.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/SettingsUiPreferences.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/SettingsKeyboardColors.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/BaseDynamicListUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/DynamicListEntryUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/DynamicListTouchCallback.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/ExpressivePreferenceListStyle.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/PaddingPreferenceFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/SettingsUiActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/DeveloperFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/EditDeleteMenuProvider.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/LicensesFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/LogActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/MainActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/MainFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/MainViewModel.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/SettingsPage.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/SettingsPageMotion.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/ShareReceiveManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/modified/Functions.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/modified/MaterialPreferenceDialogs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/modified/MyEditTextPreferenceDialogFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/modified/MyListPreferenceDialogFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/modified/MySwitchPreference.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/AddonDirProfileManagerFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/DialogSeekBarPreference.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/FcitxKeyPreference.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/FcitxPreferenceFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/GenericMultiSelectFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/KeyPreferenceUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/ListFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/PreferenceScreenFactory.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/ProgressFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/PunctuationEditorFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/SettingsRoute.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/TableFilesSelectionUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/TwinSeekBarPreference.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/addon/AddonListFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/ButtonsCustomizerActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/CandidatesSettingsFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/FontsetEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardGroupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardModesFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/PopupEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/RimeRestoreDestinationPicker.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/SplitKeyboardCalibrationActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/SymbolSettingsFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutProfileManagerActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/KeyboardLayoutAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/SimpleDividerItemDecoration.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyboardEditorUiBuilder.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/LayoutFileProfileInputActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/LayoutNameInputActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/MacroEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/TextKeyboardLayoutProfilePickerActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/TextKeyboardLayoutProfilePickerDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/group/SettingsGroupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/group/SettingsGroupSpecs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/icon/IconThemeEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/icon/IconThemeListActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/im/InputMethodListFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchPreference.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/CustomThemeActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/MonetThemeEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/SettingsUiAppearanceFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/SettingsUiMotionFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/SystemColorResourcePickerDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeColorEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeListFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeSettingsFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateCheckActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateHostsSettingsActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateMirrorEditActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateMirrorListActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/setup/SetupActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/setup/SetupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/AlertDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/Const.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/NavController.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/PreferenceScreen.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/Splitties.kt",
        "app/src/main/res/animator/settings_enter.xml",
        "app/src/main/res/animator/settings_exit.xml",
        "app/src/main/res/animator/settings_pop_enter.xml",
        "app/src/main/res/animator/settings_pop_exit.xml",
        "app/src/main/res/color/settings_text_primary.xml",
        "app/src/main/res/color/settings_text_secondary.xml",
        "app/src/main/res/drawable/ic_settings_chevron.xml",
        "app/src/main/res/drawable/ic_settings_close.xml",
        "app/src/main/res/drawable/settings_preview_swatch.xml",
        "app/src/main/res/layout/activity_clipboard_sync_settings.xml",
        "app/src/main/res/layout/activity_main.xml",
        "app/src/main/res/layout/activity_setup.xml",
        "app/src/main/res/layout/fragment_setup.xml",
        "app/src/main/res/layout/preference_settings_category.xml",
        "app/src/main/res/layout/preference_settings_checkbox.xml",
        "app/src/main/res/layout/preference_settings_navigation.xml",
        "app/src/main/res/layout/preference_settings_row.xml",
        "app/src/main/res/layout/preference_settings_search.xml",
        "app/src/main/res/layout/preference_settings_switch.xml",
        "app/src/main/res/layout/preference_settings_ui_palettes.xml",
        "app/src/main/res/layout/preference_settings_ui_preview.xml",
        "app/src/main/res/layout/settings_page.xml",
        "app/src/main/res/layout/settings_ui_appearance_preview.xml",
        "app/src/main/res/raw/keep.xml",
        "app/src/main/res/values-night/themes.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rCN/strings_settings_customization.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values-zh-rTW/strings_settings_customization.xml",
        "app/src/main/res/values/settings_keyboard_colors.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/main/res/values/strings_settings_customization.xml",
        "app/src/main/res/values/styles_settings_surfaces.xml",
        "app/src/main/res/values/styles_settings_ui_palettes.xml",
        "app/src/main/res/values/styles_settings_widgets.xml",
        "app/src/main/res/values/themes.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndexCoverageTest.kt",
        "gradle/libs.versions.toml",
        "tools/settings-ui-palettes/LICENSE-Material-Color-Utilities.txt",
        "tools/settings-ui-palettes/PaletteGenerator.java",
        "tools/settings-ui-palettes/README.md",
        "tools/settings-ui-palettes/palette-manifest.json"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "579b1632116b7523ed969dc8b37029e9bed73bd2",
      "date": "2026-10-21",
      "subject": "fix(ui): 提取并统一 MD3 页面、对话框与设置控件",
      "phase": "inherited",
      "paths": [
        ".github/workflows/material-settings.yml",
        "app/src/androidTest/java/org/fcitx/fcitx5/android/ui/main/MaterialSettingsPagesTest.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/ui/ClipboardSyncSettingsActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/ui/SettingsActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/dialog/InputMethodPickerDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/dialog/RimeSchemaMenuDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/BaseDynamicListUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/DynamicListEntryUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/MaterialSpinner.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/ProgressBarDialogIndeterminate.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/SettingsSlider.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/SettingsUiActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/ThemeSelectPreference.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/ClipboardEditActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/CropImageActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/LogActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/AddonDirProfileManagerFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/DialogSeekBarPreference.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/KeyPreferenceUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/TwinSeekBarPreference.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/ButtonsCustomizerActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/FontsetEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/PopupEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/SplitKeyboardCalibrationActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyboardEditorUiBuilder.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/LayoutFileProfileInputActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/LayoutNameInputActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/MacroEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/TextKeyboardLayoutProfilePickerActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/icon/IconThemeEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/CustomThemeActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeColorEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateHostsSettingsActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateMirrorEditActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/AlertDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/ErrorDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/SeekBar.kt",
        "app/src/main/res/layout/activity_clipboard_edit.xml",
        "app/src/main/res/layout/activity_log.xml",
        "app/src/main/res/layout/activity_settings.xml",
        "app/src/main/res/layout/activity_update_check.xml",
        "app/src/main/res/layout/activity_update_hosts.xml",
        "app/src/main/res/layout/activity_update_mirror_edit.xml",
        "app/src/main/res/layout/activity_update_mirror_list.xml",
        "app/src/main/res/layout/dialog_server_profile.xml",
        "app/src/main/res/layout/dialog_storage_location.xml",
        "app/src/main/res/layout/dialog_sync_account.xml",
        "app/src/main/res/layout/dialog_test_push.xml",
        "app/src/main/res/layout/item_update_asset.xml",
        "app/src/main/res/layout/preference_settings_search.xml",
        "app/src/main/res/menu/menu_update_mirror_edit.xml",
        "app/src/main/res/values-night/themes.xml",
        "app/src/main/res/values/styles_settings_widgets.xml",
        "app/src/main/res/values/themes.xml",
        "docs/maintainer/MD3_UI_EXTRACTION_2026-10-21.md",
        "tools/test-material-settings.sh"
      ],
      "document": "features/theme/settings-appearance.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "设置与引导"
    },
    {
      "sha": "b6810693620e391fca1bfb498ae10b29efda9fc2",
      "date": "2026-10-21",
      "subject": "fix(语音输入): 提交结束时最后一条 partial",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/VoiceInputProviderManager.kt"
      ],
      "document": "features/voice-input.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "语音"
    },
    {
      "sha": "c5d4f80abf10be875b59a332c2145ecbb6f3b2ac",
      "date": "2026-10-21",
      "subject": "修复：扩大符号面板最近使用上限",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/SymbolPanelUi.kt"
      ],
      "document": "maintainer/history/index.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "构建、整理与文档"
    },
    {
      "sha": "1c05d8bc3a31ea3851f017bb03d54cf16c919b61",
      "date": "2026-10-21",
      "subject": "修复(输入): 空格键长按切换 Rime 方案",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/dialog/InputMethodPickerDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/SpaceLongPressBehavior.kt",
        "app/src/main/res/values-de/strings.xml",
        "app/src/main/res/values-es/strings.xml",
        "app/src/main/res/values-ja/strings.xml",
        "app/src/main/res/values-ko/strings.xml",
        "app/src/main/res/values-ru/strings.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "44d6431583ec179a05e37e8d30c01ec19c2529b8",
      "date": "2026-10-22",
      "subject": "修复(主题): 避免缺失主题属性导致崩溃",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/dialog/InputMethodPickerDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeListFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeShareImportManager.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "e0e3bbb2abeb69ea37517c02e1a243a6607589f2",
      "date": "2026-10-22",
      "subject": "新增(输入): 浮动键盘移动把手自动隐藏",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardModesFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/candidate-window.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "候选与输入"
    },
    {
      "sha": "0015dced8f4101be1a00a33412291baed137a9b0",
      "date": "2026-10-22",
      "subject": "改进(主题): 预览键盘同时显示工具栏",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/KeyboardPreviewUi.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "主题与字体"
    },
    {
      "sha": "5fb6bca3415107ebe088b98751109f5b4f644972",
      "date": "2026-10-22",
      "subject": "优化键盘布局编辑器选择器",
      "phase": "inherited",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "历史提交与现行主题入口对照；是否仍生效以当前源码及功能说明为准。",
      "topic": "布局与宏"
    },
    {
      "sha": "1fbbf1ab01aef2cac82a7fcd054b06627e1857b4",
      "date": "2026-10-22",
      "subject": "feat(ime): 用直连 librime 接入完整键盘并移除 Fcitx 原生后端",
      "phase": "direct",
      "paths": [
        ".gitmodules",
        "app/build.gradle.kts",
        "app/licenses/libraries/fcitx5-rime.json",
        "app/licenses/libraries/fcitx5.json",
        "app/licenses/libraries/libintl-lite.json",
        "app/licenses/libraries/libuv.json",
        "app/org.fcitx.fcitx5.android.yml",
        "app/proguard-rules.pro",
        "app/src/androidTest/java/org/fcitx/fcitx5/android/FcitxTest.kt",
        "app/src/androidTest/java/org/fcitx/fcitx5/android/core/DirectRimeFrontendTest.kt",
        "app/src/androidTest/java/org/fcitx/fcitx5/android/ui/main/MaterialSettingsPagesTest.kt",
        "app/src/androidTest/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/KeyboardLayoutAdapterViewTest.kt",
        "app/src/main/AndroidManifest.xml",
        "app/src/main/baseline-prof.txt",
        "app/src/main/cpp/CMakeLists.txt",
        "app/src/main/cpp/androidaddonloader/androidaddonloader.cpp",
        "app/src/main/cpp/androidaddonloader/androidaddonloader.h",
        "app/src/main/cpp/androidfrontend/CMakeLists.txt",
        "app/src/main/cpp/androidfrontend/androidfrontend.conf.in.in",
        "app/src/main/cpp/androidfrontend/androidfrontend.cpp",
        "app/src/main/cpp/androidfrontend/androidfrontend.h",
        "app/src/main/cpp/androidfrontend/androidfrontend_public.h",
        "app/src/main/cpp/androidfrontend/inputcontextcache.h",
        "app/src/main/cpp/androidnotification/CMakeLists.txt",
        "app/src/main/cpp/androidnotification/androidnotification.cpp",
        "app/src/main/cpp/androidnotification/androidnotification.h",
        "app/src/main/cpp/androidnotification/notifications.conf.in.in",
        "app/src/main/cpp/helper-types.h",
        "app/src/main/cpp/jni-utils.h",
        "app/src/main/cpp/native-lib.cpp",
        "app/src/main/cpp/nativestreambuf.h",
        "app/src/main/cpp/object-conversion.h",
        "app/src/main/cpp/po/CMakeLists.txt",
        "app/src/main/cpp/po/LINGUAS",
        "app/src/main/cpp/po/de.po",
        "app/src/main/cpp/po/es.po",
        "app/src/main/cpp/po/fcitx5-android.pot",
        "app/src/main/cpp/po/ja.po",
        "app/src/main/cpp/po/ko.po",
        "app/src/main/cpp/po/ru.po",
        "app/src/main/cpp/po/zh_CN.po",
        "app/src/main/cpp/po/zh_TW.po",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/network/Models.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/CandidatePageReader.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/DirectRimeBackend.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/DirectRimeConfig.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/Fcitx.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FcitxAPI.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FcitxDispatcher.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FcitxEvent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FcitxLifecycle.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FcitxUtils.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FormattedText.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/InputDiagnostics.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/InputEngine.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/InputKeyGate.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/InteractiveThreadPriority.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/Key.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/KeyCodec.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/Types.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/daemon/FcitxConnection.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/daemon/FcitxDaemon.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemeAestheticScore.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/BaseInputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/action/ButtonAction.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/expanded/window/BaseExpandedCandidateWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/config/ConfigProvider.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDrawable.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/TextKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/status/StatusAreaWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/AboutFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/DeveloperFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/MainFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/SettingsPage.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/FcitxPreferenceFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/LegacyEngineSettingsFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/PreferenceScreenFactory.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/SettingsRoute.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/addon/AddonListFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/AdvancedSettingsFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/MacroEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/TextKeyboardLayoutProfilePickerDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/global/GlobalConfigFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/group/SettingsGroupSpecs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/im/InputMethodListFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/im/RimeImportActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/Const.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/Drawable.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/Exception.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/ImmutableGraph.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/Ini.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/IniCodec.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/InputMethodService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/IsJavaIdentifier.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/PackageSignatures.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/config/ConfigDescriptor.kt",
        "app/src/main/res/values-zh-rCN/direct_rime.xml",
        "app/src/main/res/values-zh/direct_rime_labels.xml",
        "app/src/main/res/values-zh/direct_rime_settings.xml",
        "app/src/main/res/values/direct_rime.xml",
        "app/src/main/res/values/direct_rime_settings.xml",
        "app/src/main/resources/keysym-compat.tsv",
        "app/src/test/java/org/fcitx/fcitx5/android/StringEscapeTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/core/CandidatePageReaderTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/core/InputKeyGateTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/core/KeyCodecTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/daemon/ImmediateConnectionTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/utils/IniCodecTest.kt",
        "build-logic/convention/build.gradle.kts",
        "build-logic/convention/src/main/kotlin/AndroidAppConventionPlugin.kt",
        "build-logic/convention/src/main/kotlin/AndroidPluginAppConventionPlugin.kt",
        "build-logic/convention/src/main/kotlin/FcitxComponentPlugin.kt",
        "build-logic/convention/src/main/kotlin/FcitxHeadersPlugin.kt",
        "build-logic/convention/src/main/kotlin/NativeAppConventionPlugin.kt",
        "build-logic/convention/src/main/kotlin/NativeBaseConventionPlugin.kt",
        "build-logic/convention/src/main/kotlin/NativeBuildTasks.kt",
        "build-logic/convention/src/main/kotlin/NativeLibConventionPlugin.kt",
        "build-logic/convention/src/main/kotlin/ProjectExtensions.kt",
        "direct-rime/build.gradle.kts",
        "direct-rime/src/androidTest/java/org/fcitx/directrime/DirectRimeSmokeTest.kt",
        "direct-rime/src/androidTest/java/org/fcitx/directrime/InputConnectionSmokeTest.kt",
        "direct-rime/src/engine/java/org/fcitx/directrime/ProfileArchive.kt",
        "direct-rime/src/engine/java/org/fcitx/directrime/Snapshot.kt",
        "direct-rime/src/main/AndroidManifest.xml",
        "direct-rime/src/main/assets/smoke/default.yaml",
        "direct-rime/src/main/assets/smoke/direct_smoke.dict.yaml",
        "direct-rime/src/main/assets/smoke/direct_smoke.schema.yaml",
        "direct-rime/src/main/cpp/CMakeLists.txt",
        "direct-rime/src/main/cpp/bridge.cpp",
        "direct-rime/src/main/cpp/engine.cpp",
        "direct-rime/src/main/cpp/engine.h",
        "direct-rime/src/main/cpp/engine_test.cpp",
        "direct-rime/src/main/cpp/io-trace-test.cpp",
        "direct-rime/src/main/cpp/io-trace.cpp",
        "direct-rime/src/main/cpp/io-trace.h",
        "direct-rime/src/main/cpp/jni-strings.h",
        "direct-rime/src/main/cpp/leveldb-open.cpp",
        "direct-rime/src/main/cpp/record-link.cmake",
        "direct-rime/src/main/java/org/fcitx/directrime/DirectRimeService.kt",
        "direct-rime/src/main/java/org/fcitx/directrime/LabActivity.kt",
        "direct-rime/src/main/java/org/fcitx/directrime/RimeRuntime.kt",
        "direct-rime/src/main/res/values/ids.xml",
        "direct-rime/src/main/res/xml/input_method.xml",
        "direct-rime/src/test/java/org/fcitx/directrime/ProfileArchiveTest.kt",
        "gradle/libs.versions.toml",
        "lib/fcitx5/build.gradle.kts",
        "lib/fcitx5/src/main/AndroidManifest.xml",
        "lib/fcitx5/src/main/cpp/CMakeLists.txt",
        "lib/fcitx5/src/main/cpp/cmake/Fcitx5AndroidInstallDirs.cmake",
        "lib/fcitx5/src/main/cpp/cmake/Fcitx5UtilsConfig.cmake",
        "lib/fcitx5/src/main/cpp/cmake/Fcitx5UtilsConfigVersion.cmake",
        "lib/fcitx5/src/main/cpp/cmake/FindECM.cmake",
        "lib/fcitx5/src/main/cpp/cmake/FindFcitx5Config.cmake",
        "lib/fcitx5/src/main/cpp/cmake/FindFcitx5Core.cmake",
        "lib/fcitx5/src/main/cpp/cmake/FindFcitx5Module.cmake",
        "lib/fcitx5/src/main/cpp/cmake/FindFcitx5Utils.cmake",
        "lib/fcitx5/src/main/cpp/cmake/FindPkgConfig.cmake",
        "lib/fcitx5/src/main/cpp/cmake/FindZLIB.cmake",
        "lib/fcitx5/src/main/cpp/cmake/HookAddCustomCommand.cmake",
        "lib/fcitx5/src/main/cpp/fcitx5",
        "native/README.md",
        "native/prebuilt",
        "native/rime-data/default.yaml",
        "native/rime-prelude",
        "plugin/rime/src/main/cpp/CMakeLists.txt",
        "plugin/rime/src/main/cpp/fcitx5-rime",
        "plugin/rime/src/main/cpp/rime-essay",
        "plugin/rime/src/main/cpp/rime-luna-pinyin",
        "plugin/rime/src/main/cpp/rime-stroke",
        "prepare_personal_build.sh",
        "settings.gradle.kts"
      ],
      "document": "maintainer/DIRECT_RIME_MAINTAINER_GUIDE_zh-CN.md",
      "outcome": "直连引擎、owner 线程与旧后端移除；以当前架构手册说明，原接入报告归档。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "20b287a747c457fc69960763e47c2690e2c99534",
      "date": "2026-10-22",
      "subject": "build(rime): 更新引擎并固定独立定制源码来源",
      "phase": "direct",
      "paths": [
        "app/licenses/libraries/librime.json",
        "native/prebuilt"
      ],
      "document": "maintainer/DIRECT_RIME_MAINTAINER_GUIDE_zh-CN.md",
      "outcome": "定制 librime 来源与六步更新；pin 以 gitlink 查询，不复制历史版本作当前事实。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "685e3895552f662d3749589aebb019113adbdda6",
      "date": "2026-10-22",
      "subject": "fix(logging): 修复连续日志导出与子进程生命周期",
      "phase": "direct",
      "paths": [
        "app/src/androidTest/java/org/fcitx/fcitx5/android/ui/main/log/LogExportTest.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/LogActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/log/LogAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/log/LogExportStore.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/log/LogExportViewModel.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/log/LogView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/Logcat.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/log/LogExportStoreTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/utils/LogcatLifecycleTest.kt"
      ],
      "document": "troubleshooting/report-issue.md",
      "outcome": "连续日志导出与子进程生命周期；反馈入口与原始日志证据保留。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "fb928306952a12efc34250bf1f29f1782adcc815",
      "date": "2026-10-22",
      "subject": "build(ci): 整理签名发布、APK 审计与输入回归工具",
      "phase": "direct",
      "paths": [
        ".gitattributes",
        ".github/workflows/ci.yml",
        ".github/workflows/direct-rime-cold-probe.yml",
        ".github/workflows/direct-rime.yml",
        ".github/workflows/fcitx-direct-perf.yml",
        ".github/workflows/fcitx-direct-profile.yml",
        ".github/workflows/foxy-release-perf.yml",
        ".github/workflows/material-settings.yml",
        ".github/workflows/pr.yml",
        ".github/workflows/rime-candidate-perf.yml",
        ".github/workflows/rime-rebind-perf.yml",
        ".github/workflows/wanxiang-perf.yml",
        ".github/workflows/wanxiang-screen-perf.yml",
        ".gitignore",
        "tools/audit-direct-rime-link.py",
        "tools/candidate-perf/CandidateTapTest.kt",
        "tools/candidate-perf/README.md",
        "tools/candidate-perf/build-products.sh",
        "tools/candidate-perf/host/AndroidManifest.xml",
        "tools/candidate-perf/host/BenchControl.java",
        "tools/candidate-perf/host/BenchHost.java",
        "tools/candidate-perf/run.py",
        "tools/foxy-perf/README.md",
        "tools/foxy-perf/apk_profiles.py",
        "tools/foxy-perf/build-release.sh",
        "tools/foxy-perf/build-send-host.py",
        "tools/foxy-perf/compare.sh",
        "tools/foxy-perf/host/AndroidManifest.xml",
        "tools/foxy-perf/host/BenchControl.java",
        "tools/foxy-perf/host/BenchHost.java",
        "tools/foxy-perf/host/Replay.java",
        "tools/foxy-perf/pilot.py",
        "tools/foxy-perf/points.json",
        "tools/foxy-perf/probe.py",
        "tools/foxy-perf/run.py",
        "tools/foxy-perf/send-host/SendHost.java",
        "tools/foxy-perf/send-host/SendReplay.java",
        "tools/foxy-perf/send_race.py",
        "tools/input-perf/EngineComparisonTest.kt",
        "tools/input-perf/LevelDbOpenProbe.cpp",
        "tools/input-perf/analyze-engines.py",
        "tools/input-perf/build-rebind-products.sh",
        "tools/input-perf/capture.sh",
        "tools/input-perf/compare-apks.py",
        "tools/input-perf/compare-engines.py",
        "tools/input-perf/compare-rebind.py",
        "tools/input-perf/prepare-wanxiang.py",
        "tools/input-perf/probe-cold-io.lua",
        "tools/input-perf/probe-cold-io.sh",
        "tools/input-perf/summarize.py",
        "tools/input-perf/test-leveldb-open.py",
        "tools/screen-perf/.gitignore",
        "tools/screen-perf/README.md",
        "tools/screen-perf/ScreenFixtureTest.kt",
        "tools/screen-perf/analyze.py",
        "tools/screen-perf/build-host.sh",
        "tools/screen-perf/build-products.sh",
        "tools/screen-perf/config/.gitattributes",
        "tools/screen-perf/config/user.yaml",
        "tools/screen-perf/config/wanxiang.custom.yaml",
        "tools/screen-perf/host/AndroidManifest.xml",
        "tools/screen-perf/host/BenchControl.java",
        "tools/screen-perf/host/BenchHost.java",
        "tools/screen-perf/prepare.py",
        "tools/screen-perf/run.py",
        "tools/screen-perf/runtime_config.py",
        "tools/screen-perf/sensitivity.py",
        "tools/screen-perf/summarize.py",
        "tools/screen-perf/upstream/BenchTrace.java",
        "tools/test-direct-rime-frontend.sh",
        "tools/test-material-settings.sh",
        "tools/verify-direct-rime-apk.py"
      ],
      "document": "maintainer/DIRECT_RIME_MAINTAINER_GUIDE_zh-CN.md",
      "outcome": "签名发布、APK 与 ART 审计；分开描述构建通过与功能验收。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "bb79146f61681affa72d912b9c1afc83d198943f",
      "date": "2026-10-22",
      "subject": "docs(readme): 更新文档入口并移除代码分支 docs 目录",
      "phase": "direct",
      "paths": [
        "README.md",
        "docs/maintainer/MD3_UI_EXTRACTION_2026-10-21.md"
      ],
      "document": "maintainer/documentation.md",
      "outcome": "代码与 docs 分支分离；更新文档存放、导航与检查约定。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "44f9008417779d1ff84621e42a4e04c3f0976d4f",
      "date": "2026-10-22",
      "subject": "修复(键盘): 标点键按默认键值发送",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt"
      ],
      "document": "features/keys/symbol-key.md",
      "outcome": "SymbolKey 默认发句号、CommaKey 发逗号交给方案；修正 label 不等于上屏文本、逗号菜单和类型总览的旧说明。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "af00ffcf80e0514f9bb254f51905f6bfc32f41fa",
      "date": "2026-10-22",
      "subject": "改进 Rime 方案 ZIP 导入流程",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/core/DirectRimeBackend.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/ShareReceiveDirectoryPicker.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/ShareReceiveManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/im/RimeImportActivity.kt",
        "app/src/main/res/values-zh-rCN/direct_rime.xml",
        "app/src/main/res/values/direct_rime.xml"
      ],
      "document": "manual/DIRECT_RIME_USER_GUIDE_zh-CN.md",
      "outcome": "ZIP 根目录、512 MiB、应用/外部目录选择与权限回退；补齐用户导入流程。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "4e5e11df2d5018ab417cf7eca46c940a7fbb8203",
      "date": "2026-10-23",
      "subject": "修复(键盘): 数字键盘按键被虚拟键转发整类丢弃",
      "phase": "direct",
      "paths": [
        "app/build.gradle.kts",
        "app/src/androidTest/java/org/fcitx/fcitx5/android/core/DirectRimeFrontendTest.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/DirectRimeBackend.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/KeySym.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/core/KeySymEditorUnicodeTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "数字键盘输入修复；归入键盘行为与布局文档，不宣称增加新键类型。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "8b08338703984f036becb3a5d7215e6bf0918814",
      "date": "2026-10-24",
      "subject": "改进(布局编辑器): 整合按键编辑、结构管理与 MD3 界面",
      "phase": "direct",
      "paths": [
        "app/build.gradle.kts",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/MaterialSpinner.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/KeyboardLayoutAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutEditHistory.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyEditorForm.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyEditorResultHost.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyboardEditorUiBuilder.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/EditorUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/KeyboardCanvasOverlay.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/KeyboardEditorWorkspace.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/KeyboardKeyInspector.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/LayoutKeyOperations.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/preview/KeyboardPreviewDimensions.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/preview/KeyboardPreviewManager.kt",
        "app/src/main/res/values-de/layout_editor_strings.xml",
        "app/src/main/res/values-es/layout_editor_strings.xml",
        "app/src/main/res/values-ja/layout_editor_strings.xml",
        "app/src/main/res/values-ko/layout_editor_strings.xml",
        "app/src/main/res/values-ru/layout_editor_strings.xml",
        "app/src/main/res/values-zh-rCN/layout_editor_strings.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/layout_editor_strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/layout_editor_strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/main/res/values/styles_keyboard_editor.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutEditHistoryTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/EditorApplicationShadow.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/KeyEditorFormTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/KeyboardEditorWorkspaceTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/LayoutKeyOperationsTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/preview/KeyboardPreviewDimensionsTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "布局、结构与按键编辑整合，补页面保存和当前编辑位置说明。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "62970dd6fe87865fcabf8556fa7476c24986fe02",
      "date": "2026-10-24",
      "subject": "修复(设置界面): 统一标题栏按钮与标题的垂直对齐",
      "phase": "direct",
      "paths": [
        "app/src/main/res/values/styles_settings_widgets.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/common/SettingsToolbarTest.kt"
      ],
      "document": "features/theme/settings-appearance.md",
      "outcome": "设置标题栏对齐，归入现行 MD3 外观；不重用历史界面截图证明当前布局。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "aef0c21e6f7fdb0bff0132d1399f14ca220fc8e1",
      "date": "2026-10-24",
      "subject": "修复(数据目录): 统一列表底色并保持更多按钮清晰可见",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/BaseDynamicListUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/DynamicListEntryUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/AddonDirProfileManagerFragment.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/common/DynamicListEntryUiTest.kt"
      ],
      "document": "manual/DIRECT_RIME_USER_GUIDE_zh-CN.md",
      "outcome": "数据目录列表底色和更多按钮；目录操作入口保持一致。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "6af8bc0b7ca048a304952a4cbc4525e6c9f247b1",
      "date": "2026-10-26",
      "subject": "修复(键盘结构): 调整行操作并修复拖动卡片底色",
      "phase": "direct",
      "paths": [
        "app/src/androidTest/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/KeyboardLayoutAdapterViewTest.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/DraggableFlowLayout.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/KeyboardLayoutAdapter.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/KeyEditorFormTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "行标题栏方向和拖动底色；补结构管理说明。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "b211519ec35fbfc0bcb230bf03adffa04690dfff",
      "date": "2026-10-28",
      "subject": "基础(构建): 规范 ABI 与资源生成并补齐有界 I/O",
      "phase": "direct",
      "paths": [
        "app/build.gradle.kts",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/BoundedStreams.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/FileUtil.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/utils/ZipCompat.kt",
        "app/src/main/res/values-de/strings_local.xml",
        "app/src/main/res/values-es/strings_local.xml",
        "app/src/main/res/values-ja/strings_local.xml",
        "app/src/main/res/values-ko/strings_local.xml",
        "app/src/main/res/values-ru/strings_local.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rCN/strings_local.xml",
        "app/src/main/res/values-zh-rTW/strings_local.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/main/res/values/strings_local.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/utils/BoundedStorageTest.kt",
        "build-logic/convention/build.gradle.kts",
        "build-logic/convention/src/main/kotlin/AndroidAppConventionPlugin.kt",
        "build-logic/convention/src/main/kotlin/BuildAbiSelection.kt",
        "build-logic/convention/src/main/kotlin/DataDescriptorPlugin.kt",
        "build-logic/convention/src/main/kotlin/NativeBaseConventionPlugin.kt",
        "build-logic/convention/src/test/kotlin/BuildAbiSelectionTest.kt"
      ],
      "document": "maintainer/DIRECT_RIME_MAINTAINER_GUIDE_zh-CN.md",
      "outcome": "ABI、资源描述与有界 I/O；说明环境变量和属性、当前 ARM64 CI。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "44339d26f66006ebff9425d0b19a3e7819be1564",
      "date": "2026-10-28",
      "subject": "优化(输入): 合并直连生命周期、会话隔离与候选提示",
      "phase": "direct",
      "paths": [
        "app/src/androidTest/java/org/fcitx/fcitx5/android/core/DirectRimeFrontendTest.kt",
        "app/src/androidTest/java/org/fcitx/fcitx5/android/core/RimeShutdownPersistenceTest.kt",
        "app/src/androidTest/java/org/fcitx/fcitx5/android/input/dialog/SchemaMenuChoicesViewTest.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/CandidateActionContext.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/DirectRimeBackend.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/EngineLifecycleController.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FcitxAPI.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FcitxEvent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/FcitxLifecycle.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/InputEngine.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/InputEngineApi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/InputEventQueue.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/StatusHintLifetime.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/daemon/FcitxDaemon.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/BaseInputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/CandidatesView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/EditorSessionTracker.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputMenuRequestTracker.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputViewTaskDispatcher.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/action/ButtonAction.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/KawaiiBarComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/broadcast/InputBroadcaster.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/broadcast/PreeditEmptyStateComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/broadcast/PunctuationComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/broadcast/ReturnKeyDrawableComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/expanded/window/BaseExpandedCandidateWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/expanded/window/FlexboxExpandedCandidateWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/expanded/window/GridExpandedCandidateWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/CandidateUpdatePlan.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateViewAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/clipboard/ClipboardWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/clipboard/TokenizedClipboardWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/dependency/InputUniqueComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/dependency/UniqueViewComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/dialog/RimeSchemaMenuDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/dialog/SchemaMenuChoices.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/editing/TextEditingWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/editorinfo/EditorInfoWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyboardWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/MacroInputController.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/PickerWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/PopupComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/popup/ThemedPopupMenu.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/preedit/PreeditComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/preedit/PreeditUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/status/StatusAreaWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/wm/InputWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/wm/InputWindowManager.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/core/CandidateActionEventTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/core/CandidateActionGuardTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/core/EngineLifecycleControllerTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/core/InputEngineApiTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/core/InputEventQueueTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/core/ReleaseSnapshotTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/core/StatusHintLifetimeTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/EditorSessionTrackerTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/InputMenuRequestTrackerTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/InputViewTaskDispatcherTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/MacroKeyReleaseTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/NullBindingUnbindTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/candidates/horizontal/CandidateUpdatePlanTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/candidates/horizontal/MovingCandidateBadgeTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/dependency/InputComponentTypeTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/dialog/SchemaMenuChoicesTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/keyboard/CustomGestureViewHoldTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/keyboard/MacroInputControllerTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/popup/ThemedPopupMenuFocusTest.kt",
        "direct-rime/src/engine/java/org/fcitx/directrime/Snapshot.kt",
        "direct-rime/src/main/cpp/CMakeLists.txt",
        "direct-rime/src/main/cpp/engine.cpp"
      ],
      "document": "maintainer/DIRECT_RIME_MAINTAINER_GUIDE_zh-CN.md",
      "outcome": "会话隔离、生命周期和候选提示；核对 InputEventQueue 的副作用保序、展示合并与 owner 外背压，修正旧 Channel 描述。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "0deb440c325f693c217557e7a126643bd43b5860",
      "date": "2026-10-28",
      "subject": "修复(资产): 统一安全迁移与内置预设同步",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/core/data/AssetMigration.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/data/DataHierarchy.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/data/DataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/data/FileAction.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/core/data/AssetMigrationTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "资产安全迁移和内置预设更新；保留用户修改，维护页说明登记旧字节数。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "fe0bcb76cf514424ae2e632972720b42264f1cd8",
      "date": "2026-10-28",
      "subject": "修复(编辑器): 合并草稿、保存快照与页面返回结果",
      "phase": "direct",
      "paths": [
        "app/src/androidTest/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/LayoutEditorResultTest.kt",
        "app/src/androidTest/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/KeyboardLayoutAdapterViewTest.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/FontsetEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardGroupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/PopupEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/SymbolSettingsFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/EditorDraftState.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDraftJsonCache.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDraftStore.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutEditHistory.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutEditorResultStore.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyEditorPendingResults.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/KeyEditorResultHost.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/LayoutFileProfileInputActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/LayoutNameInputActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/MacroEditorActivity.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDraftJsonCacheTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutDraftStoreTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutEditorResultStoreTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/data/LayoutSaveSnapshotTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/KeyEditorFormTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/KeyEditorPendingResultsTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/LegacySwipeEditorRoundTripTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/MacroBaselineTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/MacroKeyDialogTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/StandaloneEditorDraftTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "草稿、快照、页面结果合并；补未确认弹窗与强杀边界。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "5d9927758448c7e160d35d7c6804bea3190d1974",
      "date": "2026-10-28",
      "subject": "修复(主题): 校验导入、兼容旧名并后台初始化",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxApplication.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/IconThemeManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ManagedThemePreference.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemeFilesManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemeManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemeStoragePaths.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/icon/IconThemeEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/icon/IconThemeListActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/icon/IconThemeQrImporter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/CustomThemeActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeListFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/ThemeShareImportManager.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/theme/LegacyThemeFilenameTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/theme/ThemeImportSafetyTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/theme/ThemeStartupSafetyTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/theme/ThemeStoragePathsTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/icon/IconThemeQrImporterTest.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "主题导入校验、旧名与后台初始化；功能说明和原始验证分别存放。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "1d173f08af092d78d6702a52b7c8648a8296ee6a",
      "date": "2026-10-28",
      "subject": "修复(日志与弹窗): 留存崩溃栈并完成取消后的窗口清理",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxApplication.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/ProgressBarDialogIndeterminate.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/LogActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/log/CrashReportStore.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/log/LogExportStore.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/log/LogExportViewModel.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/LegacyApiCompatibilityTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/common/LoadingDialogLifecycleTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/log/CrashReportStoreTest.kt"
      ],
      "document": "troubleshooting/report-issue.md",
      "outcome": "崩溃栈留存与取消后窗口清理；反馈文档保留日志收集入口。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "a34c935953b8789976aee74054f0cd684c31b220",
      "date": "2026-10-28",
      "subject": "修复(剪贴板同步): 保护保存顺序、约束载荷并后台过滤",
      "phase": "direct",
      "paths": [
        "app/src/androidTest/java/org/fcitx/fcitx5/android/data/clipboard/ClearUrlsAndroidTest.kt",
        "app/src/main/assets/clearurls/COPYING.GPL-3.0.txt",
        "app/src/main/assets/clearurls/LICENSE.LGPL-3.0.txt",
        "app/src/main/assets/clearurls/NOTICE.md",
        "app/src/main/assets/clearurls/data.min.json",
        "app/src/main/assets/clearurls/source.json",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/Base64Payload.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/ClipboardEcho.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/ClipboardTaskQueue.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/SyncServerPreferences.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/SyncStateStore.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/network/BoundedWebSocketTransport.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/network/ClipCascadeClient.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/network/ClipCascadePayloadBudget.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/network/OneClipEventClient.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/network/SyncClient.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/network/SyncServerAddress.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/network/WebSocketFrameGuard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/ui/SettingsActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/clipboard/ClipboardManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/clipboard/HostClipboardFilter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/clipboard/db/ClipboardDao.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/ClipboardEditActivity.kt",
        "app/src/main/res/layout/dialog_server_profile.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/clipboardsync/Base64PayloadTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/clipboardsync/ClipboardEchoTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/clipboardsync/ClipboardTaskQueueTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/clipboardsync/MainServiceStopTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/clipboardsync/SyncServerPreferencesTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/clipboardsync/SyncStateMigrationSafetyTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/clipboardsync/network/BoundedWebSocketTransportTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/clipboardsync/network/ClipCascadePayloadBudgetTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/clipboardsync/network/OneClipConnectionTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/clipboardsync/network/SyncServerAddressTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/clipboardsync/network/WebSocketFrameGuardTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/clipboard/ClearUrlsRuleFilterTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/clipboard/ClipboardRemoteLifecycleTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/clipboard/ClipboardUrlFilterTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/clipboard/ClipboardUrlHistoryTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/ClipboardEditActivityTest.kt",
        "lib/common/src/main/java/org/fcitx/fcitx5/android/common/clearurls/ClearUrlsRuleFilter.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "保存顺序、载荷约束和后台过滤；说明退出、暂停和服务生命周期。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "017c862e71359e2ee759b32542774c5d0c4040a1",
      "date": "2026-10-28",
      "subject": "修复(语音): 按编辑器与请求会话隔离 AIDL 和浮窗回调",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/FcitxInputMethodService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/FloatingVoiceResultGate.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/SessionBoundVoiceCallback.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/SessionBoundVoiceFinish.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/VoiceInputProviderManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/VoiceProviderDeathLink.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/FloatingVoiceReceiverTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/FloatingVoiceResultGateTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/SessionBoundVoiceCallbackTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/SessionBoundVoiceFinishTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/VoiceFinishIntegrationTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/VoiceProviderDeathLinkTest.kt",
        "lib/common/src/main/java/org/fcitx/fcitx5/android/common/ipc/VoiceInputIpc.kt"
      ],
      "document": "features/voice-input.md",
      "outcome": "AIDL/浮窗按编辑器与请求隔离；保留令牌回填条件。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "4c3257a9854918ac3399332db71dc0b9117040a0",
      "date": "2026-10-28",
      "subject": "修复(访问): 加固局域网配对、网页保存与文件 IPC",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxRemoteService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/provider/DocumentPathGuard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/provider/FcitxDataProvider.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/webeditor/BridgeSessionAccess.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/webeditor/ImeWebEditorBridgeServer.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/RemoteServicePermissionTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/provider/FcitxDataProviderSafetyTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/webeditor/BridgePhoneSaveTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/webeditor/BridgeSessionAccessTest.kt"
      ],
      "document": "features/online-editor.md",
      "outcome": "局域网配对、网页保存与 IPC；核对六位码和同签名边界。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "698ba579529c9c98bb3896fdbdcd341983a2349c",
      "date": "2026-10-28",
      "subject": "修复(更新): 持久化断点下载并安全发布",
      "phase": "direct",
      "paths": [
        "app/src/androidTest/java/org/fcitx/fcitx5/android/ui/main/MaterialSettingsPagesTest.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxApplication.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/DownloadFiles.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/DownloadPublisher.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/HostsDownloadUiState.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/HostsDownloadWorker.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/HostsDownloads.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/ResumableAssetDownload.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateAssetAdapter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/UpdateCheckActivity.kt",
        "app/src/main/res/menu/menu_update_check.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/update/DownloadPublisherTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/update/DownloadStartupPolicyTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/update/HostsDownloadWorkerTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/update/HostsDownloadsLifecycleTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/update/ResumableAssetDownloadTest.kt"
      ],
      "document": "features/update-checker.md",
      "outcome": "持久断点下载与安全发布；保留强 ETag、取消和回退条件。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "e698ecead9ea853ae655990f84380836b818a783",
      "date": "2026-10-28",
      "subject": "修复(备份恢复): 加密备份并隔离恢复进程与目录事务",
      "phase": "direct",
      "paths": [
        "app/src/androidTest/java/org/fcitx/fcitx5/android/data/UserDataRestoreProcessAndroidTest.kt",
        "app/src/main/AndroidManifest.xml",
        "app/src/main/java/org/fcitx/fcitx5/android/FcitxApplication.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/DirectRimeConfig.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/DirectoryMoveJournal.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/ProtectedBackup.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/SharedPreferencesRestore.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/SqliteSnapshots.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/UiSettingsBackupAgent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/UserDataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/UserDataRestoreJournal.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/UserDataRestoreRuntime.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/UserDataRestoreTransaction.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/BackupProtectionDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/DataBackupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/UserDataRestoreActivity.kt",
        "app/src/main/res/xml/data_extraction_rules.xml",
        "app/src/main/res/xml/full_backup_content.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/core/DirectRimeConfigSafetyTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/core/DirectoryMoveJournalTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/ProtectedBackupTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/SharedPreferencesRestoreTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/SqliteSnapshotsTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/UiSettingsBackupTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/UserDataClipboardImportTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/UserDataRestoreJournalTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/UserDataRestoreProcessTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/UserDataRestoreStartupTest.kt"
      ],
      "document": "features/backup-restore.md",
      "outcome": "加密备份、跨进程恢复、目录事务；区分 Rime 同步与完整备份。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "7396760cf345d8945f627978009981e0bb62302d",
      "date": "2026-10-28",
      "subject": "维护(文档与CI): 归并中文文档入口、资产校验与 ARM64 构建",
      "phase": "direct",
      "paths": [
        ".gitattributes",
        ".github/workflows/ci.yml",
        ".github/workflows/pr.yml",
        "ASR_VOICE_INPUT_AIDL_INTEGRATION.md",
        "README.md",
        "tools/test_verify_clearurls_assets.py",
        "tools/verify-direct-rime-apk.py"
      ],
      "document": "maintainer/documentation.md",
      "outcome": "中文说明归并和 ARM64 构建；修正当前手册中的四 ABI PR 旧叙述。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "e2b032ade23e9cf9b9018e4630b40bdbe9b8613c",
      "date": "2026-10-28",
      "subject": "改进(CI): 启用 Gradle 并行与构建缓存，去掉 Release 出包的单线程限制",
      "phase": "direct",
      "paths": [
        "gradle.properties",
        "tools/foxy-perf/build-release.sh"
      ],
      "document": "maintainer/DIRECT_RIME_MAINTAINER_GUIDE_zh-CN.md",
      "outcome": "Gradle 并行与缓存；不照搬历史单线程构建参数。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "d8136afac80f439a5ce5bba16d31162feba77bff",
      "date": "2026-10-28",
      "subject": "修复(空格划动): 拖动即取消长按、慢速小滑补一格、光标步长放宽到 16dp",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CustomGestureView.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/keyboard/CustomGestureViewSwipeTest.kt"
      ],
      "document": "features/keyboard/swipe-actions.md",
      "outcome": "拖动取消长按、小滑补一格和 16 dp 步长；补空格键与用户手册。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "5500fac5675bd6ec3ad929a3bd1e8f09e78fe14b",
      "date": "2026-10-28",
      "subject": "改进(符号面板): 新增面板风格设置，可选 Gboard 式底栏",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/PickerLayout.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/PickerWindow.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/SymbolPanelStyle.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/SymbolPanelUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/input/picker/SymbolPanelStyleTest.kt"
      ],
      "document": "features/symbol-panel.md",
      "outcome": "新增 Gboard 式底栏；新建独立符号页，注明默认仍为左侧栏。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "bd9370aa073a6fff5190afb832a73b3e7f3e3aff",
      "date": "2026-10-28",
      "subject": "修复(构建): descriptor 目录键改用 POSIX 分隔符，避免 Windows 出包后启动失败",
      "phase": "direct",
      "paths": [
        "build-logic/convention/src/main/kotlin/DataDescriptorPlugin.kt",
        "build-logic/convention/src/test/kotlin/DataDescriptorPathTest.kt"
      ],
      "document": "maintainer/DIRECT_RIME_MAINTAINER_GUIDE_zh-CN.md",
      "outcome": "资产描述路径采用 POSIX 分隔符，避免 Windows 生成物启动异常。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "699a2422b7db50a94caaab0855b4a8ee041e78a7",
      "date": "2026-10-28",
      "subject": "修复(符号面板): 分组标签选中高亮改用按键几何，不再贴边与缩水",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/SymbolPanelUi.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/picker/SymbolPanelTabRadiusTest.kt"
      ],
      "document": "features/symbol-panel.md",
      "outcome": "分组高亮使用按键几何；和风格选择一起说明，不写成另一套词条。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "e4e9b0791db9be0c6b92bfe6f404774aa8d2ad2a",
      "date": "2026-10-28",
      "subject": "改进(设置): 界面外观改为即时生效，去掉「应用」与预览卡片",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/common/ExpressivePreferenceListStyle.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/SettingsUiAppearanceFragment.kt",
        "app/src/main/res/layout/preference_settings_ui_preview.xml",
        "app/src/main/res/layout/settings_ui_appearance_preview.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rCN/strings_settings_customization.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values-zh-rTW/strings_settings_customization.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/main/res/values/strings_settings_customization.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/theme/SettingsUiAppearanceImmediateTest.kt"
      ],
      "document": "features/theme/settings-appearance.md",
      "outcome": "删除预览/应用流程的旧说明，改为外观即时保存与生效。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "cad226c414fcf552986cfea69e70199ad594bdbe",
      "date": "2026-10-28",
      "subject": "功能(语音): 接入 JS 语音识别插件（QuickJS 宿主，内置 qwen-asr、豆包，支持导入自定义插件）",
      "phase": "direct",
      "paths": [
        "app/build.gradle.kts",
        "app/src/main/AndroidManifest.xml",
        "app/src/main/assets/bundled/js-voice/doubao-asr.js",
        "app/src/main/assets/bundled/js-voice/qwen-asr.js",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/VoiceInputProviderManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceFields.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceHeaders.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceHelpers.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceImporter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceInputProvider.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceInvoker.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoicePluginMeta.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoicePluginStore.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoicePrelude.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceProviders.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceSecretCrypto.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceSettingsStore.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardGroupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/search/SettingsSearchIndex.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/voice/JsVoicePluginSettingsActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/voice/JsVoicePluginSettingsFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/voice/JsVoicePluginsActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/voice/JsVoicePluginsFragment.kt",
        "app/src/main/res/layout/activity_js_voice_plugin_settings.xml",
        "app/src/main/res/layout/activity_js_voice_plugins.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceBridgeContractTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceFieldsTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceHeadersTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceHelpersTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceImporterTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoicePluginMetaTest.kt",
        "gradle/libs.versions.toml"
      ],
      "document": "features/voice-input-js.md",
      "outcome": "JS 宿主、导入与初始插件；拆分用户操作和完整开发协议。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "08733e7ca71e78e57755b799848a41e78a05eddb",
      "date": "2026-10-28",
      "subject": "文档(README): 更新功能概览与文档入口，补 JS 语音插件与本机构建环境链接",
      "phase": "direct",
      "paths": [
        "README.md"
      ],
      "document": "features/overview.md",
      "outcome": "README 功能入口与本站总览对齐；总览改按实际使用任务分组。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "239cacc0a97a158b7c5641d8148e14ebfba320ac",
      "date": "2026-10-28",
      "subject": "修复(构建): APK 校验允许 QuickJS 运行时 libquickjs.so",
      "phase": "direct",
      "paths": [
        "tools/verify-direct-rime-apk.py"
      ],
      "document": "maintainer/DIRECT_RIME_MAINTAINER_GUIDE_zh-CN.md",
      "outcome": "原生库白名单补上 libquickjs.so；说明新增库须通过同一门禁。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "43ec879182b1c9867b7a393dd19a3fca892764dc",
      "date": "2026-10-29",
      "subject": "修复(语音): 隐藏语音按钮时仍可设置首选输入",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/AppPrefs.kt"
      ],
      "document": "features/voice-input.md",
      "outcome": "隐藏工具栏语音按钮后仍可选择首选引擎；补设置入口。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "0636ba6f82d61cf8b734e583117b1a3b57009f48",
      "date": "2026-10-29",
      "subject": "修复(布局编辑器): 使用不透明的行拖动底色",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/adapter/KeyboardLayoutAdapter.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/editor/KeyEditorFormTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "结构编辑拖动卡片不透明，补入行编辑说明。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "fd9fb116b92119870a4fb08da8740be848124e34",
      "date": "2026-10-29",
      "subject": "修复(候选): 快速滑出候选范围时取消选择",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CustomGestureView.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/candidates/CandidateTouchCancellationTest.kt"
      ],
      "document": "features/candidate-window.md",
      "outcome": "快速滑出候选范围时取消本次选择，补用户手势说明。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "0e12f9ea0780a6c3d23df16041e32d96dee29c01",
      "date": "2026-10-29",
      "subject": "修复(豆包): 新版 API Key 自动切换 2.0 小时版资源",
      "phase": "direct",
      "paths": [
        "app/src/main/assets/bundled/js-voice/doubao-asr.js",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceFields.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoicePrelude.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceProviders.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/voice/JsVoicePluginSettingsFragment.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceBridgeContractTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceFieldsTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/voice/JsVoiceAuthDefaultsTest.kt"
      ],
      "document": "features/voice-input-js.md",
      "outcome": "豆包鉴权与资源 ID 联动，新 API key 默认 2.0 小时版。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "6bc86da723b84d00e8851b2c44e19d6bf749b5a9",
      "date": "2026-10-29",
      "subject": "功能(语音): 内置腾讯云 ASR 并补齐 HMAC 签名接口",
      "phase": "direct",
      "paths": [
        "README.md",
        "app/src/main/assets/bundled/js-voice/tencent-asr.js",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/ManagedPreferenceUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceCrypto.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceInputProvider.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoicePrelude.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceProviders.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/KeyboardGroupFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/voice/JsVoicePluginSettingsFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/voice/JsVoicePluginsFragment.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceBridgeContractTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceCryptoTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceImporterTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/voice/PreferredVoiceProvidersRefreshTest.kt"
      ],
      "document": "maintainer/implementation/js-voice-plugins.md",
      "outcome": "腾讯云识别、HMAC-SHA1 签名及 stub/prelude 契约，补遗漏 API。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "15a28d38c3b6607e82a190d003dea9c16a0c63c4",
      "date": "2026-10-29",
      "subject": "功能(语音插件): 更新千问并内置腾讯云实时翻译",
      "phase": "direct",
      "paths": [
        "README.md",
        "app/src/main/assets/bundled/js-voice/qwen-asr.js",
        "app/src/main/assets/bundled/js-voice/tencent-translate.js",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceProviders.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceBridgeContractTest.kt"
      ],
      "document": "features/voice-input-js.md",
      "outcome": "千问更新和腾讯云实时翻译；四插件清单与 AppID/UIN 区分。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "5b876da8345c18a0abaeb442ef191ff95fa98740",
      "date": "2026-10-29",
      "subject": "修复(工具栏): 显示语音按钮时保留收起键盘按钮",
      "phase": "direct",
      "paths": [
        "README.md",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/KawaiiBarComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/IdleUi.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/bar/VoiceToolbarButtonsTest.kt"
      ],
      "document": "features/kawaii-bar.md",
      "outcome": "语音与收起键盘按钮共存，补独立控制说明。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "ffd4196ffea69754a3ec4663b3b31d42a537a8b5",
      "date": "2026-10-29",
      "subject": "功能(语音): 长按工具栏快捷切换首选引擎",
      "phase": "direct",
      "paths": [
        "README.md",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/ManagedPreferenceUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/KawaiiBarComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/IdleUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/dialog/VoiceInputPickerDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/VoiceInputChoices.kt",
        "app/src/main/res/color/voice_input_choice_tint.xml",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/input/bar/VoiceToolbarButtonsTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/voice/VoiceInputDialogsTest.kt"
      ],
      "document": "features/voice-input.md",
      "outcome": "语音按钮长按切换首选引擎，补快捷操作。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "130bfe6b89008cb22c37da203d29b8a23bba8342",
      "date": "2026-10-29",
      "subject": "功能(语音插件): 增加逐插件的网络主机授权",
      "phase": "direct",
      "paths": [
        "README.md",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/VoiceInputProviderManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceHelpers.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceHostPermissions.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceInputProvider.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoicePluginStore.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceProviders.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/voice/JsVoiceHostPermissionDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/voice/JsVoicePluginSettingsFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/voice/JsVoicePluginsFragment.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceHostPermissionsTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/voice/VoiceInputDialogsTest.kt"
      ],
      "document": "features/voice-input-js.md",
      "outcome": "逐插件主机授权、升级新增主机与撤销；不得与声明白名单混同。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "e6b2da46ebc08df2f7ed86c7fb74dad6489e5368",
      "date": "2026-10-29",
      "subject": "修复(网页编辑器): 避免配对表单来源被拒绝",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/webeditor/ImeWebEditorBridgeServer.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/webeditor/BridgeSessionAccessTest.kt"
      ],
      "document": "features/online-editor.md",
      "outcome": "配对页面同源表单可提交；保留配对流程和服务重启失效条件。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "3a59624f974261c704d9c8f3d31943002c91626f",
      "date": "2026-10-29",
      "subject": "功能(语音): 引擎选择弹窗增加插件设置入口",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/dialog/VoiceInputPickerDialog.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml"
      ],
      "document": "features/voice-input.md",
      "outcome": "引擎选择器提供 JS 插件设置入口，补用户手册。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "c23999bf3894bde49f5708898f6ec0ac031ba6f6",
      "date": "2026-10-29",
      "subject": "修复(布局编辑器): 去除方案 ID 子布局的重复名称选项",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/manager/SubModeManager.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/manager/SubModeSchemaLabelsTest.kt"
      ],
      "document": "features/editor/layout-editor.md",
      "outcome": "方案 ID 子布局去重，保留默认映射与显示名称说明。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "595be9732d110ee3bce8f07b83b351abb18e8225",
      "date": "2026-10-30",
      "subject": "修复(语音): 限制 JS 会话资源并完善取消与插件备份",
      "phase": "direct",
      "paths": [
        "app/src/main/assets/bundled/js-voice/qwen-asr.js",
        "app/src/main/java/org/fcitx/fcitx5/android/data/UserDataManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/VoiceInputProviderManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/VoiceInputProviderRegistry.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceBinary.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceCommandQueue.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceHelpers.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceImporter.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceInputProvider.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceInvoker.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoicePluginMeta.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoicePluginStore.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoicePrelude.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceProviders.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceRuntime.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceSettingsStore.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/voice/JsVoicePluginSettingsFragment.kt",
        "app/src/main/res/values-zh-rCN/strings.xml",
        "app/src/main/res/values-zh-rTW/strings.xml",
        "app/src/main/res/values/strings.xml",
        "app/src/test/java/org/fcitx/fcitx5/android/data/JsVoiceBackupTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceBridgeContractTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceBudgetTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceHostPermissionsTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceImporterTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceSessionTest.kt"
      ],
      "document": "maintainer/implementation/js-voice-plugins.md",
      "outcome": "JS 内存/传输/回调预算、取消、Base64 拼接与插件备份；补预算表与密钥迁移边界。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "5b78c6ace39eefbabd049de0b5095e3da544fb02",
      "date": "2026-10-30",
      "subject": "修复(备份): 在 SQLite 内复制大条目并保留 WAL 状态",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/SqliteSnapshots.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/clipboard/ClipboardManager.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/SqliteSnapshotsTest.kt"
      ],
      "document": "features/backup-restore.md",
      "outcome": "SQLite 内部复制大条目与 WAL 状态，说明一致性而非宣称零风险。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "b4e9946c11d11bea8b70d6a93351c3a8852c135b",
      "date": "2026-10-30",
      "subject": "修复(剪贴板): 按顺序处理远端消息并限制队列容量",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/RemoteClipboardQueue.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/clipboardsync/RemoteClipboardQueueTest.kt"
      ],
      "document": "features/clipboard-sync.md",
      "outcome": "远端消息按顺序处理并限制排队字节，与输入提交通道区分。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "3f6d20bf2a4944568b9750ef82a224b007a91fd4",
      "date": "2026-10-30",
      "subject": "优化(输入): 缓存符号过滤并减少主题启动与光标转换开销",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemeManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/SymbolCatalog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/SymbolPanelUi.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/core/ReleaseSnapshotTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/data/theme/ThemeStartupSafetyTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/picker/SymbolCatalogParseTest.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/picker/SymbolPanelStyleTest.kt",
        "direct-rime/src/engine/java/org/fcitx/directrime/Snapshot.kt"
      ],
      "document": "maintainer/history/review-2026-10-30.md",
      "outcome": "符号过滤缓存、主题启动及 UTF-16 转换；保留分类审阅，不虚构提速数字。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "0f23ce5872c05b1fb0d3fe80701a2717db8b8430",
      "date": "2026-10-30",
      "subject": "修复(构建): 跟踪资产相对路径并流式计算描述哈希",
      "phase": "direct",
      "paths": [
        "build-logic/convention/build.gradle.kts",
        "build-logic/convention/src/main/kotlin/DataDescriptorPlugin.kt",
        "build-logic/convention/src/test/kotlin/DataDescriptorIncrementalTest.kt"
      ],
      "document": "maintainer/DIRECT_RIME_MAINTAINER_GUIDE_zh-CN.md",
      "outcome": "按相对路径追踪资产，流式计算摘要，补增量构建维护事项。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "1800cdf79c05259b9399c351e19534d508a94874",
      "date": "2026-10-30",
      "subject": "修复(语音设置): 保留授权弹窗的宿主窗口关联",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/SettingsUiPreferences.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/ui/main/settings/voice/VoiceInputDialogsTest.kt"
      ],
      "document": "maintainer/history/review-2026-10-30.md",
      "outcome": "网络授权弹窗保留宿主窗口关联；归入该次修复记录。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "a26d74836969159fdfd641842595a1158fd9cb21",
      "date": "2026-10-30",
      "subject": "修复(工具栏): 将语音键纳入可配置按钮栏",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/InputView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/action/ButtonAction.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/KawaiiBarComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ui/IdleUi.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/config/ButtonsConfig.kt",
        "app/src/test/java/org/fcitx/fcitx5/android/input/bar/VoiceToolbarButtonsTest.kt"
      ],
      "document": "features/kawaii-bar.md",
      "outcome": "语音键纳入可配置按钮；精确说明开关只补入、已配项不自动删除和密码框过滤。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "f6c870fba962855874cbf3d3fac30ba4038f2042",
      "date": "2026-10-30",
      "subject": "修复(主题): 尊重水波纹颜色透明度",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyboardWaterRippleView.kt"
      ],
      "document": "features/theme/theme-editor.md",
      "outcome": "水波纹尊重颜色 alpha，补半透明与全透明行为。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "b4bb8debebde6a95552fc5f9f9401788027f9396",
      "date": "2026-10-30",
      "subject": "修复(设置): 升级转场库避免返回崩溃",
      "phase": "direct",
      "paths": [
        "app/build.gradle.kts",
        "gradle/libs.versions.toml"
      ],
      "document": "features/theme/settings-appearance.md",
      "outcome": "转场库修复返回崩溃，文档保留适用系统和动画选项边界。",
      "topic": "直连版逐项核对"
    },
    {
      "sha": "81ce935746eb4e17911bd503ddb2012fdb6b8435",
      "date": "2026-10-30",
      "subject": "调整(设置): 默认关闭预测性返回",
      "phase": "direct",
      "paths": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/SettingsUiMotionPreferences.kt"
      ],
      "document": "features/theme/settings-appearance.md",
      "outcome": "预测性返回默认关闭，明确保留用户已有选择，删除默认开启的旧文案。",
      "topic": "直连版逐项核对"
    }
  ],
  "feature_coverage": [
    {
      "document": "features/backup-restore.md",
      "title": "备份与恢复",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/data/RimeProfileBackup.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/UserDataManager.kt"
      ]
    },
    {
      "document": "features/candidate-window.md",
      "title": "候选窗增强",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/CandidateIndexResolver.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/candidates/horizontal/HorizontalCandidateComponent.kt"
      ]
    },
    {
      "document": "features/clipboard-sync.md",
      "title": "剪贴板同步（内置）",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/MainService.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/clipboardsync/RemoteClipboardQueue.kt"
      ]
    },
    {
      "document": "features/editor/fontset-editor.md",
      "title": "字体集编辑器（字体设定）",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/FontsetEditorActivity.kt"
      ]
    },
    {
      "document": "features/editor/layout-editor.md",
      "title": "键盘布局编辑器",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/TextKeyboardLayoutEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/manager/SubModeManager.kt"
      ]
    },
    {
      "document": "features/editor/macrokey-editor.md",
      "title": "MacroKey 编辑器",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/dialog/MacroEditorActivity.kt"
      ]
    },
    {
      "document": "features/editor/popup-editor.md",
      "title": "Popup 预设编辑器",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/PopupEditorActivity.kt"
      ]
    },
    {
      "document": "features/kawaii-bar.md",
      "title": "Kawaii Bar 增强",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/KawaiiBarComponent.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/bar/ToolbarMetrics.kt"
      ]
    },
    {
      "document": "features/keyboard/adjust-mode.md",
      "title": "调整模式",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt"
      ]
    },
    {
      "document": "features/keyboard/compose-override.md",
      "title": "Compose Override 按键",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDef.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt"
      ]
    },
    {
      "document": "features/keyboard/float-keyboard.md",
      "title": "浮动键盘",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/FloatingMoveHandlePlacement.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt"
      ]
    },
    {
      "document": "features/keyboard/one-handed.md",
      "title": "单手模式",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt"
      ]
    },
    {
      "document": "features/keyboard/split-keyboard.md",
      "title": "分体键盘",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/BaseKeyboard.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/SplitRowWidths.kt"
      ]
    },
    {
      "document": "features/keyboard/swipe-actions.md",
      "title": "滑动操作",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CustomGestureView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/SpaceSwipeMode.kt"
      ]
    },
    {
      "document": "features/keys/alphabet-key.md",
      "title": "AlphabetKey 字母键",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDef.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt"
      ]
    },
    {
      "document": "features/keys/backspace-key.md",
      "title": "BackspaceKey 退格键",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDef.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt"
      ]
    },
    {
      "document": "features/keys/caps-key.md",
      "title": "CapsKey 大小写键",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDef.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt"
      ]
    },
    {
      "document": "features/keys/comma-key.md",
      "title": "CommaKey 逗号键",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDef.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt"
      ]
    },
    {
      "document": "features/keys/fcitx-keys.md",
      "title": "Fcitx 键名速查",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt"
      ]
    },
    {
      "document": "features/keys/language-key.md",
      "title": "LanguageKey 语言键",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDef.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt"
      ]
    },
    {
      "document": "features/keys/layout-switch-key.md",
      "title": "LayoutSwitchKey 布局切换键",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDef.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt"
      ]
    },
    {
      "document": "features/keys/macro-key.md",
      "title": "MacroKey 宏键",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDef.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt"
      ]
    },
    {
      "document": "features/keys/overview.md",
      "title": "按键类型总览",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDef.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/utils/LayoutJsonUtils.kt"
      ]
    },
    {
      "document": "features/keys/return-key.md",
      "title": "ReturnKey 回车键",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDef.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt"
      ]
    },
    {
      "document": "features/keys/space-key.md",
      "title": "SpaceKey 空格键",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDef.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt"
      ]
    },
    {
      "document": "features/keys/symbol-key.md",
      "title": "SymbolKey 符号键",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/CommonKeyActionListener.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDef.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyDefPreset.kt"
      ]
    },
    {
      "document": "features/online-editor.md",
      "title": "在线编辑器",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/webeditor/ImeWebEditorBridgeServer.kt"
      ]
    },
    {
      "document": "features/overview.md",
      "title": "中州鹅功能总览",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/group/SettingsGroupSpecs.kt"
      ]
    },
    {
      "document": "features/rime-enhancements.md",
      "title": "Rime 引擎与中州韵设置",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/core/DirectRimeBackend.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/core/InputKeyGate.kt"
      ]
    },
    {
      "document": "features/shared-import.md",
      "title": "共享导入与解压",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/ShareReceiveManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/ShareReceiveDirectoryPicker.kt"
      ]
    },
    {
      "document": "features/symbol-panel.md",
      "title": "符号、表情与颜文字",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/SymbolCatalog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/picker/SymbolPanelUi.kt"
      ]
    },
    {
      "document": "features/text-editor.md",
      "title": "文本编辑底部栏",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/editing/TextEditingWindow.kt"
      ]
    },
    {
      "document": "features/theme/frosted-blur.md",
      "title": "磨砂按键",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/utils/BitmapBlurUtil.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/behavior/preview/PreviewKeyBlurMaskView.kt"
      ]
    },
    {
      "document": "features/theme/monet.md",
      "title": "Monet 编辑器",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/MonetThemeEditorActivity.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/MonetThemePrefs.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/MonetThemeMapping.kt"
      ]
    },
    {
      "document": "features/theme/settings-appearance.md",
      "title": "设置界面外观与动画",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/settings/theme/SettingsUiAppearanceFragment.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/prefs/SettingsUiMotionPreferences.kt"
      ]
    },
    {
      "document": "features/theme/share-import.md",
      "title": "QR 分享与导入",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/ShareReceiveDirectoryPicker.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/ShareReceiveManager.kt"
      ]
    },
    {
      "document": "features/theme/theme-editor.md",
      "title": "主题编辑器",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/keyboard/KeyboardWaterRippleView.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/IconThemeManager.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemeManager.kt"
      ]
    },
    {
      "document": "features/update-checker.md",
      "title": "更新检查器与镜像",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/HostsDownloadWorker.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/ui/main/update/ResumableAssetDownload.kt"
      ]
    },
    {
      "document": "features/voice-input-js-en.md",
      "title": "Foxy JavaScript Plugin Guide",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoicePrelude.kt"
      ]
    },
    {
      "document": "features/voice-input-js.md",
      "title": "JS 语音插件",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceHostPermissions.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/js/JsVoiceProviders.kt"
      ]
    },
    {
      "document": "features/voice-input.md",
      "title": "外部语音输入",
      "source_files": [
        "app/src/main/java/org/fcitx/fcitx5/android/input/dialog/VoiceInputPickerDialog.kt",
        "app/src/main/java/org/fcitx/fcitx5/android/input/voice/VoiceInputProviderManager.kt"
      ]
    }
  ]
}
