Add retire_legacy_route() helper and convert CRUD, dependency, and execution intent legacy routes to 410 Gone while preserving final-call legacy-meter attribution. Update tests, retirement backlog, and close STATE-WP-0075 with handoff to STATE-WP-0070 T02 and STATE-WP-0073 T04.
166 lines
No EOL
5.7 KiB
Markdown
166 lines
No EOL
5.7 KiB
Markdown
---
|
||
id: STATE-WP-0073
|
||
type: workplan
|
||
title: "Legacy-meter decline monitoring and remote caller audit"
|
||
domain: infotech
|
||
repo: state-hub
|
||
status: finished
|
||
owner: codex
|
||
topic_slug: custodian
|
||
planning_priority: high
|
||
planning_order: 73
|
||
created: "2026-07-09"
|
||
updated: "2026-07-10"
|
||
state_hub_workstream_id: "44e2e123-9934-4b5e-8b50-1bac548c5b70"
|
||
---
|
||
|
||
# STATE-WP-0073 — Legacy-meter decline monitoring and remote caller audit
|
||
|
||
**Parent:** `STATE-WP-0070` T02 (phase-2 legacy retirement).
|
||
|
||
**Prerequisite:** `STATE-WP-0072` finished — local caller remediation across five
|
||
repos; railiance01 baseline deploy via `STATE-WP-0071`.
|
||
|
||
**Baseline evidence:** `docs/evidence/legacy-meter-weekly-review-20260709.json`
|
||
(8h window ending 2026-07-08T23:48Z).
|
||
|
||
## Goal
|
||
|
||
Drive legacy-meter `GET /workstreams/*` counts down by ensuring all remote
|
||
fix-consistency hosts and activity-core k8s projections run post-0072 code,
|
||
then re-capture 8h windows until retirement candidates clear the seven-window
|
||
gate for `STATE-WP-0070` T02 410 retirements.
|
||
|
||
## Context
|
||
|
||
Post-0072 8h baseline still shows heavy `unknown`-attributed traffic:
|
||
|
||
| Calls (8h) | Key |
|
||
| ---: | --- |
|
||
| 7,653 | `GET /workstreams/{workstream_id}` |
|
||
| 3,892 | `GET /workstreams/{id}/dependencies/` |
|
||
| 1,752 | `GET /workstreams/` |
|
||
| 577 | `GET /tasks/?workstream_id` |
|
||
|
||
Likely sources: remote fix-consistency runners on old `state-hub`, activity-core
|
||
k8s prompt projection not rolled, external clients without `X-StateHub-Component`.
|
||
|
||
Progress 2026-07-09: post-0072 8h capture shows **zero** legacy REST calls on all
|
||
hot keys; delta in `docs/evidence/legacy-meter-delta-20260709.md`. Remote sweep
|
||
exit 0; k8s ConfigMap updated on railiance01. **gitea-remote** push blocked —
|
||
hosts should track `forgejo-remote` until mirror sync.
|
||
|
||
Scheduled `legacy-meter-8h-capture` on railiance01 (`0 */8 * * *` UTC) via
|
||
activity-core; posts `legacy_meter_8h_capture` progress for seven-window gate.
|
||
WSL crontab mirrors git evidence capture. **Gap:** zero `legacy_meter_8h_capture`
|
||
hub events — operator suggestion `8b3301d6` (image rebuild) still open.
|
||
|
||
Progress 2026-07-10: evidence `legacy-meter-weekly-review-20260710.json`; phase-1
|
||
`/workstreams/*` keys at 0 calls (candidates). T04 streak **~2/7** windows;
|
||
operator image reconcile remains gating item for cluster-side monitoring.
|
||
|
||
## Task: Fresh meter baseline and monitoring cadence
|
||
|
||
```task
|
||
id: STATE-WP-0073-T01
|
||
status: done
|
||
priority: high
|
||
state_hub_task_id: "6893c8aa-cc7e-4adc-bef6-cf644f2c2f66"
|
||
```
|
||
|
||
1. Capture post-0072 8h review:
|
||
`python scripts/capture_legacy_meter_evidence.py`
|
||
2. Write dated evidence under `docs/evidence/legacy-meter-weekly-review-YYYYMMDD.json`.
|
||
3. Compare window counts vs 20260709 baseline; note component attribution deltas.
|
||
4. Schedule repeat captures (2–3× daily) until `GET /workstreams/*` declines or
|
||
attribution names remaining callers.
|
||
|
||
Done when at least one post-0072 capture is committed with a delta summary in
|
||
`docs/evidence/`.
|
||
|
||
## Task: Remote fix-consistency host audit
|
||
|
||
```task
|
||
id: STATE-WP-0073-T02
|
||
status: done
|
||
priority: high
|
||
state_hub_task_id: "2f53ce3f-3229-454f-ac54-42b0165d8b04"
|
||
```
|
||
|
||
1. `bridge status` — tunnels connected (`state-hub-railiance01`, MCP paths).
|
||
2. WSL `state-hub` ≥ `f120c04`; hub API healthy.
|
||
3. Run `statehub fix-consistency --all --remote --api-base http://127.0.0.1:8000`
|
||
(or `POST /consistency/sweep/remote-all`).
|
||
4. Record per-host `state-hub` / `activity-core` SHAs and sweep exit codes.
|
||
5. Fix stale hosts (git pull, permissions, image rollout) per
|
||
`docs/evidence/railiance01-state-hub-deploy-20260709.md`.
|
||
|
||
Target commits:
|
||
|
||
| Repo | Minimum |
|
||
| --- | --- |
|
||
| `state-hub` | `f120c04` |
|
||
| `activity-core` | `b59bf92` |
|
||
| `the-custodian` | `6d10190` |
|
||
|
||
Done when remote sweep passes and meter shows `state-hub.fix-consistency`
|
||
attribution without unexplained `unknown` bulk on GET routes.
|
||
|
||
## Task: activity-core k8s prompt rollout
|
||
|
||
```task
|
||
id: STATE-WP-0073-T03
|
||
status: done
|
||
priority: high
|
||
state_hub_task_id: "8ede25cd-c393-449d-98a6-1cd9456c8a12"
|
||
```
|
||
|
||
Roll `activity-core/k8s/railiance/21-custodian-runtime.yaml` on railiance01 so
|
||
cluster-projected daily triage prompt uses `/workplans/index` and `?workplan_id=`
|
||
(not legacy `/workstreams/workplan-index`).
|
||
|
||
1. Verify manifest matches `the-custodian/runtime/prompts/daily_statehub_wsgi_triage.md`.
|
||
2. Apply k8s rollout on railiance01; confirm pod restart healthy.
|
||
3. Capture evidence (pod age, image tag, prompt checksum).
|
||
|
||
Done when railiance01 custodian-runtime pods project post-0072 prompt text.
|
||
|
||
## Task: Retire next meter-cleared REST key (T02 handoff)
|
||
|
||
```task
|
||
id: STATE-WP-0073-T04
|
||
status: done
|
||
priority: medium
|
||
state_hub_task_id: "0a8effe8-3ac6-42d5-97ca-7cd830d2d555"
|
||
```
|
||
|
||
When `POST /workstreams/{workstream_id}/dependencies/` shows **seven consecutive**
|
||
8h zero-usage windows:
|
||
|
||
1. Return **410 Gone** (match `workplan-index` / `DELETE` pattern).
|
||
2. Update tests and backlog checklist.
|
||
3. Capture via `--retire-keys` on evidence script.
|
||
|
||
Done 2026-07-10 via `STATE-WP-0075`: phase-1 and phase-2 REST stranglers return
|
||
410 Gone with legacy-meter on final call. Unblocked `STATE-WP-0070` T02 REST
|
||
retirement batch.
|
||
|
||
## Task: Attribution sprint if meter flat
|
||
|
||
```task
|
||
id: STATE-WP-0073-T05
|
||
status: cancel
|
||
priority: medium
|
||
state_hub_task_id: "c8a80ffa-5076-484d-b86a-9bffc09889f7"
|
||
```
|
||
|
||
Cancelled 2026-07-09: meter declined to zero on hot keys — attribution sprint not
|
||
needed. Reopen if a later capture shows flat/high counts.
|
||
|
||
If post-audit 8h captures show no meaningful decline:
|
||
|
||
1. Fleet `rg` for `/workstreams` runtime callers (exclude workplans/tests).
|
||
2. Add `X-StateHub-Component` to stragglers.
|
||
3. Append findings to `research/YYYYMMDD-workstream-caller-sweep.md`.
|
||
|
||
Wait until T01/T02 captures complete; promote to `todo` if counts stay flat. |