1.9 KiB
1.9 KiB
TODO
P0
- [Bug] Enforce single active desktop-control run (or a strict queue) so concurrent jobs cannot fight over the same mouse/keyboard/screen session.
- [Bug] Fix run artifact collisions in
setup_artifacts()(run_idis second-granularity, so two jobs in the same second can share/overwrite the same directory). - [Bug] Remove global logger handler clobbering in
setup_logger()(logging.getLogger("screenjob").handlers.clear()breaks concurrent runs and can redirect logs to the wrong file). - [Bug] More consistent clicks and more uses of enhance images.
P1
- [Bug] Validate
disabled_toolsagainst an allowlist and disallow disabling critical completion flow (task_complete) to avoid guaranteed step-limit failures. - [Bug] Improve
execute_commandcancellation/timeout handling to terminate full process trees, not only the parent shell process. - [Bug] Reduce API/UI token leakage risk by moving away from query-string token usage for websocket/artifact access where possible.
- [Idea] Add per-token rate limiting and request size limits (objective length + payload bounds) for API hardening.
P2
- [Bug] Fix UI event style mapping mismatch (
tool_calledevents are emitted, but UI color map expectstool_call). - [Idea] Reduce monitoring UI backend load by throttling websocket-triggered refreshes and avoiding full job/event re-fetch on every event.
- [Idea] Add cursor-based pagination for jobs/events instead of large fixed limits.
- [Idea] Support offline/self-hosted UI assets (bundle Tailwind instead of CDN dependency).
- [Idea] Add retention controls/pruning for old runs, screenshots, and DB rows.
P3
- [Idea] Add Replay Mode; Ability to replay a session by reconstructing the screen from screenshots and overlaying tool calls and click and type events.
- [Idea] Add lightweight analytics dashboards (success rate by objective category, avg steps/cost over time).