Files
dashcaddy/BACKLOG.md
T
Hermes 8ef5e4a9a4
CI / Test & Lint (push) Has been cancelled
CI / Security audit (push) Has been cancelled
Add shared BACKLOG.md for Hermes+Krystie collaborative improvements
2026-06-13 05:22:59 -07:00

83 lines
4.0 KiB
Markdown

# 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: todo` to `status: in-progress` and set `owner`.
> When done: change to `status: done` and add brief result.
---
## P0 — Must Fix (blocks public release)
### DC-001: Fix 4 failing tests in services.routes.test.js
- **status:** todo
- **owner:**
- **details:** Credential storage tests failing since before v1.13.4. Run `cd dashcaddy-api && npx jest __tests__/routes/services.routes.test.js` to see failures. Fix the root cause, not the test.
### DC-002: Sync VERSION file
- **status:** todo
- **owner:**
- **details:** `/root/dashcaddy/VERSION` says `1.13.0` but `package.json` says `1.13.4`. VERSION file should always match package.json. Add a pre-commit or post-version bump hook to keep them in sync.
### DC-003: Remove stale test/debug files from repo root
- **status:** todo
- **owner:**
- **details:** `comprehensive-test.js` and `test-security-fixes.js` are ad-hoc test scripts, not Jest tests. They clutter the repo root. Remove them or convert to proper Jest tests under `__tests__/`.
---
## P1 — Code Quality
### DC-004: Fix 19 ESLint warnings
- **status:** todo
- **owner:**
- **details:** Run `cd dashcaddy-api && npx eslint src/ --format compact`. Most are unused vars and nested ternaries in `src/utils/logging.js`. Fix all, target zero warnings.
### DC-005: Organize top-level modules into src/
- **status:** todo
- **owner:**
- **details:** 40+ JS files at `dashcaddy-api/` root level (auth-manager.js, credential-manager.js, etc.). Move into organized subdirs under `src/` (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:** todo
- **owner:**
- **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:** todo
- **owner:**
- **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 remaining `res.json(` in route handlers and convert to response helpers.
---
## Coordination Rules
1. **Always `git pull` before starting work.**
2. **Claim a task by editing BACKLOG.md:** set `status: in-progress` and `owner: hermes` or `owner: krystie`.
3. **Commit BACKLOG.md claim first**, then start coding.
4. **Run tests before pushing:** `cd dashcaddy-api && npx jest --passWithNoTests`
5. **Push to `main`** — use `http://sami7777:<token>@100.98.123.59:3000/sami7777/dashcaddy.git`
6. **Update BACKLOG.md** when done: set `status: done`, add brief result under the task.
7. **Never work on a task another bot has claimed** (status: in-progress).
8. **Quality bar:** this is a public-release product. No hacks, no env-var workarounds, no per-machine patches. Fixes go in the shared codebase.
9. **VERSION bump:** when a batch of tasks is done, bump patch version in package.json + VERSION file, update CHANGELOG, tag.