state-hub/workplans/STATE-WP-0073-legacy-meter-decline-and-remote-audit.md
tegwick 7036e2aa6b
Some checks failed
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Has been cancelled
Build and Publish Multi-Context Image / build-and-push (push) Successful in 2m18s
feat(api): retire phase-1/2 /workstreams REST aliases with 410 stranglers
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.
2026-07-10 13:31:57 +02:00

166 lines
No EOL
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 (23× 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.