- feat(common): initial use of lerna (in-repo package links only) (#2997)
- change(web/engine): spins core/web/keyboard-processor package off from KeymanWeb (#3001)
- change(web/engine): spins core/web/input-processor package off from KeymanWeb (#3008)
- chore(common/lmlayer): change author from personal to work affiliation (#3046)
- chore: merge stable history (#3037)
- feat(common/lmlayer): create join word breaker decorator (#3021)
- fix(ios): download fv keyboards (#3040)
- modify(android): Refactor LanguageResource() and remove "Custom" property (#3033)
- change(common/lmlayer): improvements to default searchTermToKey (#3024)
- modify(common): Update to Unicode 13.0 (#3029)
- modify(android): Refactor Keyboard class to not use Map (#3020)
- fix(android): Clarify label that shows "Get Started" on startup (#3025)
- feat(common/lmlayer): allow for verbose word breaker specification (#3023)
- modify(android): Convert LanguageListActivity to utility (#3018)
- refactor(web/engine): successful web-core compilation (#2992)
- change(common/lmlayer): always bundle searchTermToKey() with model (#2971)
- change(common/lmlayer): remove NFD table (#3014)
- refactor(common/lmlayer): word breaker compilation (#3016)
- refactor(common/lmlayer): Abstracted connection between LMLayer and Worker initialization (#2986)
- refactor(common/lmlayer): starts a formal 'headless' mode (#2987)
- fix(android): predictive banner display bugfix (#3010)
- fix(android): Fix system keyboard alignment (#3009)
- refactor(web/engine): precomputation for OSK key events, headless production thereof (#2969)
- refactor(web/engine): initial ModelManager split (#2974)
- refactor(web/engine): lm-layer enablement state management rework (#2975)
- refactor(web/engine): predictive data routing, LanguageProcessor as EventEmitter (#2976)
- refactor(web/engine): web-core build prep (#2982)
- modify(android): Update minimum SDK to 21 (#2993)
- fix(android): Handle default font DejaVuSans.ttf (#2981)
- feat(android): Download cloud keyboards from https://keyman.com/keyboards (#2953)
- fix(ios): iOS 13.4 subkey menu workaround (#2959)
- change(ios): Web-based popup key longpresses (#2968)
- fix(web): repairs Web regression test suite (#2973)
- feat(android): Dismiss system keyboard on Back press (#2984)
- chore(common/lmlayer): do not run tests in IE11 in Windows (#2978)
- feat(windows): use crashpad and better call stacks (#2931)
- fix(common/lmlayer): use searchTermToKey() on input (#2954)
- refactor(web/engine): proper split-off of DOM-reliant code (#2939)
- refactor(web/engine): InputProcessor/KeyboardProcessor split (#2940)
- fix(ios): prevents in-app keyboard resets (#2951)
- refactor(web/engine): headless KeyboardProcessor (#2941)
- fix(android): Add check for WRITE_EXTERNAL_STORAGE permission (#2946)
- chore(deps-dev): bump minimist from 1.2.2 to 1.2.3 in /web/testing/regression-tests (#2947)
- refactor(web/engine): begins formally removing DOM-aware keyboard API functions from web-core KeyboardInterface (#2915)
- refactor(web/engine): start of system store abstraction (#2919)
- refactor(web/engine): Processor now manages current layer; OSK listens via callback (#2920)
- refactor(web/engine): RuleBehavior now headless (#2925)
- refactor(web/engine): variable store storage abstraction (#2926)
- fix(web): fixes activeElement typing (#2927)
- refactor(web/engine): relocates DOM-only parts of Processor (#2938)
- fix(android): Change KeyboardHarness/build.sh to not rebuild KMEA (#2943)
- feat(android): Propagate languageID when downloading kmp (#2944)
- fix(web/engine): default layout fix for chiral keyboards (#2936)
- fix(android): Fix exception in ResourcesUpdateTool (#2933)
- modify(android): Update sample and test projects to install asset kmp's (#2935)
- fix(android): Fix globe button crash on 3rd party apps (#2930)
- modify(android) Install default asset kmp's (#2928)
- refactor(web/engine): KeyboardInterface/Processor cleanup and prep (#2901)
- refactor(web/engine): Preps keyboard layouts definitions for web-core (#2902)
- refactor(web/engine): layouts now full property of Keyboard wrapper (#2903)
- feat(android): Specify optional language ID for installing kmp (#2921)
- fix(developer): use correct registry types for sentry options (#2912)
- fix(windows): replaces empty eventid with underscore when autoreport errors off (#2913)
- refactor(web): namespacing DOM-focused management (#2891)
- refactor(web/engine): starts DOM pre-processor (#2892)
- refactor(web): starts OSK preprocessor (#2893)
- refactor(web): headless device representation (#2894)
- refactor(web): cleanup for Processor.processKeyEvent (#2899)
- chore(common): Cleanup unused folders and update README (#2916)
- feat(windows): user control for upload to sentry (#2900)
- feat(ios): Add Crowdin CLI for iOS strings (#2905)
- feat(windows): crash reports in CEF (#2887)
- feat(common): Use Crowdin CLI (v3) for handling l10n files (#2895)
- fix(windows): show error if tsysinfo fails to start; kmcomapi reporting (#2897)
- fix(web/engine): Fixes default key lookup returns (#2890)
- feat(windows): new error notification dialog (#2875)
- feat(windows): sentry c++ wrappers (#2886)
- refactor(web/engine): activeKeyboard now tracked on Processor (#2864)
- refactor(web/engine): Initial definition of typed Keyboard wrapper (#2868)
- refactor(web/engine): More Keyboard wrapper properties (#2869)
- refactor(web/engine): headless-friendly keymapping (#2870)
- refactor(web/engine): relocates keyboard tag code, adds typing (#2883)
- fix(web): fixes variable stores (#2884)
- fix(web): fixes embedded kbd initialization (#2879)
- fix(ios): popup keys over base keys no longer emit base char. (#2881)
- fix(android): Update min SDK versions for sample apps (#2872)
- refactor(web/engine): extended abstraction with OutputTarget (#2849)
- refactor(web/engine): reworks use of embedded's keyman['oninserttext'] (#2850)
- refactor(web/engine): reworks default output handling to return RuleBehaviors (#2854)
- refactor(web/engine): removes shiftState parameter (#2859)
- refactor(web/engine): moves new RuleBehavior type & behaviors to own file (#2861)
- refactor(web/engine): doInputEvent moved to OutputTarget (#2862)
- refactor(web/engine): KeyboardInterface now property of Processor (#2863)
- fix(windows): some sentry symbolication was not working (#2871)
- fix(linux): Use release_version for downloadkeyboard window (#2877)
- fix(windows): include sources for sentry (#2866)
- fix(android): Fix min SDK version for Sample and Test apps (#2860)
- docs(common): minor updates to readme (#2856)
- feat(windows): Add Sentry reports to Delphi apps (#2848)
- fix(web): fixes design mode and content editable issues (#2838)
- fix(ios): corrects OSK height adjustment, banner display issues. (#2840)
- feat(windows): add sentry tooling (#2806)
- refactor(web/engine): new RuleBehavior return type from keyboard calls, utilization (#2830)
- refactor(web/engine): KeyEvent object now refers to outputTarget over element (#2846)
- fix(linux): Fix failing Linux package builds (#2843)
- feat(linux): Add focal as platform to build packages for (#2842)
- chore(deps-dev): bump minimist from 1.2.0 to 1.2.2 in /web/testing/regression-tests (#2829)
- fix(oem): Disable monitoring of ANR for oem Android app (#2828)
- feat(common): sentry release control (#2794)
- chore(windows): improve build script tests (#2680)
- fix(web): enhanced sourcemaps + proper sourcemaps for minified KMW (#2809)
- feat/common/parse-crowdin Add script to parse crowdin translation file (#2801)
- fix(linux): Fix how keyboardprocessor version is set in dist.sh (#2814)
- feat(android): Additional Sentry integration (#2810)
- fix(web): applies base key layer property to unassigned subkeys (#2808)
- feat(android): Start adding RTL to layouts (#2816)
- fix(common/lmlayer): fixes word lookup from Tries for SMP script-based languages (#2815)
- feat(common): add release finalization for Sentry (#2819)
- fix(web): further fixes BuildVisualKeyboard. Fixes #2818 (#2822)
- fix(web): fixes internal reference for validation tool (#2824)
- fix(linux): Fix CI dist path to common/core/desktop (#2795)
- fix(web): fixes build number reference of API call (#2796)
- fix(web): updating BuildVisualKeyboard (#2802)
- fix(ios): fixes Carthage framework copy for Sentry (#2800)
- feat(android): Start of Sentry-based crash reporting (#2778)
- fix(common): parameter order incorrect in git diff (#2787)
- feat(ios): compilations within Xcode now properly set version (#2775)
- fix(ios/engine): Fixes context bug for certain keyboard rules after newlines (#2770)
- feat(android): Update additional main app strings for crowdin (#2793)
- feat(ios): Start of Sentry-based crash reporting (#2771)
- feat(ios): Improved Sentry integration (first pass) (#2782)
- fix(ci): builds were never triggered (#2790)
- feat(windows): Chromium replacement for embedded MSHTML in for Keyman Desktop (#1720)
- Refactor/common/rename core (#2735)
- fix(web): support otf extension for truetype fonts (#2780)
- feat(windows): etl2log support tool (#2758)
- feat(developer): allow use of ISO9995 in key ids (#2741)
- Feature: Android - Handle keyman:// protocol to download kmp keyboard (#2734)
- change(android): Cleanup UI strings (#2751)
- fix(ios): fixes broken online-help versioned link (#2773)
- fix(android) Fix crash on kbdMapList (#2719)
- fix(developer): crash when switching layout templates (#2726)
- feat(developer): always save options (#2731)
- feat(common): Support git worktree when configuring local hooks (#2722)
- docs(linux): Add linux packaging documentation (#2720)
- fix(developer): insert from charmap into touch editor 🍒 (#2737)
- fix(developer): debugger breaking smp with bksp (#2739)
- feat(ios): Adds keyboard-scale unit tests, fixes unknown-device bug (#2695)
- fix(android) Fix crash on kbdMapList (#2719)
- fix(developer): crash when switching layout templates (#2726)
- fix(android): Sanitize app version string for api query (#2715)
- chore(ci): Improve output when triggering Jenkins jobs (#2706)
- fix(ci): Fix increment-version.sh script (#2714)
- chore(linux): allow to trigger Jenkins build from script (#2697)
- fix(ios): Resource update issues (#2703)
- fix(web): Web CI target reversion (#2693)
- refactor(common): Simplify and improve getting hook directory (#2701)
- chore: merge p9s2 beta part 2 to master (#2683)
- test(android): Fix build for KMSample1 project (#2669)
- fix(developer): upgrade removes preferences (#2668)
- chore(ci): Rename trigger-definitions.sh to *.config (#2665)
- chore: merge beta changes to master 🍒 (#2659)
- fix(mac): invalid build script params removed (#2660)
- refactor(mac): initial steps of input pathway (#2643)
- fix(common/core): buffer overrun in context api (#2614)
- fix(ci): refactor trigger of test builds (#2611)
- fix(linux): Fix packaging of keyman-config on Xenial (#2609)
- chore(ci): Tweak history management (#2602)
- chore(common): Update README.md (#2598)
- chore: update history (#2605)
- chore: merge beta P9S1 changes to master (#2606)
- chore(ci): is build required? (#2603)
- fix(linux): Install requirements before packaging (#2599)
- chore(ci): Tweak history management (#2602)
- chore(common): Update README.md (#2598)
- fix(linux): cherry-pick packaging changes from beta branch (#2589)
- fix(linux): Display the script name in log output (#2591)
- chore(ci): support test builds on master/beta/stable-x.y (#2576)
- chore(ci): trigger builds after version increment (#2572)
- chore(ci): increment version final (#2568)
- chore(ci): add version tags (#2570)
- chore(ci): version tags (#2562)
- chore: Starting 14.0 release