merge: sync LeanBitLab v3.9.5#118
Merged
Merged
Conversation
… deleting source files
# Conflicts: # app/build.gradle.kts
# Conflicts: # app/build.gradle.kts # app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/floris/KeyCode.kt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This updates the existing upstream-sync PR to merge LeanBitLab/LeanType v3.9.5 into LeanTypeDual, pinned at release tag commit
8cfe7f1fcand including the still-unmerged v3.9.3/v3.9.4 syncs.The v3.9.5 delta adds direct switching to a configured IME/subtype, persistent custom-layout state, a multi-word suggestion filter, and the v3.9.5 release notes. LeanTypeDual's fork identity remains unchanged: application id
com.asafmah.leantypedual, version3.10.0/4000, and no network permission in offline/offlinelite builds.Integration notes
CUSTOM1..CUSTOM5 = -10081..-10085and direct-switch codeSWITCH_TO_USER_IME = -10076after auditing the entire fork KeyCode table for collisions.KeySpecParserTest.keyCodeValuesAreUniqueregression passes with those values.### Upstreammarker for v3.9.5 (including v3.9.3/v3.9.4).Independent review follow-up
A high-effort independent review completed and raised custom-layout persistence and missing coverage concerns. Code ownership inspection showed
savedKeyboardStateandlastCustomIndexshare the same persistentKeyboardStateinstance; a real lifecycle regression test now locks that behavior down. The temporary-10100..-10104values existed only on this still-unmerged PR, so no released-user migration is required when adopting v3.9.5's canonical values.Added focused coverage for:
switchInputMethod(id)The review follow-up request timed out, and a bounded fallback reviewer was unavailable/cancelled; the concrete findings from the completed review were nevertheless investigated and covered by passing regression tests.
Verification
Compile gates:
Focused regressions:
All focused tests pass, both alone and in the full suite.
Offline unit differential:
f09e33591All 11 baseline failing names remain unchanged. The additional failure is
XLinkTest.knownDictionaries, where an unchanged randomized external Codeberg URL (main_bn_bd.dict) currently returns 404; the asset/test source is identical on baseline and current. The six new behavioral tests pass.Permission check:
No
INTERNETpermission is present in offline/offlinelite manifests.