Product-code half (fleet gate, capabilities endpoint, offline feature
migration, PREMIUM_FEATURES completion) lives in the dashcaddy repo, branch
dc/DC-165-uniformity — judged as one bundle.
Site edits (all claims verified against product source, see EVIDENCE [9]):
- template count 77 -> 78 EVERYWHERE (page.tsx, features, pricing, docs,
blog bodies + manifest.ts frontmatter per three-way consistency rule,
AppShowcase, DocsLayout, FaqSection). Source of truth:
APP_TEMPLATES keys == 78.
- internal-identifier leak sweep: 85 occurrences of *.sami (internal TLD),
an internal Git host URL, a private venv path, and a server-local repo
path in pricing comment -> replaced with the documented .home style /
generic wording. status.sami replaced by dashcaddy.local (product default
dashboardHost). Verified ZERO remaining in rebuilt out/.
- advertise as Premium (owner decision 2026-10-09): pricing premium list +
FAQ + docs/premium table + two new deep-dive sections (Workflow
Automation: the five bundled ids from bundled-workflows.js; Scheduled
Backups: schedule fields from the /backups/schedule schema, manual
one-click + DR explicitly noted as free).
- calendar widget + hosted-Radicale auto-wiring advertised (features page
chip + new docs/catalog/radicale install guide following house template
structure; syncthing page mirrored for the placeholder conventions).
- Connect AI one-click key flow advertised (features chip).
- MCP card softened: 'entire infrastructure' -> the real tool scope +
pointer to GET /api/v1/capabilities (public ground-truth manifest).
- llms.txt: capabilities endpoint pointer + 'prefer it over static prose'
+ MCP tool examples + premium gate list; robots.txt gains LLMs-Txt line.
- NOTE: a parked unrelated work-in-progress (dc-seo-r8 blog edits) was
stashed before the build and is NOT in this commit.
Build gate: rm -rf .next out && npm run build -> clean, 123 static pages,
out/ greps zero stale counts/leaks.