Compare commits
base: shcizo/package-updater:feat/master-agent-drift-merge-10
shcizo/package-updater:feat/initial-implementation
shcizo/package-updater:main
shcizo/package-updater:fix/keep-scroll-on-mode-toggle
shcizo/package-updater:feat/self-update-15
shcizo/package-updater:feat/newer-version-tags-11
shcizo/package-updater:feat/ledger-ui-services-agents-18
shcizo/package-updater:feat/master-agent-drift-merge-10
shcizo/package-updater:chore/master-non-root-25
shcizo/package-updater:fix/override-file-owner-24
shcizo/package-updater:feat/registry-polling-version-history-9
shcizo/package-updater:feat/master-agent-webhook-8
shcizo/package-updater:feat/master-agent-jobs-7
shcizo/package-updater:feat/master-agent-inventory-6
shcizo/package-updater:fix/action-safe-payload
shcizo/package-updater:chore/remove-inline-action
shcizo/package-updater:worktree-docker-swarm-support
shcizo/package-updater:feat/ci-docker-build
shcizo/package-updater:v0.9.1
shcizo/package-updater:v0.9.0
shcizo/package-updater:v0.8.0
shcizo/package-updater:v0.7.0
shcizo/package-updater:v0.6.2
shcizo/package-updater:v0.6.1
shcizo/package-updater:v0.6.0
shcizo/package-updater:v0.5.0
shcizo/package-updater:v0.4.0
shcizo/package-updater:v0.3.0
shcizo/package-updater:v0.2.0
shcizo/package-updater:v0.1.0
..
compare: shcizo/package-updater:v0.7.0
shcizo/package-updater:main
shcizo/package-updater:fix/keep-scroll-on-mode-toggle
shcizo/package-updater:feat/self-update-15
shcizo/package-updater:feat/newer-version-tags-11
shcizo/package-updater:feat/ledger-ui-services-agents-18
shcizo/package-updater:feat/master-agent-drift-merge-10
shcizo/package-updater:chore/master-non-root-25
shcizo/package-updater:fix/override-file-owner-24
shcizo/package-updater:feat/registry-polling-version-history-9
shcizo/package-updater:feat/master-agent-webhook-8
shcizo/package-updater:feat/master-agent-jobs-7
shcizo/package-updater:feat/master-agent-inventory-6
shcizo/package-updater:fix/action-safe-payload
shcizo/package-updater:chore/remove-inline-action
shcizo/package-updater:worktree-docker-swarm-support
shcizo/package-updater:feat/ci-docker-build
shcizo/package-updater:feat/initial-implementation
shcizo/package-updater:v0.9.1
shcizo/package-updater:v0.9.0
shcizo/package-updater:v0.8.0
shcizo/package-updater:v0.7.0
shcizo/package-updater:v0.6.2
shcizo/package-updater:v0.6.1
shcizo/package-updater:v0.6.0
shcizo/package-updater:v0.5.0
shcizo/package-updater:v0.4.0
shcizo/package-updater:v0.3.0
shcizo/package-updater:v0.2.0
shcizo/package-updater:v0.1.0
1
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
919ad91710 |
feat: master/agent phase 5 — drift and merge, backend (#10) (#30)
Docker Build / docker (push) Successful in 42s
## Summary
- Drift detection: `model.Service.Drifted()` compares desired and running version by digest (tag when the digest is unknown). `services.awaiting_inventory` hides drift between a job result and the next inventory write.
- Poll and webhook jobs are refused for a drifted service; `POST /services/{id}/restore` (manual job to `desired_ref`) and `POST /services/{id}/accept` (running version becomes desired, guarded by `actual` = `Service.RunningRef`).
- Move suggestions (`store.MoveCandidates`, Compose only) and `POST /services/{id}/merge`: the old row keeps its id, mode, `desired_ref` and history and takes the new location; the duplicate is deleted.
- Backend only. The buttons and badges come with #28, on top of the Ledger UI (#18).
Closes #10
## Test plan
- [x] `gofmt -l .`, `go vet ./...`, `go test ./...`
- [x] `go test -race ./internal/agent/... ./internal/master/... ./internal/e2e/`
- [x] `go test -tags integration ./internal/master/store/` against postgres:17-alpine
- [ ] On the server: migration 0005 applies; no drift shown after a normal update
- [ ] On the server: manual `docker compose up` with another tag gives drift; webhook for an auto service is refused
- [ ] On the server: restore and accept via POST; merge after moving a stack
Reviewed-on: #30
|