finish(STATE-WP-0064): cut over scheduler and split sweep errors from failures

STATE-WP-0064 cutover (state-hub only):
- Retire local custodian-sync.timer; archive units under infra/systemd/archived/
- Mark workplan finished; update infra/README, cron-migration, runbook, AGENTS.md
- Point activity-core-delegation at the consistency-sweep runbook

Consistency engine — automation error vs assessment failure:
- C-00 is an automation error; C-01..C-23 assessment failures are recorded
  for follow-up but no longer fail --remote --all scheduled sweeps (exit 0)
- Skip workplans/README.md in the workplan glob (human index, not a workplan)
- Progress events and compare script expose automation_error and
  assessment_failures separately from exit_code
This commit is contained in:
2026-06-22 01:20:59 +02:00
parent 270033a50d
commit 39ed5459b9
14 changed files with 221 additions and 180 deletions

View File

@@ -0,0 +1,16 @@
# Archived systemd units
Retired 2026-06-21 as part of `STATE-WP-0064` cutover.
The **State Hub consistency sync** schedule now runs on activity-core
(Railiance01) via the `the-custodian.state-hub-consistency-sweep`
ActivityDefinition. See [`docs/consistency-sweep-runbook.md`](../../../docs/consistency-sweep-runbook.md).
These units are kept for reference or emergency local fallback only. To
re-enable temporarily:
```bash
cp infra/systemd/archived/custodian-sync.* ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now custodian-sync.timer
```

View File

@@ -0,0 +1,11 @@
[Unit]
Description=State Hub consistency sync — fix-consistency-remote sweep
After=network.target
[Service]
Type=oneshot
WorkingDirectory=/home/worsch/state-hub
ExecStartPre=/usr/bin/curl -sf http://127.0.0.1:8000/state/health
ExecStart=/usr/bin/curl -sf -X POST http://127.0.0.1:8000/consistency/sweep/remote-all -H "Content-Type: application/json" -d '{"max_seconds":300,"source":"local-timer"}'
StandardOutput=journal
StandardError=journal

View File

@@ -0,0 +1,11 @@
[Unit]
Description=State Hub consistency sync — periodic repo sync (every 15 min)
Requires=custodian-sync.service
[Timer]
OnBootSec=5min
OnUnitActiveSec=15min
Unit=custodian-sync.service
[Install]
WantedBy=timers.target