You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Technical documentation for CleverKeys, an Android keyboard with on-device swipe typing. These specs are designed for LLM coding agents to understand the codebase architecture and implementation details.
Bigram/trigram swipe rescoring (built, CLOSED default-OFF 2026-08-26) and the decode-time tunables inventory
The ONNX transformer engine's specs (neural-prediction, neural-multilanguage-architecture,
kv-cache-optimization, nn-inference-optimization, memory-pool-optimization) moved to
docs/history/neural-engine/ when that engine was removed — see ADR-011.
// Read: Config is a snapshot rebuilt by ConfigurationManager on every pref changeval value =Config.globalConfig().some_field // or globalConfigOrNull()// Write: only the settings UI writes prefs, through a SettingsActivity extensioninternalfun SettingsActivity.saveSetting(key:String, value:Any) // ui/settings/SettingsPersistence.kt
// There is no Config.saveSetting; ConfigurationManager.onSharedPreferenceChanged → Config.refresh
Key Event Handling
// KeyEventHandler.kt — the IKeyEventHandler entry points called by Pointersoverridefunkey_down(key:KeyValue?, isSwipe:Boolean) // :75
overridefunkey_up(key:KeyValue?, mods:Pointers.Modifiers, isKeyRepeat:Boolean) // :99
privatefunhandleEditingKey(ev:KeyValue.Editing) // :861 — the one implementation of editing commands
Gesture Classification
// gesture/GestureClassifier.kt (pure)classGestureClassifier {
enumclassGestureType { … }
data classGestureData(…)
funclassify(gesture:GestureData, config:ConfigSnapshot): GestureType // :47
}
// Short-swipe vs TrackPoint vs selection-delete vs popover routing itself lives in Pointers.kt