Purpose: explain service_readiness.live.stale_vs_disk without turning a scheduled readiness tick into an activation or restart.
What the field means
service_readiness.live.stale_vs_disk=true means Aphrodite could read systemd metadata for aphrodite.service, compare ExecMainStartTimestamp against the latest Aphrodite disk code/template mtime, and the live process appears older than the disk artifacts.
That is evidence only. It usually means disk verification is newer than the currently running service. It does not prove the service is broken, and it does not authorize Forge to start, restart, reload, enable, disable, or reconfigure anything.
If service_readiness.live.available=false, the service may be absent, systemd may be unavailable, or systemctl show may have failed. Treat that as a blocker/reporting state, not as approval to install or start the service.
Read-only checks allowed during autonomous ticks
From the repository root:
PYTHONDONTWRITEBYTECODE=1 .venv/bin/python scripts/aphrodite doctor
PYTHONDONTWRITEBYTECODE=1 .venv/bin/python scripts/aphrodite endpoint-preflight
bash scripts/verify.sh
Older docs and readiness assertions may still mention
PYTHONDONTWRITEBYTECODE=1 python scripts/aphrodite doctor; prefer the
.venv/bin/python form above so the command works when bare python is not on
PATH.
These checks may report service_readiness.live.stale_vs_disk; they must not resolve it.
Approval phrases required to resolve staleness
Use named, scoped approval. Do not infer one approval from another.
I approve installing Aphrodite private env now.I approve installing and starting aphrodite.service now.I approve restarting/reloading aphrodite.service now.I approve applying the Aphrodite Caddy route and reloading Caddy now.I approve setting the Discord application interaction endpoint to <URL> now.I approve restarting/reloading <exact Hermes service> now.
Forbidden without named approval
- Do not start, restart, reload, enable, disable, or install
aphrodite.service. - Do not reload Caddy or apply proxy config.
- Do not edit Hermes config or restart/reload/replace Hermes, Forge, Aphrodite, or any gateway.
- Do not run
hermes gateway run --replace. - Do not change the Discord application interaction endpoint.
- Do not POST/PATCH/PUT/DELETE/pin/unpin live Discord cards.
- Do not create, update, remove, or recursively manage cron jobs.
Rollback boundary
Rollback also needs named approval unless a live service is already proven broken and rollback is the agreed repair. Restore prior env/unit/proxy/Discord endpoint/card state inside that approved window. Do not run hermes gateway run --replace as rollback without named approval.
Where this appears
.venv/bin/python scripts/aphrodite doctorincludesservice_readiness.live.staleness_guidancewhen systemd status is available./statusincludes the sameservice_readinesspayload after approved service activation.docs/deployment.mdanddocs/production-endpoint-preflight.mdpoint back here for interpretation.