Commit Graph

  • 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