-
acc2e1939e
[grade=B] DC-093: Workflow engine retry with exponential backoff
Hermes
2026-08-12 05:34:49 -07:00
-
f3934fd257
[grade=B] DC-097+DC-092: Prometheus metrics export + dependency health checks
Hermes
2026-08-12 05:33:03 -07:00
-
27beae22a8
[grade=B] DC-073: Debug request logger middleware (LOG_LEVEL=debug)
Hermes
2026-08-12 05:25:30 -07:00
-
30acd6a237
[grade=B] DC-074+DC-091: Multi-stage Dockerfile + Dependabot config
Hermes
2026-08-12 05:10:01 -07:00
-
dad6af4003
[grade=B] DC-072: Enable source maps in production esbuild bundles
Hermes
2026-08-12 05:08:52 -07:00
-
84374aab38
[grade=B] DC-063: Coverage threshold adjustment + toDockerMountPath edge case test
Hermes
2026-08-12 05:07:24 -07:00
-
3be4cda695
[grade=B] DC-070: Add CI/CD pipeline — GitHub Actions workflow
Hermes
2026-08-12 05:02:59 -07:00
-
6891b51a1e
[grade=A] DC-075: System health endpoint + DC-069 notification cooldown verified
Hermes
2026-08-12 04:59:03 -07:00
-
f6feb0184d
[grade=A] DC-062: Update OpenAPI spec from v1.0.0 to v1.15.0 — 112→276 paths (329 ops)
Hermes
2026-08-12 04:52:35 -07:00
-
92482980dd
[grade=A] DC-065: Sweep 15 console.* calls to process.stderr.write
Hermes
2026-08-12 04:50:16 -07:00
-
a1d7208686
[grade=A] DC-085: Replace Math.random() with crypto for security-sensitive IDs
Hermes
2026-08-12 04:45:19 -07:00
-
cdf9e8d3ef
[grade=A] DC-082+DC-064: eliminate command injection surface + add Docker resource limits
Hermes
2026-08-12 04:35:15 -07:00
-
432e9635bc
DC-067: fix force-exit + listener exception handling per Codex D-grade feedback
hermes
2026-08-12 03:59:11 -07:00
-
5b74536472
DC-067: harden shutdown per Codex C-grade feedback
hermes
2026-08-12 03:52:34 -07:00
-
bb01a77ae7
DC-067: fix shutdown sequencing — stop managers AFTER server.close drains
hermes
2026-08-12 03:46:42 -07:00
-
88ff260e5e
DC-067: graceful shutdown coordinator (EventEmitter, 10s drain, idempotent)
hermes
2026-08-12 03:36:49 -07:00
-
-
ff81d99021
DC-101: Disk Space Monitor + Product Vision
Hermes
2026-08-12 02:41:40 -07:00
-
5c02bfba1d
DC-084/085/089/090: Quick wins batch
Hermes
2026-08-12 02:24:28 -07:00
-
bb20f02cbf
Expand production backlog: 19 → 39 tasks (DC-081–DC-100)
Hermes
2026-08-12 02:13:55 -07:00
-
dc788e5dd3
DC-061: healthCheckUrl override + v2 production-grade backlog
Hermes
2026-08-12 02:05:08 -07:00
-
04f90d1505
DC-061: Add healthCheckUrl override to URL resolver
Hermes
2026-08-12 01:52:37 -07:00
-
bd13104362
DC-037: install.sh creates /opt/dashcaddy/dashcaddy-api -> /etc/dashcaddy/sites/dashcaddy-api symlink
Krystie
2026-08-11 05:27:54 -07:00
-
dcf252e515
P2-5 through P2-7: mark done — all backlog items complete
Hermes
2026-08-10 21:19:43 -07:00
-
a7512b4a56
[grade=A] P2-7: refactor tailscaleAuthMiddleware (complexity 24→7, nesting 6→3)
Hermes
2026-08-10 21:19:28 -07:00
-
f5fc688185
[grade=A] P2-6: refactor config-schema.js validateConfig (complexity 44→8 sub-validators)
Hermes
2026-08-10 21:18:09 -07:00
-
1bc41bb2bc
[grade=A] P2-5: fix 4 test handle leaks in log-digest.js + sweep remaining console calls
Hermes
2026-08-10 21:16:22 -07:00
-
4dda005eb1
P2-1 through P2-4: mark done in backlog
Hermes
2026-08-10 20:28:56 -07:00
-
140aa5d4b1
[grade=A] P2-1 through P2-4: version sync, dead file cleanup, ESLint fixes
Hermes
2026-08-10 20:28:36 -07:00
-
bf1bcb1133
P1-3 through P1-8: mark done in production-grade backlog
Hermes
2026-08-10 20:24:22 -07:00
-
7b04bc1d3c
[grade=A] P1-8: replace 66 console.* calls across 6 remaining files with structured logger
Hermes
2026-08-10 20:23:58 -07:00
-
191d3340a7
[grade=A] P1-7: replace 18 console.* calls in bundled-workflows.js with structured logger
Hermes
2026-08-10 20:16:45 -07:00
-
84f63a3261
[grade=A] P1-5, P1-6: replace 40 console.* calls in credential-manager.js + auth-manager.js
Hermes
2026-08-10 20:15:15 -07:00
-
f2c6fa69f5
[grade=A] P1-4: replace 32 console.* calls in resource-monitor.js with structured logger
Hermes
2026-08-10 20:12:22 -07:00
-
c55abdab87
[grade=A] P1-3: replace 36 console.* calls in backup-manager.js with structured logger
Hermes
2026-08-10 20:10:08 -07:00
-
-
0bf4406253
P1-2: mark done in production-grade backlog
Hermes
2026-08-10 15:50:03 -07:00
-
cbc5dc96c8
DC-060: mark done in BACKLOG
Hermes
2026-08-10 15:49:53 -07:00
-
e8b9dd5b91
[grade=A] DC-060: replace 49 console.* calls in update-manager.js with structured logger
Hermes
2026-08-10 15:49:40 -07:00
-
baba762dab
DC-060: claim for Hermes
Hermes
2026-08-10 15:44:59 -07:00
-
f9eaa324dd
DC-059: mark done in BACKLOG + DC-PRODUCTION-GRADE-BACKLOG
Hermes
2026-08-08 15:40:18 -07:00
-
a667de7920
DC-059: Joi validation middleware + schemas for destructive routes
Hermes
2026-08-08 15:39:48 -07:00
-
c1358df0ec
DC-059: claim for Hermes
Hermes
2026-08-08 15:20:09 -07:00
-
55a50fdeb7
P0-3, P0-4, P0-5: mark done in backlog
Hermes
2026-08-08 03:36:52 -07:00
-
609ccd32c4
[grade=A] P0-5: apps-revert catch — log err server-side, return generic 'Revert failed' to client
Hermes
2026-08-08 03:35:55 -07:00
-
57ed09fe91
[grade=A] P0-4: assets upload — wire decodeImageData helper (MIME whitelist + 5MB cap)
Hermes
2026-08-08 03:33:32 -07:00
-
b3488f14ca
[grade=A] P0-3: backups config route — destructure req.body to backups/defaultRetention only
Hermes
2026-08-08 03:30:20 -07:00
-
8072c076e2
P0-2: mark done in backlog
Hermes
2026-08-08 03:27:48 -07:00
-
66e44606af
[grade=A] P0-2: ca.js pkcs12 password — execSync template literal → execFileSync argv (no shell)
Hermes
2026-08-08 03:26:55 -07:00
-
a042645299
P0-1: mark done in backlog
Hermes
2026-08-08 03:24:35 -07:00
-
3a0a5bc897
[grade=A] P0-1: npm audit fix — minimatch 9.0.9 in webdav transitive resolves 3 high CVEs
Hermes
2026-08-08 03:23:39 -07:00
-
9ab3452b19
[grade=B] DC-058: close as done — share UI shipped + tests pass
Hermes
2026-08-06 15:13:19 -07:00
-
a7057e4fba
[grade=B] DC-058: complete Share UI — admin modal + public preview page + grid share button + 3 frontend tests
Hermes
2026-08-06 15:11:31 -07:00
-
f8b088916b
DC-058: claim for Hermes
Hermes
2026-08-06 14:28:00 -07:00
-
9b9711bf24
DC-057: close checkout-to-license contract drift (grade B)
Hermes
2026-08-04 14:18:49 -07:00
-
f154f501ff
DC-057: claim for Hermes
Hermes
2026-08-04 13:13:24 -07:00
-
1c02131fe0
fix(server): DC-058 close 3 P0 bugs — restore.js missing dep, dns.js ok ref, dead /billing/checkout
Hermes
2026-08-03 00:43:34 -07:00
-
f89079804c
Merge fix/readme-license-mismatch into main
Krystie
2026-08-03 00:38:48 -07:00
-
-
7f6203b2f7
fix(readme): correct license badge — MIT to Proprietary EULA, bump version badge to 1.15.0
fix/readme-license-mismatch
Hermes
2026-08-03 00:37:15 -07:00
-
-
b40cb6458b
[grade=D] DC-057: return incomplete claim to todo
Hermes
2026-08-02 13:06:53 -07:00
-
54e8042764
[grade=A] DC-057: release incomplete claim
Hermes
2026-08-02 12:57:52 -07:00
-
fadbfc8eb5
[grade=A] DC-057: claim for Hermes
Hermes
2026-08-02 12:10:57 -07:00
-
d8f9df7e77
[grade=A] DC-055: close with public-routes-drift fix result
Hermes
2026-08-02 03:38:45 -07:00
-
86df178022
[grade=A] DC-055: fix public-routes drift — bill prefix + services mount, drop dead webhook
Hermes
2026-08-02 03:38:23 -07:00
-
d45ebb8f39
[krystie] chore(backlog): close DC-044 (workflow health-check fix shipped on main,
be798a9) + clarify DC-056 result
Krystie
2026-08-01 09:50:24 -07:00
-
a2ab1f85eb
[grade=A] feat(legal): DC-056 ToS + Privacy pages with deploy + regression guard
Hermes
2026-07-31 01:07:46 -07:00
-
be798a9bc2
[grade=B] fix(workflows): DC-044 root-cause — gate notify-on-failure, interpolate failingServices, fix Health.Status check
Hermes
2026-07-31 00:43:29 -07:00
-
8a512774d7
[grade=B] refactor(assets): delete two repo-debris files
Hermes
2026-07-25 14:09:40 -07:00
-
592a9fd939
[grade=B] refactor(license-keygen): extract programmatic API + atomic counter
Hermes
2026-07-25 14:07:47 -07:00
-
6d5b1992b5
[grade=A] refactor: remove stale nested monitoring widget
Hermes
2026-07-24 22:59:22 -07:00
-
649c714aea
[grade=A] refactor: remove dead legacy route context
Hermes
2026-07-24 22:51:31 -07:00
-
0d46225efc
[grade=B] test: sync auth and version contracts
Hermes
2026-07-24 22:39:29 -07:00
-
140ef8726b
[grade=B] refactor: remove stale duplicate license key generator
Hermes
2026-07-24 21:47:31 -07:00
-
0cc278abf1
[grade=B] fix(auth): generalize cross-host SSO handoff
Krystie
2026-07-24 16:03:34 -07:00
-
003b152230
[grade=A] fix(auth): preserve cross-host SSO return URLs
Krystie
2026-07-24 14:36:28 -07:00
-
75f835641f
[grade=B] fix(auth): use host-only session cookies on custom TLDs
Krystie
2026-07-24 05:05:41 -07:00
-
872923dba2
fix(auth): route /api/auth/sso-exchange through the v1 rewrite shim
Krystie
2026-07-24 02:33:29 -07:00
-
10f2bf707b
fix(auth): token-based handoff for cross-subdomain SSO
Krystie
2026-07-24 02:25:25 -07:00
-
f42e761e52
fix(auth): remove stray brace breaking auto-login page inline script
Krystie
2026-07-24 01:39:38 -07:00
-
e208e05b83
fix(auth): relax CSP script-src for auto-login page (inline JS was silently blocked)
Krystie
2026-07-23 23:13:58 -07:00
-
ba21dad550
DC-XXX: never-trap auto-login fallback — stale localStorage + manual links
Krystie
2026-07-22 14:03:34 -07:00
-
09d2451f2c
DC-XXX: add AbortSignal timeouts to auto-login page JS, kill hang
Krystie
2026-07-22 01:43:59 -07:00
-
e69a93a825
bump version: cookie-only session
Krystie
2026-07-21 23:52:36 -07:00
-
96e2ef8609
DC-XXX: cookie-only session validation, kill IP-key cache mismatch
Krystie
2026-07-21 23:52:33 -07:00
-
d450580ef5
DC-054: claim for Hermes
Hermes
2026-07-23 10:07:09 -07:00
-
7143c36187
fix: preserve share store in application context
Krystie
2026-07-21 22:53:43 -07:00
-
7682cb77bf
fix: pass platform paths to share store
Krystie
2026-07-21 22:45:50 -07:00
-
ed32deb4ba
merge: integrate upstream license-tier updates
Krystie
2026-07-21 21:59:56 -07:00
-
-
a2a2bee71e
fix: match parameterized public auth routes
Krystie
2026-07-21 21:59:03 -07:00
-
5660c55cb6
DC-052: mark license tier enforcement complete
Hermes
2026-07-21 09:55:18 -07:00
-
9e1ee75814
DC-052: claim for Hermes
Hermes
2026-07-21 09:49:27 -07:00
-
-
d9e61ce1b7
DC-053: Public share links + Tailscale-mediated share (Pro-gated)
Krystie
2026-07-21 00:45:46 -07:00
-
f0afc4358c
Claim DC-053 (Pro-gated share: public links + Tailscale-mediated)
Krystie
2026-07-20 23:04:49 -07:00
-
273f6b8edb
DC-052: license-tier enforcement (Free caps at 3, gates share on Pro)
hermes
2026-07-20 21:40:26 -07:00
-
b105d5abae
PRODUCT-SPEC: clarify Free has no trial; LIFETIME is creator-only
hermes
2026-07-20 21:22:34 -07:00
-
4671e51465
PRODUCT-SPEC-DECISIONS: lock the 14 product decisions
hermes
2026-07-20 21:01:10 -07:00
-
375dea22ca
PRODUCT-SPEC-DECISIONS + DC-052–056 build pipeline
hermes
2026-07-20 21:00:54 -07:00
-
0b85caa80a
DC-041: integration test for dashcaddy-update.sh auto-update pipeline
hermes
2026-07-20 20:01:42 -07:00
-
321334cd33
DC-048: multi-user bootstrap + admin invites (opt-in)
hermes
2026-07-20 17:44:11 -07:00
-
bd480a69a7
BACKLOG + CHANGELOG: mark DC-049 done
Hermes Agent
2026-07-20 02:23:26 -07:00
-
c54739e110
DC-049 follow-on: email fallback link on TOTP-only overlay
Hermes Agent
2026-07-20 02:21:59 -07:00
-
923ce8c300
DC-049 auth gate UI: pluggable provider selector + email challenge
Hermes
2026-07-20 02:17:12 -07:00