Skip to content

feat(android): add local configuration migration - #1199

Merged
H-Chris233 merged 19 commits into
Open-Less:betafrom
HKLHaoBin:feat/issue-1192-android-local-migration
Oct 19, 2026
Merged

H-Chris233 merged 19 commits into
Open-Less:betafrom
HKLHaoBin:feat/issue-1192-android-local-migration

Conversation

@HKLHaoBin

Copy link
Copy Markdown
Collaborator

Summary

  • Add a versioned Android local migration bundle for complete configuration export/import.
  • Keep ShareRedacted as the default sharing mode and protect PersonalMigration credentials with a password.
  • Support preview, Merge/Replace restore, conflict handling, backup/rollback, and legacy JSON import.
  • Move the discoverable entry point from keyboard settings to Settings → Privacy → Local configuration migration.
  • Keep system permissions, OAuth sessions, device paths, and runtime state out of migration.

Validation

  • Review Bugbot: No bugs found.
  • npm test
  • Rust formatting and core/Tauri checks
  • Android migration, manifest, scaffolding, and IPC contract tests
  • Android instrumentation and CI checks completed in GitHub Actions

Test artifacts

The real-device and compatibility-matrix tests still need to be completed on physical Android devices.

Fixes #1192

🤖 Generated with Claude Code

HKLHaoBin and others added 7 commits September 16, 2026 16:53
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Expose Android local configuration migration from the application Privacy settings while keeping the native SAF, preview, password, backup, and restore flow isolated from keyboard settings.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
HKLHaoBin and others added 9 commits October 16, 2026 15:09
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…id-local-migration

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…roid-local-migration

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@HKLHaoBin
HKLHaoBin marked this pull request as ready for review October 16, 2026 16:41
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@H-Chris233 H-Chris233 self-assigned this Oct 19, 2026
@H-Chris233
H-Chris233 merged commit 93d40bf into Open-Less:beta Oct 19, 2026
7 checks passed
aeoform added a commit to aeoform/openless that referenced this pull request Oct 19, 2026
并入 origin/beta 剩下的 10 个上游 commit(此前分支已合过前 4 个):

- Windows:TSF 组字听写输入(Open-Less#1189)、明文插入模式开关(Open-Less#1182)、
  胶囊显示目标模式(Open-Less#1232)
- Android:arm64 本地 ASR + 云回退/自动切换(Open-Less#1231)、本地配置迁移(Open-Less#1199)、
  草稿条(Open-Less#1187)、悬浮层「永不显示」(Open-Less#1221)、英文键盘上滑符号重排(Open-Less#1188)
- 发布:稳定版直链别名(Open-Less#1198)
- coding-agent:dsh 补丁 YAML 缩进修复(Open-Less#1205)

代码层面零冲突,但本仓较新的依赖版本让上游新代码编译不过,手工收口两处
(都只在 Android 本地迁移包路径上):

1. `zip` 9 vs 2.x —— `ZipFile::name()` 现在返回 `Result<Cow<str>, ZipError>`:
   `.map_err(|_| BundleError::MalformedContainer)?.into_owned()`。
2. `cipher` 0.5(`aes` 钉 0.9.2 带来的版本)把 `XNonce::from_slice` 标成
   deprecated:改用 `&[u8; NONCE_BYTES] -> &XNonce` 的转换。

验证:core 与 linux-egui 全量测试通过、clippy `-D warnings` 干净、egui 四个
JS 契约测试通过、i18n 0 added/0 updated、deb/rpm 打包 + 校验通过
(2.0.2-Beta.1-137)。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature][Android] 手机端增加整套配置一键导入/导出,支持换机继承和分享,系统权限仍由用户授权

2 participants