2.4.2
- fix: a flag scan that failed on another bundle's merged extension
- docs: draft option B against the dex, and verify the claim it rests on
- docs: read out the handler registry's consumer, and reverse the recommendation
- docs: Gboard does not instantiate motion event handlers by reflection
- fix: act on an independent review of the four unpushed commits
- refactor: the resolution helpers take a class lookup, not the patcher
- test: cover the register helpers, which is where the crashes came from
- test: lock in the mutual exclusion, and ask whether the bundle is current
- fix: the driver applied a combination no install can produce
- test: cover the patch helpers, document the output tools, assert the Python floor
- ci: catch drift in the generated inventory and README table
- feat: check extension references, and admit the general case needs the SDK
- test: run the extension's logic, not just compile it
- feat: verify invoke arguments and catch-handler merges
- docs: correct development.md, which was three beliefs out of date
- feat: verify every method the patch changed, automatically
- ci: upload the bundle on every push, so a patch can be tested before it ships
- feat: a type-merge check for the bug ART rejects at class load
- docs: what the driver covers, and what it does not
- feat: run the patches locally — :driver:run was never blocked
- docs: the dev.1 crash, diagnosed by reading the output
- feat: read the patched APK, not just the stock one
- docs: improve the replan — the cause is unknown and the tooling is the gap
- docs: replan swipe up to undo autocorrect
- revert: drop the consume branch, it ships a keyboard that will not open
- fix: the consume branch shipped a keyboard that would not open
- fix: swipe up consumes the gesture and lowers the slide threshold