Skip to content

Add clipboard, hotkeys, triggers, cron, REST, CLI, plugins, i18n#172

Merged
JE-Chen merged 1 commit intomainfrom
dev
Apr 18, 2026
Merged

Add clipboard, hotkeys, triggers, cron, REST, CLI, plugins, i18n#172
JE-Chen merged 1 commit intomainfrom
dev

Conversation

@JE-Chen
Copy link
Copy Markdown
Member

@JE-Chen JE-Chen commented Apr 18, 2026

Summary

  • New headless features (each with AC_* command + GUI affordance):
    clipboard, global hotkey daemon (Windows), event triggers engine
    (image / window / pixel / file), cron scheduling, stdlib REST API
    server, plugin loader (AC_* from arbitrary .py files),
    subcommand CLI (python -m je_auto_control.cli), script-vars
    interpolation, OCR, recording editor, window manager, file watcher.
  • GUI refactor: QMainWindow with File / View / Tools / Language
    / Help menus, closable tabs with a View → Tabs restore submenu,
    new Hotkeys / Triggers / Plugins tabs, Socket-Server tab split into
    TCP + REST, and live language switching (English, Traditional
    Chinese, Simplified Chinese, Japanese).
  • Facade invariant: import je_auto_control stays Qt-free — GUI
    entry point is loaded lazily. Verified by import-time assertion.
  • CLAUDE.md: new Feature Delivery Rules section requiring both
    headless and GUI paths for every feature.
  • Docs: new new_features page (Eng + Zh), updated CLI docs for
    the subcommand runner.

Test plan

  • py -m pytest test/unit_test/headless/ — 63 passed (40 new)
  • py -m ruff check on all new/changed modules — clean
  • py -c "import sys, je_auto_control; assert not any('PySide6' in m for m in sys.modules)" — facade clean
  • Smoke test: instantiate main window, list 17 tabs, switch
    language to Traditional Chinese, hide + show the Hotkeys tab
  • Manual: register a hotkey binding on Windows, trigger it, verify
    the action script fires
  • Manual: start REST server, curl /health, /jobs,
    POST /execute
  • Manual: load a plugin directory, invoke an AC_* plugin
    command from JSON

Every new feature ships with a headless Python API, an AC_* executor
command (where applicable), and a GUI affordance — keeping the facade
Qt-free. New modules: clipboard, hotkey daemon, trigger engine, cron
scheduling, REST API server, plugin loader, subcommand CLI, script
variables, OCR, recording editor, window manager, watcher.

GUI: menu bar with File/View/Tools/Language/Help, closable tabs with
a View → Tabs restore menu, new Hotkeys/Triggers/Plugins tabs,
socket-server tab split into TCP + REST sections, and live language
switching across English / Traditional Chinese / Simplified Chinese /
Japanese.

CLAUDE.md now requires every feature to expose both headless and GUI
access paths, verified by an import-time PySide6 leak check.

Docs: new /new_features/ page (Eng + Zh), updated CLI page to document
the python -m je_auto_control.cli subcommand interface.

Tests: 40 new headless unit tests (cron, hotkey parse, plugin loader,
trigger engine, REST server, CLI, clipboard round-trip).
@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
2 Security Hotspots
E Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@JE-Chen JE-Chen merged commit 08b7b18 into main Apr 18, 2026
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant