For STATE-WP-0094-T05: runner revision, active definition, per-repo Forge commit, projection sync proxy, queued receipts and freshness window, with explicit gaps and coverage holes. No writes to hub, cluster or Forge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 671493@bnt-lap001 Assistant-Session: 60d7b11f-78f9-4731-9367-918511b2762d
4.2 KiB
Freshness coverage measurement — 2026-10-04
For STATE-WP-0094-T05 (freshness-coverage half). Raw data:
docs/evidence/2026-10-04-freshness-coverage.json, produced read-only by
uv run python -m repo_manager.freshness --out <file> at 2026-10-04T10:40Z.
Sources: State Hub REST (GET only) on the primary (instance_role=primary,
railiance01, schema a0b1c2d3e4f5); git ls-remote against Forge;
kubectl get (read-only); statehub outbox status. No workstation checkout
was read (ADR-002). There were no writes to the hub, cluster, Forge or any checkout.
Required fields and what the sources supply
| T05 field | Result | Source / gap |
|---|---|---|
| Exact runner revision | No scheduled C-rule runner exists. Engine source HEAD a8184d5e14fb (repo-manager, not deployed: no repo-manager Deployment in the cluster). Adapter image state-hub:main-5dd3df9; scheduler image activity-core@sha256:75e240ac… |
kubectl, git |
| Active definition | None active. Only C-rule definition live in activity-core/actcore-external-activity-definitions: state-hub-consistency-sweep.md (id 7c4e9a12-…, v1.1, enabled: false, status: paused, */15), paused by RMGR-WP-0005-T11. It is also the legacy --all --remote sweep path, which ADR-002 excludes |
kubectl |
| Per-repository source commit | 141/141 active repositories resolved a Forge HEAD | git ls-remote |
| Last successful receipt | Gap. The hub does not persist projection receipts or expected/derived commits; rmgr sync returns the receipt only to its caller. Proxy: newest backing_synced_at per repository snapshot. This proxy shows that a sync happened. It does not show that the projection equals Forge HEAD |
hub snapshot |
| Failed / queued receipts | Queued: edge outbox 0 pending / 0 conflict. Failed: gap. No sync/projection kinds in the mutation meter (1305 entries). /ops-runs/summary is unavailable (ACTIVITY_CORE_URL is not configured) |
statehub outbox, hub |
| Measured freshness window | See below. The window is observed, not an SLA, because no schedule drives it | hub snapshot |
Coverage numbers (active repositories = 141 of 146)
- Projection sync timestamp present: 136; absent: 5
- Synced within 24 h: 35 (25 %); within 7 d: 120 (85 %); within 30 d: 124
- Age of last projection sync (hours): min 0.2, median 109.2, p90 292.1, max 949.4 (~39.5 d)
- Task dependency rows projected: 524. They were not reconciled by normal receiving; see the State Hub T05 note.
Explicit coverage holes
Measured now:
access-engine: snapshot request timed out, so its freshness is unknown.clay-borg,pr-hall-of-helix,python-snake: 0 projected workplans and no sync stamp.repo-seed: 2 workplans, nobacking_synced_at.- Older than 7 days (16):
railiance-forge,ralph-workplan,rapp-issue-core,rapp-sbom-nexus,repo-scoping,shard-wiki,target-revenue,tele-mcp,testdrive-jsui,timeline-svg(all ~949 h);tmux-amq(940 h);whynot-design(862 h);rapp-canned-prompts(625 h);rein-openweights,resource-control(292 h);railiance-enablement(243 h). - All 141: projected commit is unknown, so Forge HEAD equality cannot be proven for any repository.
Historical registrar failures (kept as holes, not counted as covered):
- RMGR-WP-0005-T11: legacy sweep paused because railiance01 checkouts targeted
the stale
gitea-remotelineage. Nothing since has proved coverage for the repositories that sweep touched. - RMGR-WP-0005 rail-kubernetes (2026-08-22): wrapper reported
failedbefore file writeback. It was fixed inc90f701, but there is no later scheduled receipt. - RMGR-WP-0019-T03 (wait): Activity receiving refused three empty duplicate
projections; disposition is pending under STATE-WP-0095-T04 (decision
91b7c633-…). - RMGR-WP-0014/0015: unknown aliases, same-parent UUID collisions and active unbound invalid records still refuse before writes. Any repository that hits these is unsynchronised by design.
Conclusion
No supported freshness schedule exists. The T05 freshness requirement is not met. Freshness depends on ad hoc syncs (25 % of repositories within 24 h), and receipts are not durable. Proposal: RMGR-WP-0020 (bounded Activity Core → Repo Manager runner). It is not enabled.