CI / Core C++ Tests (push) Has been cancelled
CI / Android Build (push) Has been cancelled
CI / NDK ABI Build (arm64-v8a) (push) Has been cancelled
CI / NDK ABI Build (armeabi-v7a) (push) Has been cancelled
CI / NDK ABI Build (x86_64) (push) Has been cancelled
Complete swipe typing engine with: - swipetype-core: C++17 gesture recognition (DTW, adaptive scoring) - swipetype-android: JNI bridge + Android AAR packaging - sample-app: Functional IME demo with space bar zone detection - 48 unit tests (GTest), CI/CD workflows (GitHub Actions) - Full documentation suite (architecture, API, contributing, security) Co-authored-by: inventory69 <inventory69@users.noreply.github.com> Co-authored-by: Hyphonical <Hyphonical@users.noreply.github.com>
3.1 KiB
3.1 KiB
Changelog
All notable changes to libswipetype are documented in this file.
The format is based on Keep a Changelog.
[0.1.0-dev] — 2026-02-26
Initial release — Phases 1–11 complete.
Added
-
swipetype-core — C++17 gesture recognition library
PathProcessor— deduplicate, resample (64 points), bounding-box normalizeIdealPathGenerator— reference path generation with cachingScorer— DTW distance with Sakoe-Chiba band (W=6)DictionaryLoader— binary.glideformat readerGestureEngine— recognition pipeline orchestratorAdjacencyMap— key adjacency computation (unused in scoring, for future use)- 48 Google Test unit tests (all passing)
-
swipetype-android — Android AAR module
SwipeTypeEngine— Java lifecycle managerSwipeTypeAdapter— keyboard integration interfaceGesturePoint,KeyboardLayoutDescriptor,SwipeTypeCandidate,SwipeTypeError— data typesGestureLibJNI.cpp— JNI bridge
-
adapters/heliboard — reference adapter for HeliBoard keyboard
HeliboardSwipeTypeAdapter— translates HeliBoard'sProximityInfo/InputPointersto swipetype API
-
sample-app — minimal Input Method Service demo
SampleKeyboardView— custom QWERTY keyboard renderer with gesture trailSampleInputMethodService— IME integration usingSwipeTypeAdapterMainActivity— setup guide with IME enable/switch buttons
-
scripts/gen_dict.py — TSV-to-
.glidedictionary generator -
test-data/ — 302-word English dictionary, QWERTY layout JSON, gesture scenarios
-
Documentation (Phase 9)
docs/API.md— full C++ and Java API referencedocs/ARCHITECTURE.md— system architecture, pipeline diagram, design decisionsdocs/ONBOARDING.md— developer onboarding guide (build, test, run)docs/HOW_TO_WRITE_AN_ADAPTER.md— step-by-step adapter integration guideCHANGELOG.md(this file)
-
Sample App Theme Fix (Phase 10)
styles.xmlwithAppThemeandSwipeTypeImeTheme- Transparent window background prevents system theme bleed-through
-
Structural Accuracy Fixes (Phase 11) — 3 algorithmic improvements
- Key-transition word length estimation (replaced arc-length heuristic)
- Absolute DTW normalization floor for single-candidate sets
- Adaptive frequency weight:
effectiveAlpha *= max(0.1, rawRange/0.5) - 3 new regression tests
-
CI/CD — GitHub Actions workflows
ci.yml— Core C++ tests, Android build, NDK ABI matrix (arm64, armv7, x86_64)release.yml— tag-triggered AAR release
Fixed (Phase 8 — BUG-1 through BUG-6)
- BUG-1: Dictionary loading moved from
onInit()callback toonCreate()(eliminated infinite loop) - BUG-2: Keyboard layout now uses even key distribution
- BUG-3: Dark theme with explicit colors (hardcoded in
SampleKeyboardView) - BUG-4:
maxDTWFloor = 3.0for single-candidate normalization - BUG-5: Frequency weight set to
α = 0.30to balance shape vs. frequency - BUG-6: Dictionary expanded from 10 to 302 words