# Reproducible verification — DC-170 docs batch r9 rev2 (2026-10-29 09:27 UTC)
# Every line below is verbatim: the exact command run and its exact output,
# captured in one shell session against this repository.
# NOTE: dashcaddy-api/VERSION is the BUILD STAMP written by start.sh at
# deploy time (the deployed commit SHA) — NOT a semver source of truth.
# The batch-7 r1 edit setting it to 1.17.0 broke SelfUpdater.getLocalVersion()
# commit resolution (2 test failures) and was reverted: the stamp is restored
# to 70e252c (the pre-existing deployed-commit stamp). Version alignment lives
# in package.json + openapi.yaml (both 1.17.0) and the README badge.

$ cd /root/dashcaddy
$ cat dashcaddy-api/VERSION
70e252c

$ grep "\"version\"" dashcaddy-api/package.json
  "version": "1.17.0",

$ grep "version:" dashcaddy-api/openapi.yaml | head -1
  version: 1.17.0

$ grep "version-" README.md | head -1
![Version](https://img.shields.io/badge/version-1.17.0-blue)

$ node -e 'const {APP_TEMPLATES}=require("./dashcaddy-api/src/docker/app-templates"); console.log("templates:", Object.keys(APP_TEMPLATES).length)'
templates: 78

$ python3 /root/.hermes/skills/software-development/dashcaddy/scripts/api-surface-extract.py --root /root/dashcaddy --out /root/dashcaddy/API-SURFACE.md
[ok] 443 handler rows, 59 PUBLIC_ROUTES allowlist entries
[ok] wrote /root/dashcaddy/API-SURFACE.md (54340 bytes)
$ wc -c API-SURFACE.md
54340 API-SURFACE.md
$ sha256sum API-SURFACE.md
6ee6b2f0da244cd6103be14f0977b95f1a9af3d453bf2401bb4c222d59b6c621  API-SURFACE.md
