Refactoring complete: v0.4.0 architectural milestone (#1)
## Summary Completed Phase 5 refactoring and reached the target architecture. **Architectural milestone achieved:** - Service layer owns all state and is the sole writer - UI is a thin Fyne view, all widget updates marshaled via `fyne.Do` - Core engines are stateless and injectable - Domain types are pure (no `yaml:"-"` fields) - Full module builds and `go vet ./...` clean ## Changes - Bump version: 0.3.6 → 0.4.0 - Update CHANGELOG with Phase 5 summary - Add ROADMAP "Refactoring Follow-Ups" section ## Known follow-up work 1. **Linux test build broken** — `runner_test.go` needs `//go:build windows` tag 2. **File-size limits exceeded** — `operations.go` (486 lines), `jobs_view.go` (415 lines) See ROADMAP.md for details. --------- Co-authored-by: mixeme <mix.public@ya.ru> Reviewed-on: #1
This commit was merged in pull request #1.
This commit is contained in:
@@ -9,6 +9,7 @@ Project notes:
|
||||
- [Changelog](docs/CHANGELOG.md)
|
||||
- [Roadmap](docs/ROADMAP.md)
|
||||
- [Architecture](docs/ARCHITECTURE.md)
|
||||
- [Refactoring plan](docs/REFACTORING.md)
|
||||
|
||||
## Features
|
||||
|
||||
@@ -351,14 +352,21 @@ Windows:
|
||||
|
||||
## Project Layout
|
||||
|
||||
- `cmd/gosentry` starts the desktop app.
|
||||
- `src/gui` contains the GUI.
|
||||
- `src/core` contains YAML storage, command execution, scheduling, and log cleanup.
|
||||
- `assets` contains app icons that are embedded into the application binary.
|
||||
- `scripts` contains build helpers.
|
||||
- `docs` contains architecture notes, the changelog, and the roadmap.
|
||||
- `cmd/gosentry` — entry point; starts the desktop app.
|
||||
- `src/domain` — pure value types: `Job`, `Config`, `RunRecord`, `Schedule`, `JobRuntime`.
|
||||
- `src/app` — `Service`: sole owner of job and runtime state; emits typed events to the UI.
|
||||
- `src/scheduler` — pure timing loop; calls `Service.RunDue` on every tick.
|
||||
- `src/runner` — shell command execution, log file writing, and log cleanup.
|
||||
- `src/storage` — YAML persistence (`gosentry.yaml`, `jobs.yaml`).
|
||||
- `src/platform/autostart` — `Manager` interface with Windows (shortcut) and Linux (XDG) implementations.
|
||||
- `src/platform/desktop` — display-scale helper (Linux only).
|
||||
- `src/platform/winproc` — hidden-window startup flags (Windows only).
|
||||
- `src/ui` — Fyne windows, tabs, and dialogs; reads service state through events.
|
||||
- `assets` — app icons embedded into the application binary.
|
||||
- `scripts` — build helpers.
|
||||
- `docs` — architecture notes, changelog, and roadmap.
|
||||
|
||||
Build outputs are written to `dist/`. The old local `bin/` directory is not used.
|
||||
Build outputs are written to `dist/`.
|
||||
|
||||
## Dependencies
|
||||
|
||||
|
||||
Reference in New Issue
Block a user