Cross-platform mouse/keyboard record/replay and automation hotkeys/macros creation, and more advanced automation features.
Fix the problem of Web UI socket isn't closed properly when server exits.
Some improvements to the WebUI for better usability.
Abandon Java Swing and ported the entire UI to web UI. By default hosted at http://localhost:65401
Added a CLI with some basic features:
Default port 9999 can now be changed to another port to avoid collision with other programs.
Set.of() is a Java 9 method. Use Collections.emptySet() instead.
When keys are being released in a different orders that they were pressed, tasks are repeated multiple times when they're activated by key sequences and/or phrases.
This happened because the check happens on key release, yet was triggered for the recorded key press (not key release).