[auto-closed: stale > 24h]
D4 now skips closed/redirected parents; cascade-close steps on terminal; 60-min dedup + 14-day prune added; retired 156 orphan steps; archived+purged 1.38M elrond_stuck_state rows; VACUUM 494MB->107MB (387MB freed); cookbook #316 contract added.
Keep-alive cron now defers to systemd (exits if carol-elrond.service is active) instead of spawning a detached duplicate; killed the leftover orphan; one systemd-managed watcher remains, verified by manual keepalive run.
Root cause: create endpoint blocks ~16s on an LLM service-tag but the Initiative Author waited only 15s, so it abandoned the create the server was still finishing -> empty-shell follow-ons; retries stacked duplicates (0300-50 and 0300-51) because follow-ons skip the dup-gate.
The UAT sign-off close (record_uat) set status with a bare SQL update, skipping the entire close-hook chain — so the CAROL-INI-864 cascade (and quality scoring, audit, dispatch-lock flip) never ran on a UAT close.
Added last_seen to droid_runs; the worker Claude call now stamps last_seen+pid every 45s while running.
Gave Merlin a voice during step execution (he was silent; this also un-buries the running initiative since the wall already sorts by latest activity), added a WHY beat to the post format, and made the wall render CET timestamps + per-update duration.