5.3 KiB
5.3 KiB
DashCaddy Improvement Backlog
Shared coordination file for Hermes & Krystie. Both bots read this, claim tasks, and update status. Git is the source of truth. When claiming: change
status: todotostatus: in-progressand setowner. When done: change tostatus: doneand add brief result.
P0 — Must Fix (blocks public release)
DC-001: Fix 4 failing tests in services.routes.test.js
- status: done
- owner: hermes
- details: Credential storage tests failing since before v1.13.4. Run
cd dashcaddy-api && npx jest __tests__/routes/services.routes.test.jsto see failures. Fix the root cause, not the test. - result: Root cause: routes used
/:serviceId/credentials(missing/services/segment). All 3 credential routes (POST/DELETE/GET) inroutes/services.jshad the wrong path. Fixed to/services/:serviceId/credentials— matches the URL pattern used by the live frontend and all 759 tests pass.
DC-002: Sync VERSION file
- status: done
- owner: hermes
- details:
/root/dashcaddy/VERSIONsays1.13.0butpackage.jsonsays1.13.4. VERSION file should always match package.json. Add a pre-commit or post-version bump hook to keep them in sync. - result: Fixed root VERSION to 1.13.4. Updated
scripts/release.shto write bothdashcaddy-api/package.jsonAND rootVERSIONon every release — also stages VERSION in the release commit. No more drift.
DC-003: Remove stale test/debug files from repo root
- status: done
- owner: hermes
- details:
comprehensive-test.jsandtest-security-fixes.jsare ad-hoc test scripts, not Jest tests. They clutter the repo root. Remove them or convert to proper Jest tests under__tests__/. - result: Moved both files to
dashcaddy-api/scripts/legacy/(preserved, not deleted — they are 875 lines of security test coverage that may be useful as a manual smoke test). Zero references to them in code/docs — safe to move. All 759 Jest tests still pass.
P1 — Code Quality
DC-004: Fix 19 ESLint warnings
- status: in-progress
- owner: hermes
- details: Run
cd dashcaddy-api && npx eslint src/ --format compact. Most are unused vars and nested ternaries insrc/utils/logging.js. Fix all, target zero warnings.
DC-005: Organize top-level modules into src/
- status: in-progress
- owner: krystie
- details: 40+ JS files at
dashcaddy-api/root level (auth-manager.js, credential-manager.js, etc.). Move into organized subdirs undersrc/(e.g.,src/managers/,src/security/,src/docker/). Update all require() paths. This is a big refactor — run tests after.
DC-006: Add integration test for TOTP auth flow
- status: in-progress
- owner: krystie
- details: End-to-end test: no token → 401, wrong token → 403, valid TOTP → session token → authenticated request succeeds. Cover the full
/api/auth/check→ session → endpoint flow.
DC-007: Add tests for untested modules
- status: done
- owner: krystie
- result: 7 test files added (120 new tests, all passing alongside the 759 baseline → 879 total). Files:
__tests__/dns-propagation.test.js(9),__tests__/notification-manager.test.js(18),__tests__/ssl-monitor.test.js(13),__tests__/log-digest.test.js(11),__tests__/metrics.test.js(21),__tests__/config-drift-detector.test.js(19),__tests__/auto-restart-manager.test.js(29). - details: These modules have NO test coverage:
dns-propagation.js,notification-manager.js,ssl-monitor.js,log-digest.js,metrics.js,config-drift-detector.js,auto-restart-manager.js. Add at least basic smoke tests for each.
P2 — Polish & DX
DC-008: Update CLAUDE.md for cross-platform accuracy
- status: todo
- owner:
- details: CLAUDE.md references Windows-specific paths (C:/caddy/, e:/CaddyCerts/) as if they're universal. DashCaddy runs on Linux (Docker on DNS2) and Windows (SAMI-PC). Document both deployment targets clearly.
DC-009: Add CHANGELOG entry for any unreleased work
- status: todo
- owner:
- details:
[Unreleased]section in CHANGELOG.md is empty. Any fixes done should be documented there before tagging a release.
DC-010: Standardize error response shapes
- status: todo
- owner:
- details: v1.13.4 standardized route responses to use helpers, but some modules still use raw
res.json(). Grep for remainingres.json(in route handlers and convert to response helpers.
Coordination Rules
- Always
git pullbefore starting work. - Claim a task by editing BACKLOG.md: set
status: in-progressandowner: hermesorowner: krystie. - Commit BACKLOG.md claim first, then start coding.
- Run tests before pushing:
cd dashcaddy-api && npx jest --passWithNoTests - Push to
main— usehttp://sami7777:<token>@100.98.123.59:3000/sami7777/dashcaddy.git - Update BACKLOG.md when done: set
status: done, add brief result under the task. - Never work on a task another bot has claimed (status: in-progress).
- Quality bar: this is a public-release product. No hacks, no env-var workarounds, no per-machine patches. Fixes go in the shared codebase.
- VERSION bump: when a batch of tasks is done, bump patch version in package.json + VERSION file, update CHANGELOG, tag.