-
56f1a001f2
start.sh auto-sync dashboard bundle into /var/www/dashcaddy-status/
Hermes Agent
2026-07-20 02:07:25 -07:00
-
c619d3a36b
DC-046 DC-047 pluggable auth providers + email magic link
Hermes Agent
2026-07-20 01:40:33 -07:00
-
894e091335
DC-050 harden dataDir + add image-layer migration
Hermes Agent
2026-07-20 00:53:05 -07:00
-
09efce2891
DC-047: claim for Hermes
Hermes
2026-07-17 09:16:55 -07:00
-
9689592086
DC-046: claim for Hermes
Hermes
2026-07-15 09:04:30 -07:00
-
3cf5980083
fix(middleware): split /auth/gate from authLimiter — 20/15min was burning budget on per-asset forward_auth chatter
Krystie
2026-07-14 04:22:32 -07:00
-
de3215f704
fix(update-manager): add ghcr.io registry support
Krystie
2026-07-14 04:10:35 -07:00
-
fb8942a3fa
chore(release): bump to 1.15.0 — DC-042/043 Tailscale admin + DC-044 health-check marker
Krystie
2026-07-14 01:52:59 -07:00
-
a800f0d74e
DC-047: clarify email-only is the identity (no username field)
Hermes
2026-07-13 16:42:47 -07:00
-
fb42663ff2
DC-046..049: backlog — pluggable auth + email magic link
Hermes
2026-07-13 16:40:18 -07:00
-
92eb04ada8
DC-045: fix WorkflowEngine init — new (require(...))() precedence bug
Hermes
2026-07-13 15:47:07 -07:00
-
b492e1cd4f
DC-044: fix WorkflowEngine healthCheckService — servicesStateManager.getState bug
Hermes
2026-07-13 15:38:11 -07:00
-
49e6c9cc11
DC-041: claim for Hermes
Hermes
2026-07-13 15:12:52 -07:00
-
cbe0c912fc
DC-040: repurpose post-deploy-patches.sh as a verifier (fail-loud, not patch-and-continue)
Hermes
2026-07-13 15:08:35 -07:00
-
b13960fa9a
DC-040: claim for Hermes
Hermes
2026-07-13 15:03:49 -07:00
-
5f30fbf1ca
DC-038: mark done in BACKLOG
Hermes
2026-07-13 13:27:47 -07:00
-
1cc112f1e4
DC-038: backup trigger.json + result.json in dashcaddy-update.sh
Hermes
2026-07-13 13:27:38 -07:00
-
2f583e176e
DC-038: claim for Hermes
Hermes
2026-07-13 13:22:57 -07:00
-
fdfe37fcc4
DC-039: mark done + record result
Hermes
2026-07-13 09:00:06 -07:00
-
f750d01ed0
DC-039: route all module file defaults through platformPaths.dataDir
Hermes
2026-07-13 08:59:38 -07:00
-
c9d067c2f0
Add Security Center — multi-source event pipeline with dashboard UI
hermes
2026-07-13 02:28:56 -07:00
-
f405186eb8
Add API-SURFACE.md — full route inventory with auth + rate-limit classification
Hermes Agent
2026-07-13 00:59:22 -07:00
-
58f737a173
Add PRODUCT-SPEC.md draft — sellable subscription model
Hermes Agent
2026-07-13 00:29:32 -07:00
-
81f6049ded
DC-044 Add X-DashCaddy-HealthCheck marker to batch probe endpoint
Krystie
2026-07-09 02:02:45 -07:00
-
0f04bb3638
DC-044: mount Sami CA + fix ca.sami /etc/hosts in DashCaddy container
Krystie
2026-07-08 22:00:25 -07:00
-
2169ec9853
DC-044: fix slice(13) -> slice(12) for /api/v1/auth/totp/check-session drift
Krystie
2026-07-08 21:43:12 -07:00
-
1baef432c4
DC-044: also handle /api/v1/auth/* drift variant in back-compat shim
Krystie
2026-07-08 21:42:03 -07:00
-
cf8909740f
DC-044: fix legacy /api/auth/totp/check-session shim path (drop /auth)
Krystie
2026-07-08 21:29:20 -07:00
-
a7b0714643
DC-044: fix plex.sami auto-login JS 404 (add check-session to legacy shim)
Krystie
2026-07-08 21:24:28 -07:00
-
d539ee3b08
DC-044: fix /health/ready caddy probe false negative
Krystie
2026-07-08 21:18:50 -07:00
-
e036bfe452
DC-039: claim for Hermes
Hermes
2026-07-07 08:13:23 -07:00
-
6fb4f9b169
DC-043: tailscale coordination API client + admin/settings routes
Krystie
2026-07-06 19:54:17 -07:00
-
d04238621f
DC-042: implement real Tailscale manager — replace null stub
Krystie
2026-07-06 15:47:52 -07:00
-
ca705fe59f
DC-025: sync DC-025 hardening (channel gate, locked-file deploy_tree, deploy_mode, post-deploy patches, dns-providers handling) into canonical dashcaddy-api/scripts/dashcaddy-update.sh
Krystie
2026-07-06 15:26:10 -07:00
-
a6201b47cd
BACKLOG: claim DC-037 (move symlink creation into install script)
Krystie
2026-07-05 22:49:40 -07:00
-
369827c43f
DC-031: fix /api/v1/network/ips ReferenceError + add regression tests
Krystie
2026-07-06 04:43:55 -07:00
-
71fd7cd58f
DC-035: add regression test for SelfUpdater.getLocalVersion() (DC-033 class)
Krystie
2026-07-05 22:49:06 -07:00
-
36c4528c7c
BACKLOG: claim DC-035 (regression test for getLocalVersion)
Krystie
2026-07-05 22:45:32 -07:00
-
7ec428f34f
DC-036: delete dead dashcaddy-api/self-updater.js (0 callers); sync VERSION to
42376e2
Krystie
2026-07-05 22:43:55 -07:00
-
ec532c8af7
BACKLOG: claim DC-036 (delete dead root self-updater.js)
Krystie
2026-07-05 22:34:53 -07:00
-
41302c12ec
BACKLOG: mark DC-034 done — v1.14.9 published to get.dashcaddy.net
Krystie
2026-07-05 22:34:26 -07:00
-
42376e2186
chore(release): bump to 1.14.9 (DC-033 fix baked in for auto-update)
Krystie
2026-07-05 22:02:46 -07:00
-
be25c598f1
BACKLOG: claim DC-034 (regenerate release tarball as 1.14.9)
Krystie
2026-07-05 22:01:32 -07:00
-
47970cfd14
BACKLOG: document DC-033 (done) + add DC-034..041 from v1.14.8/0.0.0 incident
Krystie
2026-07-05 21:59:37 -07:00
-
77536f4486
DC-033: bump VERSION to
20d280f (DC-033 commit SHA)
Krystie
2026-07-05 21:50:46 -07:00
-
20d280f1dd
DC-033: fix getLocalVersion __dirname resolution
Krystie
2026-07-05 21:49:39 -07:00
-
ba23cdff02
DC-032: fix health checker authLimiter feedback loop + ca.sami DNS
Krystie
2026-07-05 12:46:35 -07:00
-
ac0a4f56d5
DC-031: claim for Hermes — /api/v1/network/ips ReferenceError
Hermes
2026-07-03 07:52:21 -07:00
-
95f558c49f
DC-030: bake /etc/hosts overrides into start.sh (fix git.sami resolution in container)
Krystie
2026-07-03 00:08:55 -07:00
-
a92eeceae5
DC-029: skip authLimiter for already-authenticated requests
Krystie
2026-07-02 18:27:03 -07:00
-
57de3cb8e3
chore(release): bump to 1.14.7
Krystie
2026-07-01 12:18:37 -07:00
-
a2e7d9dbaf
DC-020: mark done — fixed last broken require in server.js
Hermes
2026-07-01 07:38:17 -07:00
-
f94b164190
DC-020: fix last broken require in server.js (./state-manager -> ./src/managers/state-manager)
Hermes
2026-07-01 07:37:45 -07:00
-
fef7e07b49
DC-026/027/028: close 3 more auth security holes + rate limit /auth/* + audit credential exposures
Krystie
2026-07-01 04:20:57 -07:00
-
bfa4ba570e
DC-025: harden updater — channel gate + safe locked-file replacement
Krystie
2026-07-01 04:02:30 -07:00
-
b7624cc507
DC-024: Bump installer version to 1.14.6 and sync VERSION to current commit
Krystie
2026-07-01 03:50:00 -07:00
-
a5f51e4a0c
DC-023: operational fixes — DNS, rate limiter, version sync
Krystie
2026-07-01 03:10:53 -07:00
-
e73bfbb0a1
DC-021: build pipeline now ships src/ + hygiene for generated artifacts
Krystie
2026-07-01 03:09:59 -07:00
-
2439ed3e85
DC-022: close 3 TOTP auth security holes
Krystie
2026-07-01 03:09:33 -07:00
-
69be51b8aa
chore(release): bump to 1.14.6 — patched source
Krystie
2026-07-01 00:55:13 -07:00
-
10f72af959
fix(update): proper require path fixes + license-keygen restore for v1.14.4 compatibility
Krystie
2026-07-01 00:32:23 -07:00
-
29f2c7999f
DC-020: restore license-keygen.js + fix broken require paths (container crash-loop)
Hermes
2026-06-29 07:22:33 -07:00
-
e4663ba731
DC-020: claim for Hermes — restore deleted license-keygen.js (container crash-loop)
Hermes
2026-06-29 07:14:48 -07:00
-
d2a48b1990
chore(release): bump to 1.14.4
Sami
2026-06-29 03:22:20 -07:00
-
15dee0fe18
fix(startup): correct broken .// require paths in app.js to proper subdir paths

SamiandClaude Sonnet 4.6
2026-06-29 03:22:11 -07:00
-
588af0dffe
chore(release): bump to 1.14.3
Sami
2026-06-29 01:21:01 -07:00
-
489f700cc3
fix(startup): prefix all bare src/ subdirectory requires with ./ in app.js and provider-dns.js
Sami
2026-06-29 01:20:39 -07:00
-
7855b20f63
chore(release): bump to 1.14.2
Sami
2026-06-29 00:50:10 -07:00
-
7ef99ec42b
fix(dns): correct provider-dns.js require path after dns-providers/ move to src/dns/
Sami
2026-06-29 00:48:50 -07:00
-
a37f4f571d
chore(release): bump to 1.14.1
Sami
2026-06-29 00:44:27 -07:00
-
95a8ae7a09
fix(docker): remove stale COPY dns-providers/ — moved to src/dns/dns-providers/
Sami
2026-06-28 04:11:32 -07:00
-
80bb6098a4
chore(release): bump to 1.14.0
Sami
2026-06-28 03:52:45 -07:00
-
a79dc5a738
docs(changelog): document 1.14.0 release + desloppify changes
Sami
2026-06-28 03:51:15 -07:00
-
a2e6566958
refactor(desloppify): SSO login-page route, CLAUDE.md rewrite, gitignore cleanup

SamiandClaude Sonnet 4.6
2026-06-28 03:38:31 -07:00
-
5f6c25d2e3
DC-018/DC-019: mark done, bump v1.13.5, CHANGELOG
Hermes
2026-06-27 07:03:41 -07:00
-
1f887725fb
DC-019: fix flaky backup-manager tamper test (authTag byte corruption)
Hermes
2026-06-27 07:02:47 -07:00
-
c1ac0baa5e
DC-019: claim for Hermes — backup-manager flaky tamper test
Hermes
2026-06-27 06:52:10 -07:00
-
1c8f55edc1
DC-018: return writeErrorLog promise from Logger.error()
Hermes
2026-06-27 06:51:59 -07:00
-
923e1ad6f9
DC-018: claim for Hermes — Logger.error() swallows writeErrorLog promise
Hermes
2026-06-27 06:37:59 -07:00
-
ab0ef9cfa1
DC-017: Regression tests for depth-2 route paths + PUBLIC_ROUTES drift
Hermes
2026-06-26 12:16:38 -07:00
-
8973392c61
BACKLOG: audit DC-013/014/015/016 — all four already implemented, mark done
Hermes
2026-06-25 17:27:56 -07:00
-
8ec6c0ca6a
DC-012: Add Kubernetes-style /healthz + /readyz probe aliases
Hermes
2026-06-25 17:16:16 -07:00
-
c39c80b3ad
Fix DC-005 depth-2 route path bugs: 67 broken requires across 21 files
Hermes
2026-06-25 16:55:06 -07:00
-
57a6a22f89
BACKLOG: mark DC-005 fully done + document post-merge health-checker path fix
Hermes
2026-06-25 16:43:52 -07:00
-
9688e64692
Fix DC-005 latent path bug: health-checker required './platform-paths' but file lives at top level
Hermes
2026-06-25 16:43:26 -07:00
-
283121edba
Merge krystie-improvements into main
Hermes
2026-06-25 16:43:10 -07:00
-
-
b6ad42b5ad
BACKLOG: mark DC-006 done, document DC-005 latent path bug
Hermes
2026-06-25 16:15:58 -07:00
-
e1a45543ea
DC-006: Add integration test for TOTP auth flow
Hermes
2026-06-25 16:15:15 -07:00
-
4a66962f19
DC-008: add Linux deployment section to CLAUDE.md + fix stale version field
Hermes
2026-06-25 15:48:09 -07:00
-
c77fc65c1f
DC-009: mark done — [Unreleased] populated with 30+ entries since v1.5.0
Hermes
2026-06-25 15:47:25 -07:00
-
7f6be1c2b3
DC-009: populate [Unreleased] section in CHANGELOG.md
Hermes
2026-06-25 15:47:12 -07:00
-
54744536b3
DC-010: mark done — all 62 envelope calls across 9 route files converted
Hermes
2026-06-25 15:46:11 -07:00
-
2f50998105
DC-010: Convert remaining bare res.json({success,...}) envelopes to response helper
Hermes
2026-06-25 15:44:18 -07:00
-
c509f6ff10
DC-010: convert res.json({success:true,...}) → ok() in updates/notifications/tailscale
Hermes
2026-06-25 14:29:27 -07:00
-
bf515e5415
DC-010: convert res.json({success:true,...}) → ok(res, {...}) in 3 routes; refactor config/context/utils
Hermes
2026-06-25 14:24:24 -07:00
-
57549e3e0c
DC-010: claim + progress note (3/14 route files converted to ok() helper)
Hermes
2026-06-25 14:24:03 -07:00
-
f457da7d1f
DC-010: claim for Hermes
Hermes
2026-06-25 06:26:00 -07:00
-
1da341b1c5
DC-004: mark done (zero ESLint warnings)
Hermes
2026-06-25 06:22:19 -07:00
-
a37e79a8fc
DC-004: fix remaining 3 ESLint warnings (require-await, max-depth)
Hermes
2026-06-25 06:22:07 -07:00
-
92bcafb4f1
DC-011: mark done — 750/750 tests pass, fixed route regression + ctx bug
Hermes
2026-06-21 05:54:17 -07:00