Highlights
- No more dead zones — every pixel on the keyboard surface now responds to touch (#125)
- Snappier haptics — feedback fires on touch-down instead of waiting for action completion (#121)
- Orientation fix — keyboard no longer misaligns after rotating while backgrounded (#92)
- 15+ bug fixes covering auto-capitalization, French layout, compose mode, and more
Fixed
- Eliminate dead zones on keyboard surface (#125)
- Fix keyboard content gap by replacing scaleEffect with direct scaling (#124)
- Fix keyboard misalignment after orientation change while backgrounded (#92)
- Fix French layout return swipe on center key producing U instead of H (#94)
- Fix auto-capitalization after delete canceling manual temporary shift (#113)
- Fix angle boundary overlap in swipe direction detection
- Fix non-deterministic accent cycle order
- Replace
fatalErrorwithassertionFailurein layout creation - Fix hardcoded version "1.0.0" in settings
- Fix iOS reporting wrong keyboard language (#96)
- Auto-capitalization re-evaluates after deleting characters (#88)
- Fix UserDefaults CGFloat casting for reliable settings loading
- Fix deprecated APIs and SwiftUI view anti-patterns
- Fix apostrophe triggering compose/accent mode (#101)
Added
- Haptic feedback on touch-down (#121)
- FAQ section documenting iOS limitations (#86)
- Accessibility labels for globe and return keys
- SwiftLint, SwiftFormat, and Periphery in CI
- 50+ new unit tests
Changed
- Consolidate
@AppStoragekeys toSettingsKeyenum - Config-based return overrides instead of hardcoded letters
- Extract HapticFeedbackManager, KeyboardSettings, Vector2D
- Upgrade GitHub Actions to latest versions (Node.js 24)
Full Changelog: v1.1.1...v1.2.0