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
60 lines
4.2 KiB
Markdown
60 lines
4.2 KiB
Markdown
# 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:
|
|
|
|
1. `access-engine`: snapshot request timed out, so its freshness is unknown.
|
|
2. `clay-borg`, `pr-hall-of-helix`, `python-snake`: 0 projected workplans and no sync stamp.
|
|
3. `repo-seed`: 2 workplans, no `backing_synced_at`.
|
|
4. 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).
|
|
5. 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):
|
|
|
|
6. RMGR-WP-0005-T11: legacy sweep paused because railiance01 checkouts targeted
|
|
the stale `gitea-remote` lineage. Nothing since has proved coverage for the repositories that sweep touched.
|
|
7. RMGR-WP-0005 rail-kubernetes (2026-08-22): wrapper reported `failed` before
|
|
file writeback. It was fixed in `c90f701`, but there is no later scheduled receipt.
|
|
8. RMGR-WP-0019-T03 (wait): Activity receiving refused three empty duplicate
|
|
projections; disposition is pending under STATE-WP-0095-T04 (decision `91b7c633-…`).
|
|
9. 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.
|