Skip to content

Feat/cron scheduling#42

Merged
gtt116 merged 11 commits into
mainfrom
feat/cron-scheduling
Jul 5, 2026
Merged

Feat/cron scheduling#42
gtt116 merged 11 commits into
mainfrom
feat/cron-scheduling

Conversation

@gtt116

@gtt116 gtt116 commented Jul 5, 2026

Copy link
Copy Markdown
Owner

No description provided.

@github-actions

github-actions Bot commented Jul 5, 2026

Copy link
Copy Markdown

✅ Build succeeded! Artifact: enikk-dev-5a76ff3

📥 Download artifact

gtt116 added 4 commits July 5, 2026 10:40
- New enikk/cron module: store.py (JSON persistence, schedule parsing),
  runner.py (background thread), tools.py (8 agent tools)
- Schedule types: duration (30m), interval (every 2h), cron expr, timestamp
- Per-job max_run_time with fallback to global config
- Cron sessions marked with ⏰ prefix and cron_ session ID
- Toolset 'enikk_cron' (8 tools: create/list/get/update/delete/pause/resume/trigger)
- REST API: CRUD + pause/resume/trigger endpoints
- Default enabled, 60s tick interval, serial execution
- 53 new tests (store, runner, tools)
- /api/status now returns cron {enabled, job_count, message}
- Status bar moved from sidebar to full-width bottom of page
- Cron indicator shows ⏰ + active job count with tooltip
- Layout restructured: body flex-col, main area flex-1, status bar at bottom
- 3 new unit tests for status endpoint cron section
@gtt116 gtt116 force-pushed the feat/cron-scheduling branch from 39610e4 to e871bb1 Compare July 5, 2026 02:41
gtt116 added 7 commits July 5, 2026 10:43
- Session list redesigned with Chat/Cron tabs
- Cron tab shows cron sessions with search and filter
- Clicking cron job history button switches to Cron tab with filter
- Filter indicator shows active filter with clear button
- Cron sessions marked with is_cron flag instead of filtering
- Added /api/cron/{job_id}/sessions endpoint
- UI improvements: emoji icons, session title in header, breadcrumb
- Bug fixes: null checks, pause visibility, custom confirm dialog
- i18n: tab labels, filter text, search placeholder
Add background cleanup_loop that resets stale chat_id → session_id
bindings at 04:00 daily (if inactive > 1h) to prevent unbounded
state growth.

- Track _chat_last_active timestamps per chat_id in state file
- 7 tests in TestSessionCleanup
- New autostart.py module wrapping schtasks.exe (ONLOGON, HIGHEST privilege)
- --start-minimized CLI flag to launch hidden in system tray
- GET/PUT /api/autostart endpoints to query and toggle status
- UI toggle in Basic config tab with i18n support (zh-CN, en)
- Syncs config.yaml with actual Task Scheduler state
@gtt116 gtt116 merged commit 708e5ae into main Jul 5, 2026
3 checks passed
@gtt116 gtt116 deleted the feat/cron-scheduling branch July 5, 2026 07:07
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