This website requires JavaScript.
a2355b2412
chore: ignore cmd/_* dev binaries + Tailwind rebuild
steve
2026-05-04 22:49:46 +01:00
bd310d918b
fix: payload-preview rail follows kind switcher
steve
2026-05-04 22:40:46 +01:00
4e95ad4c87
fix: move channel delete-panel out of edit form (nested form bug)
steve
2026-05-04 22:35:58 +01:00
38683b4e64
feat(ntfy): support HTTP Basic auth alongside access tokens
steve
2026-05-04 22:25:42 +01:00
d830635a2e
fix: enabled toggle — list-row click + edit-form save
steve
2026-05-04 22:21:45 +01:00
373d74cdaf
fix: read 'name' across all per-kind sub-forms when editing channels
steve
2026-05-04 22:16:59 +01:00
6139795f71
tasks: tick P3-05/06/07 + Playwright sweep notes
steve
2026-05-04 21:01:34 +01:00
cbdaa4daeb
fix: refresh hosts.open_alert_count on Raise/Resolve/AutoResolve
steve
2026-05-04 21:01:17 +01:00
24eecc1673
fix: read enabled checkbox correctly when paired with hidden=0 sibling
steve
2026-05-04 21:00:54 +01:00
04dde93acd
fix: dispatch alert.acknowledged + alert.resolved on UI ack/resolve
steve
2026-05-04 21:00:44 +01:00
809c4ed910
alert: construct + run engine; expose hub to handlers
steve
2026-05-04 20:32:10 +01:00
b25f96e465
ui: dashboard crit-alerts banner
steve
2026-05-04 20:29:49 +01:00
e0847517a8
ui: /settings/notifications list + edit form (3 kinds)
steve
2026-05-04 20:25:06 +01:00
9dbed025e0
ui: F1 — populate OpenAlerts in baseView so nav badge updates everywhere
steve
2026-05-04 20:19:09 +01:00
35dee98cf9
ui: alerts list page + alert row partial + nav badge
steve
2026-05-04 20:15:01 +01:00
5d8350132c
http: /settings/notifications CRUD + test endpoint
steve
2026-05-04 20:06:45 +01:00
5c6ac155eb
http: /alerts list + ack/resolve handlers + /api/alerts JSON
steve
2026-05-04 19:59:24 +01:00
c710743231
alert: wire engine into ws hello + MarkJobFinished + offline sweep
steve
2026-05-04 19:54:39 +01:00
5e655d756d
alert: rule logic for the six v1 rules
steve
2026-05-04 19:50:33 +01:00
9abe817aae
alert: engine skeleton + event channels
steve
2026-05-04 19:47:09 +01:00
4d469da0f8
notification: Hub fan-out + log writer
steve
2026-05-04 19:44:31 +01:00
4ef7486eef
notification: smtp channel
steve
2026-05-04 19:40:21 +01:00
e6c5dea6bf
notification: B3 — Content-Type header + URL trim
steve
2026-05-04 19:38:16 +01:00
1ff0b2dc86
notification: ntfy channel
steve
2026-05-04 19:35:50 +01:00
5031c888ed
notification: webhook channel
steve
2026-05-04 19:33:29 +01:00
d0baabc745
notification: payload + Channel interface
steve
2026-05-04 19:31:27 +01:00
8a92fedba1
store: notification_channels CRUD + AppendNotificationLog
steve
2026-05-04 19:28:41 +01:00
7c62d111d5
store: alerts CRUD with dedup + last_seen_at bump
steve
2026-05-04 19:24:17 +01:00
b2dffb1d83
store: migration 0014 — notification_channels + notification_log
steve
2026-05-04 19:20:37 +01:00
db71e006bb
store: A1 — check rows.Err() + Scan err in migrate_test
steve
2026-05-04 19:19:28 +01:00
2692c660c5
store: migration 0013 — alerts.last_seen_at
steve
2026-05-04 19:16:59 +01:00
fba76579bc
Merge pull request 'Phase 3 — Restore (P3-X1, X2, 01, 02, 03, 09, X3-X6)' (#6 ) from p3-restore into main
steve
2026-05-04 17:06:18 +00:00
24529d8fa7
test: lock-protect fakeSender so -race CI passes
steve
2026-05-04 18:01:35 +01:00
aa2d7db097
P3 wrap: agent auto-creates restore target; tasks.md ticked
steve
2026-05-04 17:51:34 +01:00
539b941db5
ui: snapshots SIZE/FILES tooltip when host's restic is < 0.17
steve
2026-05-04 17:45:32 +01:00
bec7f6d2b9
ui: tidy job-page download into a single dropdown
steve
2026-05-04 17:36:57 +01:00
a781e95c94
P3 follow-up: editable target dir, conditional --no-ownership, UK lint
steve
2026-05-04 17:27:52 +01:00
727c610765
P3 follow-up: log download (txt + ndjson) on the live job page
steve
2026-05-04 17:12:45 +01:00
65a0134101
P3 sweep fixes: snap-row CSS, tree expand, --no-ownership drop, target path
steve
2026-05-04 15:57:42 +01:00
c417b5e9ab
P3-09 + P3-X3: snapshot diff + recent-restores line
steve
2026-05-04 15:38:28 +01:00
4c108bb68a
P3-01/02/03: restore wizard backend + templates + restore-shaped job page
steve
2026-05-04 15:34:29 +01:00
f5e3bca6a2
P3-03: restic restore + diff execution path
steve
2026-05-04 15:24:14 +01:00
13f58bd052
P3-X2: tree.list synchronous WS RPC + per-session cache
steve
2026-05-04 15:19:22 +01:00
94149a7324
P3-X1: cancel-job feature
steve
2026-05-04 15:11:49 +01:00
d325a27439
docs: P3 restore design spec + scope-decompose Phase 3
steve
2026-05-04 15:02:32 +01:00
8a42f20f8c
Merge pull request 'P2 completion (P2R-09/10/11/12/13/14, P2-16/17/18)' (#5 ) from p2-completion into main
steve
2026-05-04 13:19:05 +00:00
1bf8c09808
docs: note Gitea repo + tea CLI in CLAUDE.md
steve
2026-05-04 14:18:50 +01:00
2095505edd
tasks: tick P2 completion + Playwright sweep screenshots
steve
2026-05-04 11:27:09 +01:00
ed6ccef31b
deploy: P2-17 install.ps1 (Windows installer)
steve
2026-05-04 11:15:18 +01:00
8062db1f2f
agent: P2-16 Windows service (SCM) integration
steve
2026-05-04 11:13:56 +01:00
4c81ff3e7b
ui+server: P2-18d pending hosts dashboard panel + expiry sweeper
steve
2026-05-04 11:11:32 +01:00
a46d906d27
agent: P2-18c announce-and-approve enrolment path
steve
2026-05-04 11:09:47 +01:00
fd87218b3f
server: P2-18b pending WS + admin accept/reject
steve
2026-05-04 11:07:32 +01:00
cd80be3b13
store+server: P2-18a announce-and-approve schema + endpoint
steve
2026-05-04 11:03:41 +01:00
a5a2cb91d0
ui: P2R-12 hook editor — source-group form + host-default Repo section
steve
2026-05-04 11:00:28 +01:00
7b1990cf11
agent+server: P2R-11 pre/post hook execution for backup jobs
steve
2026-05-04 10:57:28 +01:00
18b0bf976d
store: P2R-10 schema for source-group + host-default hooks (migration 0010)
steve
2026-05-04 10:52:16 +01:00
c9b49637d1
ui: P2R-09 auto-init UX — init line in chrome + danger-zone re-init
steve
2026-05-04 10:49:57 +01:00
d02a093eeb
ui+server: schedule next-run / last-run on dashboard + schedules tab
steve
2026-05-04 10:44:31 +01:00
e6fc9e9963
ui+server: per-job bandwidth override on Run-now
steve
2026-05-04 10:41:13 +01:00
cdf88c6dc3
agent+server: apply host bandwidth caps to restic invocations
steve
2026-05-04 10:38:34 +01:00
95ab3f4d16
Merge pull request 'tasks: tasks.md sync left behind by PR #3 merge' (#4 ) from tasks-md-phase5-sync into main
steve
2026-05-04 09:26:42 +00:00
d6f3d84ba5
tasks: collapse Phase 5 header + fix P2R-03/04 cadence cross-refs
steve
2026-05-04 10:25:28 +01:00
609aaf741d
Merge pull request 'P2 redesign Phase 5 — prune/check/unlock + maintenance ticker + repo stats + pending-runs queue' (#3 ) from p2r-phase5-maintenance into main
steve
2026-05-04 09:25:00 +00:00
e850f6f44c
test: poll pending-row count in drain-on-reconnect test (race fix)
steve
2026-05-04 10:20:54 +01:00
51a7ea302f
test: write-then-rename script-bin helpers (avoid ETXTBSY under -race)
steve
2026-05-04 09:43:27 +01:00
f94e8ec967
api+agent: document protocol-version stability and forget back-compat decisions
steve
2026-05-04 00:33:51 +01:00
adece5eb72
server: serialize DrainPending per host (avoid drain double-dispatch)
steve
2026-05-04 00:33:13 +01:00
9ec69456fe
store: LatestJobByKind includes in-flight jobs (avoid maintenance double-fire)
steve
2026-05-04 00:29:52 +01:00
5bcb20dfce
tasks: tick P2R-03 through P2R-08 done
steve
2026-05-04 00:20:19 +01:00
f103b14c62
diag: phase 5 Playwright sweep screenshots
steve
2026-05-04 00:19:50 +01:00
6af5a945ce
server/ws: persist repo.stats into host_repo_stats
steve
2026-05-04 00:10:41 +01:00
e0eae0a96f
server: drainer abandons only on ErrNotFound, not transient errors
steve
2026-05-04 00:07:33 +01:00
d6dcdd5ec4
server: drainer uses dispatch-core to avoid duplicate pending_run enqueue
steve
2026-05-04 00:01:42 +01:00
5b4a590508
server: drain pending_runs on tick + on agent reconnect
steve
2026-05-03 23:57:08 +01:00
18a4f74a22
server: enqueue pending_runs when scheduled-job dispatch fails
steve
2026-05-03 23:53:57 +01:00
aba0b7e177
server: fix stale RetentionPolicy comment + check Scan errors in maintenance test
steve
2026-05-03 23:50:05 +01:00
14b703be58
server: maintenance ticker drives forget/prune/check on cadence
steve
2026-05-03 23:40:35 +01:00
ae96983877
maintenance: pure-logic ticker decides forget/prune/check fires
steve
2026-05-03 23:36:48 +01:00
6f204a6877
ui: hx-swap none on Run-now + truthful save banner + tailwind rebuild
steve
2026-05-03 23:29:01 +01:00
c5b52df7ed
ui: Slice E — admin creds form + run-now buttons + repo health panel
steve
2026-05-03 23:18:16 +01:00
e2d94bf3a2
server: populate audit UserID on credential mutations + slog prune push errors
steve
2026-05-03 23:09:09 +01:00
c5f401e99b
server: cover HTMX auth-redirect path in repo-ops tests
steve
2026-05-03 23:00:38 +01:00
69abc40786
server: HTTP run-now for prune / check / unlock
steve
2026-05-03 22:57:07 +01:00
35f07c3cee
server: admin-credentials REST + Slot:admin push helper
steve
2026-05-03 22:55:09 +01:00
a110e3c00c
agent: secrets fail-loud on corrupt blob + small polish
steve
2026-05-03 22:49:12 +01:00
22adde36b3
agent/runner: ship repo.stats before job.finished in RunCheck/RunUnlock
steve
2026-05-03 22:43:57 +01:00
57bf9690f2
agent: RunPrune/RunCheck/RunUnlock + reportStats + admin-cred slot dispatch
steve
2026-05-03 22:39:23 +01:00
c1237583bd
agent/secrets: separate admin slot with backwards-compatible decode
steve
2026-05-03 22:34:33 +01:00
0c3c907de8
api: stats partial-update payload + ConfigUpdate.Slot + CommandRun.RequiresAdminCreds
steve
2026-05-03 22:33:12 +01:00
e93eb2a060
restic: tighten RunCheck lock sniff + RunStats zero-snapshot test
steve
2026-05-03 22:29:09 +01:00
485f4322cb
restic: RunUnlock + RunStats (raw-data mode)
steve
2026-05-03 22:22:19 +01:00
b24faf6de7
restic: RunCheck with subset% + lock-state sniffing
steve
2026-05-03 22:21:48 +01:00
9b790bbade
restic: RunPrune + runWithPump helper, refactor Forget/Init onto it
steve
2026-05-03 22:20:48 +01:00
11cbc2fb7f
store: tighten CHECK constraint on host_repo_stats.last_check_status
steve
2026-05-03 22:15:57 +01:00
5200e44536
store: wrap UpsertHostRepoStats in a transaction (concurrency safety)
steve
2026-05-03 22:15:35 +01:00
84a8c060b6
store: assert CHECK constraint on host_credentials.kind
steve
2026-05-03 22:10:29 +01:00
cfe25b9799
store: HostRepoStats projection (size, lock, last-check, last-prune)
steve
2026-05-03 22:07:24 +01:00
f801fdf65b
store: host_credentials becomes kind-aware (repo + admin slots)
steve
2026-05-03 22:06:05 +01:00
9f2cb18e42
store: migration 0009 — admin-creds kind + host_repo_stats
steve
2026-05-03 22:05:53 +01:00