New Features
-
Web UI dashboard for real-time job status, logs, capped execution history (via API) and on-demand job control
PRs #122, #131, #169, #174, #176, #180 -
Container-scoped job labels & container naming for run jobs to avoid name-collisions and clarify ownership
PRs #98, #114 -
Entrypoint override for run jobs
PR #99 -
Docker events watching with a tunable polling interval
PRs #107, #101 -
Built-in Docker image health-check in the official image
PR #102
Improvements
-
Revamped configuration handling – hot INI reload, configurable global log-level, environment-variable overrides, embedded web & pprof servers,
validatecommand that prints the effective configuration, improved CLI-flag precedence, clearer de-duplicated warnings, and active-config exposure via API/UI
PRs #123, #141, #148, #100, #144, #158, #153, #149, #157, #163, #160, #161, #165, #167, #172, #97, #138, #147, #140 -
Platform refresh – Go 1.24 tool-chain and Alpine 3.21 base image, plus dependency bumps
PRs #80, #105 (plus Renovate PRs) -
Switched to logrus for structured logging with richer caller info
PRs #150, #152 -
Centralised Docker-image pulling, custom Docker-client support & context propagation
PRs #162, #116 -
Correct handling of cron logger key-value pairs
PR #112 -
Replaced the deprecated gomail SMTP library
PR #134 -
Developer tooling & test upgrades – broader test coverage, vet & gofmt checks, CodeQL fixes, isolated integration tests, extended
.gitignore, Docker-in-CI setup and commit-message guidelines
PRs #89, #90, #103, #108, #110, #111, #124, #126, #127, #128, #179 -
Comprehensive documentation & example updates – new features section, architecture docs, Compose usage, TOC, licence, config options and vendor exclusions
PRs #113, #115, #117–#121, #124, #133, #136, #137, #142, #143, #154, #159
Fixes
-
Service-job timeout & max-time enforcement now works reliably, preventing runaway service executions
PRs #93, #95, #130 -
Slack middleware properly closes HTTP response bodies to avoid connection leaks
PR #94 -
Scheduler stability – INI-defined jobs remain registered; job-list management no longer drops tasks
PR #166 -
Save middleware consistently creates output folders, ensuring logs and artefacts are written to disk
PRs #156, #164 -
Docker-handler ticker bug fixed – no more runaway CPU when poll interval ≤ 0
PR #125 -
Reliable config parsing – CLI defaults no longer override Docker settings; flag parsing handles edge cases correctly
PRs #157, #163 -
Clearer configuration warnings & error logs, plus removal of duplicate notices
PRs #97, #147, #138, #140 -
Terminal-aware colour output – logger detects colour support and adjusts accordingly
PR #168 -
Robust ID generation & error wrapping, eliminating cryptic failures on hash/ID operations
PRs #165, #175 -
Miscellaneous typo & sample-config corrections, improving readability and preventing confusion
PRs #109, #173, #177, #178
List by PR
- chore(deps): update dependency go to v1.23.6 by @renovate in #80
- Cleanup temp dirs in middleware tests by @CybotTM in #90
- Fix typo in CLI config comments by @CybotTM in #91
- Fix comments and typos by @CybotTM in #92
- Fix service timeout check in RunServiceJob by @CybotTM in #93
- Add response body close in Slack middleware by @CybotTM in #94
- Fix RunServiceJob max time check by @CybotTM in #95
- tests: add to improve coverage by @CybotTM in #89
- Fix #88 config error logging by @CybotTM in #97
- Add container naming option for run jobs by @CybotTM in #98
- fix #79: Add entrypoint override for run jobs by @CybotTM in #99
- feat #84: Add configurable logging level by @CybotTM in #100
- feat #85: Add health check to Dockerfile by @CybotTM in #102
- Add Docker poll interval configuration by @CybotTM in #101
- Add failing job tests by @CybotTM in #103
- Update Go toolchain to 1.24 by @CybotTM in #105
- Add Docker events watching and polling options by @CybotTM in #107
- Install Docker before tests by @CybotTM in #108
- Update gitignore by @CybotTM in #110
- Fix service config typo by @CybotTM in #109
- Add vet & gofmt checks by @CybotTM in #111
- Handle cron logger key-value pairs by @CybotTM in #112
- Add AGENTS instructions by @CybotTM in #113
- Scope exec jobs by container name by @CybotTM in #114
- Enable DockerHandler to use custom Docker client by @CybotTM in #116
- Add architecture and testing docs by @CybotTM in #115
- Add features section to README by @CybotTM in #117
- Add usage examples for daemon and validate by @CybotTM in #118
- Add compose example by @CybotTM in #119
- Update README with Table of Contents and license by @CybotTM in #120
- Update README build instructions and tagline by @CybotTM in #121
- Add basic job status web UI by @CybotTM in #122
- Add INI reload support by @CybotTM in #123
- docs: note config option for disabling polling by @CybotTM in #124
- Fix docker handler ticker when poll interval <=0 by @CybotTM in #125
- Add comprehensive commit message requirement by @CybotTM in #126
- Refactor Save middleware to use os.WriteFile by @CybotTM in #128
- feat: slack middleware uses reusable http client by @CybotTM in #129
- Fix CodeQL dependency resolution by @CybotTM in #127
- Fix service ticker lifecycle by @CybotTM in #130
- Add history limit for jobs by @CybotTM in #131
- Clarify vendor exclusion by @CybotTM in #133
- Replace gomail by @CybotTM in #134
- docs: correct compose command usage by @CybotTM in #136
- chore: switch defaults library by @CybotTM in #135
- Update compose docs with default config mount by @CybotTM in #137
- Update daemon config warning by @CybotTM in #138
- Add test for missing config warning by @CybotTM in #140
- Improve config reload logging by @CybotTM in #141
- Update Compose example with default config path by @CybotTM in #142
- test: ensure missing config warning shows filename by @CybotTM in #143
- feat: honor config log level on startup by @CybotTM in #144
- Suppress repeated config file warnings by @CybotTM in #147
- Implement config reload optimization by @CybotTM in #148
- Replace logging library with logrus by @CybotTM in #150
- Add configuration output to validate command by @CybotTM in #149
- Improve logging caller info by @CybotTM in #152
- Add web and pprof config options by @CybotTM in #153
- Update default config path by @CybotTM in #154
- Fix Save middleware folder creation by @CybotTM in #156
- Fix CLI defaults overriding docker config by @CybotTM in #157
- Add env var overrides by @CybotTM in #158
- Add configuration precedence documentation by @CybotTM in #159
- Add context support to DockerHandler by @CybotTM in #160
- Switch to go-ini for INI parsing by @CybotTM in #161
- feat(core): centralize Docker image pulling by @CybotTM in #162
- Fix config flag parsing by @CybotTM in #163
- Handle ID generation and hash errors by @CybotTM in #165
- Ensure Save output folder creation by @CybotTM in #164
- Fix scheduler job list management by @CybotTM in #166
- Refactor job update logic by @CybotTM in #167
- Fix logger color handling based on terminal by @CybotTM in #168
- Expose removed jobs in web UI by @CybotTM in #169
- Expose active config via API and UI by @CybotTM in #172
- Fix missing newline at EOF in sample configs by @CybotTM in #173
- Add execution history API by @CybotTM in #174
- Fix error wrapping by @CybotTM in #175
- Display job errors in web UI by @CybotTM in #176
- Fix jobParam variable name by @CybotTM in #177
- Fix runservice findTaskStatus naming by @CybotTM in #178
- Isolate integration tests by @CybotTM in #179
- Add job control endpoints to web UI by @CybotTM in #180
Full Changelog: v0.7.0...v0.8.0