Skip to content

Merge upstream LeanType v3.9.1#114

Merged
AsafMah merged 282 commits into
devfrom
upstream-sync/v3.9.1
Jul 5, 2026
Merged

Merge upstream LeanType v3.9.1#114
AsafMah merged 282 commits into
devfrom
upstream-sync/v3.9.1

Conversation

@AsafMah

@AsafMah AsafMah commented Jul 4, 2026

Copy link
Copy Markdown
Owner

What this is

Merges LeanBitLab/LeanType v3.9.1 into dev as a dedicated upstream-sync PR.

Because previous upstream syncs were squash-style from Git's ancestry perspective, a direct merge tried to re-resolve the entire historical fork divergence. This PR instead records upstream 394bb60074138ce7e6eaa179cfd46446970ea2d6 as the second parent via a single merge commit and applies only the incremental upstream delta from the already-shipped upstream baseline (49c477bc4..394bb600) in that same commit.

Upstream highlights included

  • Pure-Java fallback gesture engine and gesture method selection
  • Gesture ranking/performance/self-learning improvements
  • Text Edit moved from fork overlay view to upstream JSON keyboard layout (KeyboardId.ELEMENT_TEXT_EDIT)
  • Persist Text Edit mode setting
  • Autospace-after-emoji setting
  • Welcome wizard language + gesture engine selection
  • Dictionary/list/download refinements from upstream v3.9.1

Fork-specific conflict decisions

  • Preserved LeanTypeDual identity and release state:
    • applicationId = "com.asafmah.leantypedual"
    • versionName = "3.10.0"
    • versionCode = 4000
  • Preserved privacy flavors: standard, standardfull, offline, offlinelite
  • Preserved network boundary: INTERNET only in standard and standardfull
  • Did not import upstream Fastlane 3900/3910 metadata or upstream LeanType release-note docs, since those conflict with LeanTypeDual's already-published release history
  • Removed obsolete fork TextEditView overlay source/layout in favor of upstream's parsed keyboard-layout Text Edit architecture
  • Preserved fork toolbar/two-thumb features while adding upstream selection-mode/Text Edit key support
  • Added PREF_AUTOSPACE_AFTER_EMOJI using the repo's settings wiring pattern and SettingsContainerTest coverage

Verification

  • git diff --cached --check before commit: clean
  • No unresolved conflict markers/reject files before commit
  • ./gradlew.bat compileStandardRunTestsKotlin compileStandardfullRunTestsKotlin compileOfflineRunTestsKotlin compileOfflineliteRunTestsKotlin --no-daemon --console=plain passed
  • ./gradlew.bat :app:testOfflineDebugUnitTest --tests "*SettingsContainerTest" --no-daemon --console=plain passed
  • ./gradlew.bat :app:testOfflineDebugUnitTest --continue --no-daemon --console=plain completed with 12 failures, all matching known baseline buckets documented in AGENTS:
    • KeyboardParserTest/parser layout-data failures
    • XLinkTest
    • StringUtilsTest emoji failures
    • InputLogicTest Hangul / autocorrect revert / autospace indicator failures
  • Second-opinion review: SOUND_WITH_CAVEATS, no blocking issues after fixing selection-mode state cleanup

Notes for review

The Text Edit migration is the riskiest resolution: upstream v3.9.1 treats Text Edit as a keyboard layout rather than a separate overlay view. I removed the old overlay class/layout and fixed state cleanup so exiting Text Edit also clears persistent selection mode across alphabet/emoji/clipboard/handwriting/touchpad transitions.

iBasim and others added 30 commits June 5, 2026 06:43
Switches offline proofreader to llamacpp-kotlin GGUF and updates model settings UI to resolve 16 KB page alignment compatibility warnings.
LeanBitLab and others added 27 commits July 2, 2026 23:00
Only strip trailing space before space-stripping punctuation
(]})':;!?,.) when the space was auto-inserted by the keyboard
(SpaceState WEAK/PHANTOM/SWAP_PUNCTUATION).

Manual spaces (SpaceState.NONE) must never be deleted.

Bug introduced in 97802ea.
@AsafMah AsafMah merged commit 7b5bc5d into dev Jul 5, 2026
1 check passed
@AsafMah AsafMah deleted the upstream-sync/v3.9.1 branch July 5, 2026 05:22
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.

7 participants