docs: correct the claims that no longer match the code
Four documents asserted things the code contradicts. ARCHITECTURE's component diagram had the UI calling the autostart Manager directly. It does not, and must not: src/ui holds no reference to the package at all — Settings reads svc.AutostartStatus(), like everything else it reads. The edge is folded into the existing ui→Service one, so the diagram no longer draws the exception to the project's own rule. platform/desktop was described in both ARCHITECTURE and DEVELOPMENT as a "display-scale helper". It installs the .desktop entry and icon under XDG data home; there is no scale helper in it. The ~250-line file guideline was written as though the jobs_view and settings_view splits had settled it. Both files are over it again and history_view.go has never been split, so the guideline is now stated as the target it is, with the current state named rather than implied. STANDARDS pointed at a "CI coverage gate" item that ROADMAP does not have, while omitting the two it does. README's gosentry.json sample was three keys short of what the app writes on first run — default_timeout_seconds, theme and job_list_view — which made the one file the user is invited to hand-edit the least accurate thing in the document. The sample is now the real default (verified by marshalling DefaultConfig), with the keys explained, including why a zero timeout is written out and an unset one is not. The per-job overrides for overlap policy and timeout were undocumented despite being in the job dialog, and the feature list had not caught up with the timeout, the theme, or the compact job list. Version numbers in example output paths are now <version>, matching how the CI section already wrote them, so they cannot go stale again. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -17,7 +17,7 @@ src/
|
||||
storage/ JSON persistence (gosentry.json, jobs.json)
|
||||
platform/
|
||||
autostart/ Manager interface + Windows (shortcut) and Linux (XDG) impls
|
||||
desktop/ display-scale helper (Linux only)
|
||||
desktop/ desktop entry + icon under XDG data home (Linux only)
|
||||
filemanager/ open a folder in the desktop file manager
|
||||
winproc/ hidden-window startup flags (Windows only)
|
||||
ui/ Fyne windows, tabs, and dialogs; reads service via Events
|
||||
@@ -40,7 +40,7 @@ flowchart LR
|
||||
shell["Platform shell - cmd.exe /C or sh -c"]
|
||||
|
||||
user -->|"edits jobs, settings, runs commands"| ui
|
||||
ui -->|"CreateJob, UpdateJob, DeleteJob, RunNow, UpdateSettings, …"| svc
|
||||
ui -->|"CreateJob, UpdateJob, DeleteJob, RunNow, UpdateSettings, AutostartStatus, …"| svc
|
||||
svc -->|"SaveJobs, SaveConfig, LoadJobs, LoadConfig"| store
|
||||
store -->|"read/write"| config
|
||||
store -->|"read/write"| jobs
|
||||
@@ -54,7 +54,6 @@ flowchart LR
|
||||
svc -->|"emit JobChanged / RunRecorded / JobsLoaded / ErrorOccurred"| ui
|
||||
ui -->|"display jobs, history, status"| user
|
||||
|
||||
ui -->|"SetAutostart, AutostartStatus"| autostart
|
||||
svc -->|"Set / Status via Manager"| autostart
|
||||
```
|
||||
|
||||
@@ -64,7 +63,7 @@ flowchart LR
|
||||
`cmd/gosentry` calls `ui.Run`, which creates an `app.Service`, opens the
|
||||
store, loads `gosentry.json` and `jobs.json`, subscribes the UI to service
|
||||
events, builds the main window, and calls `Service.Start` to begin the
|
||||
scheduler loop. On first launch the service seeds per-job run-time statistics
|
||||
scheduler loop. On every launch the service seeds per-job run-time statistics
|
||||
from existing log files so the details panel reflects accumulated history
|
||||
immediately (see §Statistics below).
|
||||
|
||||
@@ -205,8 +204,9 @@ the moment the window opens.
|
||||
|
||||
### `jobs_view.go` file structure
|
||||
|
||||
`src/ui/jobs_view.go` is split across three files to stay within the ~250-line
|
||||
size guideline:
|
||||
The size guideline for a file in this project is ~250 lines. `src/ui/jobs_view.go`
|
||||
is split across three files along these seams; the view file itself has grown
|
||||
back over the guideline since, and is the next candidate if it grows further:
|
||||
|
||||
| File | Contents |
|
||||
|------|----------|
|
||||
@@ -217,7 +217,8 @@ size guideline:
|
||||
### `settings_view.go` file structure
|
||||
|
||||
`src/ui/settings_view.go` is split across three files the same way, once its
|
||||
own size passed the ~250-line guideline:
|
||||
own size passed the guideline. `src/ui/history_view.go` is over it too and has
|
||||
not been split:
|
||||
|
||||
| File | Contents |
|
||||
|------|----------|
|
||||
|
||||
+7
-7
@@ -64,7 +64,7 @@ The Windows build is created as a GUI application, so it does not open a termina
|
||||
The binary is written to:
|
||||
|
||||
```text
|
||||
dist\windows\gosentry-0.9.0-windows-amd64.exe
|
||||
dist\windows\gosentry-<version>-windows-amd64.exe
|
||||
```
|
||||
|
||||
### Linux
|
||||
@@ -78,7 +78,7 @@ chmod +x ./scripts/build-linux.sh
|
||||
The binary is written to:
|
||||
|
||||
```text
|
||||
dist/linux/gosentry-0.9.0-linux-amd64
|
||||
dist/linux/gosentry-<version>-linux-amd64
|
||||
```
|
||||
|
||||
### Linux using Docker
|
||||
@@ -94,7 +94,7 @@ chmod +x ./scripts/build-linux-docker.sh
|
||||
The binary is copied to:
|
||||
|
||||
```text
|
||||
dist/linux/gosentry-0.9.0-linux-amd64
|
||||
dist/linux/gosentry-<version>-linux-amd64
|
||||
```
|
||||
|
||||
### Release build from Linux
|
||||
@@ -118,9 +118,9 @@ Non-interactive release builds can pass target names:
|
||||
The binaries are copied to:
|
||||
|
||||
```text
|
||||
dist/linux/gosentry-0.9.0-linux-amd64
|
||||
dist/linux/gosentry-0.9.0-linux-arm64
|
||||
dist/windows/gosentry-0.9.0-windows-amd64.exe
|
||||
dist/linux/gosentry-<version>-linux-amd64
|
||||
dist/linux/gosentry-<version>-linux-arm64
|
||||
dist/windows/gosentry-<version>-windows-amd64.exe
|
||||
```
|
||||
|
||||
### Automated release builds (CI)
|
||||
@@ -195,7 +195,7 @@ CGO_ENABLED=1 go run ./cmd/gosentry
|
||||
- `src/runner` — shell command execution, log file writing, and log cleanup.
|
||||
- `src/storage` — JSON persistence (`gosentry.json`, `jobs.json`).
|
||||
- `src/platform/autostart` — `Manager` interface with Windows (shortcut) and Linux (XDG) implementations.
|
||||
- `src/platform/desktop` — display-scale helper (Linux only).
|
||||
- `src/platform/desktop` — desktop entry and icon under XDG data home (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.
|
||||
|
||||
+3
-2
@@ -69,5 +69,6 @@ change to their shape has to stay compatible on its own.
|
||||
|
||||
## Out of scope
|
||||
|
||||
Larger or blocked work is tracked in [ROADMAP.md](ROADMAP.md) (window size
|
||||
persistence, History column filters, CI coverage gate).
|
||||
Larger or blocked work is tracked in [ROADMAP.md](ROADMAP.md) (update check from
|
||||
GitHub releases, cron-table import/export, window size persistence, History
|
||||
column filters).
|
||||
|
||||
Reference in New Issue
Block a user