Web UI Enhancements
-
Add base URL support for reverse proxy deployments (#53)
- New
--web.base-urlflag for running at subpath (e.g., /cronn) - Dynamic URL generation with url() and cookiePath() template helpers
- Backward compatible - defaults to root path
- New
-
Add execution history with SQLite storage and web UI display (#51)
- SQLite persistence for job execution records
- Web UI displaying execution history with logs, exit codes, timestamps
- Configurable history limits via
--exec-max-lines
-
Add settings and about modal (#50)
- Comprehensive settings modal with runtime configuration
- Categories: app info, web settings, scheduler config, advanced features, integrations
- Includes uptime calculation
-
Add web UI options to disable manual execution and command editing (#49)
--web.disable-manual: disable manual job execution--web.disable-command-edit: prevent command editing in manual run dialog- Frontend + backend validation
-
Add application version to web UI footer
- Displays short version in footer (e.g., "v1.8.0")
- Full version on mouseover
Code Quality
-
Refactor: split web.go into handlers.go and jobs.go with corresponding tests
- Reduced web.go from 1608 to 644 lines
- Split into 3 focused files: web.go, handlers.go, jobs.go
- Split tests accordingly with shared test helpers
-
Fix: resolve race conditions in output capture and job event handling
- Added mutex to OutputCapture for thread-safe writes
- Moved database operations outside jobsMu lock
- Verified with go test -race
CI/Build Improvements
- CI: free disk space before builds to prevent runner failures
- Removes ~15-20 GB of unused software (.NET, Haskell, Boost)
- Prevents "no space left on device" errors during multi-arch docker builds