diff --git a/CHANGELOG.md b/CHANGELOG.md index 8bbf877..340f5ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- **DC-165 judge: grade B (round 5)** urn:ump:oqgczb6zv5bemekbxko7gi5rvfle6yoshwgfwsx4mbbj4xmg6paq +- **DC-165: product/site uniformity + LLM-readable capabilities.** Site-vs-product + audit reconciliation (owner: "advertise as Premium", "It should be LLM readable"): + 'fleet' added to PREMIUM_FEATURES and `requirePremium('fleet')` mounted at the + /fleet ROUTER prefix (app.js) so every sub-route present and future inherits the + gate — proven by 4 real-boot composition-root e2e tests (free 403 envelope + contract, per-feature check, with-fleet gate cleared, hosts/status/deploy + inheritance). 'workflows' + 'auto-backup' (gated in routes forever, missing from + the constant so the offline path could never grant them) listed with + source-quoted descriptions; marketing pages now advertise them (manual backup + + Disaster Recovery stay free — copy matches code exactly). Offline activations + forward-migrate on load (append-only union, online untouched — server stays + authoritative). GET /api/v1/capabilities: public machine-readable manifest of the + RUNNING build — six measured fields (version, template count/categories, MCP + tools, transport identity triple, premium list, language count) derived at request + time from the runtime modules (single source: MCP_RUNTIME exported from + routes/mcp.js, read by /info and capabilities alike), static metadata fields + honestly labeled; PUBLIC_ROUTES + drift test + OpenAPI 200-only contract; + no-secrets negative test. License-server grant list extended to + sso/recipes/swarm/fleet/workflows/auto-backup with existing records backfilled + (ops). Marketing repo (dashcaddy.net, separate commits): counts 77→78 everywhere, + internal-identifier sweep (~85 private-TLD/IP/user/path hits → .home/example + style), radicale install guide (78th), calendar/Connect-AI advertised, MCP claim + softened to real scope + capabilities pointer, llms.txt → runtime ground truth, + robots LLMs-Txt line. 124 targeted tests (9 dc165 + 4 fleet-e2e + 76 license + + 21 tier + 14 drift); 73 MCP tests re-green after refactor. - **DC-164 judge: grade B (round 6)** urn:ump:5vuahbn4znf7hrrshjvu2pcbqln5m6qcrpkkn3mx6y2rvvmdtqoa - **DC-164: operator env overrides + license-material untracking.** start.sh forwards `-e` flags from /etc/dashcaddy/operator.env (root-owned KEY=VALUE,