state-hub/workplans/STATE-WP-0090-projection-task-field-convergence.md
tegwick b5920d85e3
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
fix(deploy): size MCP reservation from observed CPU usage
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a07ff8-19d0-7820-b4d0-1353833cb7fc
2026-09-10 15:32:50 +02:00

87 lines
3.8 KiB
Markdown

---
id: STATE-WP-0090
type: workplan
title: "Preserve task descriptions and explicit empty notes in Forge projection"
domain: infotech
repo: state-hub
status: active
owner: codex
topic_slug: infotech
created: "2026-09-10"
updated: "2026-09-10"
related: [STATE-WP-0086, RMGR-WP-0017, HFACT-WP-0001]
state_hub_workstream_id: "894448a6-66ae-5215-b596-0f4a8bc2c509"
---
HFACT-WP-0001-T02 repeatedly repairs six of 24 selected task projections after
normal sync. Forge derivation truncates nested evidence and converts explicit
empty intervention notes into null, disagreeing with file-authoritative deep
consistency. Fix the original parser rather than applying another batch patch.
## Reproduce and correct task-field derivation
```task
id: STATE-WP-0090-T01
status: done
priority: high
state_hub_task_id: "47ecc1ce-ca64-567b-8253-4e2bf72b8aa4"
```
Retain nested task sections, stop at the next peer/ancestor heading or task block,
match source-description cleanup and preserve absent/null/empty metadata meaning.
Keep task identity, status, collision and retirement rules unchanged. Test parity
with the existing consistency parser and real PostgreSQL/API convergence.
## Promote the verified correction and prove the selected chain
```task
id: STATE-WP-0090-T02
status: progress
priority: high
state_hub_task_id: "da0089fc-2c6f-52d7-91e9-83ee338caf2a"
```
Run relevant projection/consistency/API regressions, commit/push, consume the
immutable CI image and prepare the existing Helm release with reused values and
atomic rollback. Verify the exact promoted image and healthy primary, then sync
the three selected repositories using RMGR-WP-0017 and read back all 24 task
fields with zero manual task PATCH repairs. Preserve unrelated untracked evidence.
## Retain evidence and close the bounded defect
```task
id: STATE-WP-0090-T03
status: todo
priority: medium
state_hub_task_id: "ac047cb8-fc56-5a2e-8a82-c5179f8cde8b"
```
Record source/image/Helm revisions, test results and before/after convergence.
HFACT T02 retains other selected-backlog readiness work; native admission and
factory execution remain their existing owner tasks. Do not mark factory G1/G2
complete or introduce another synchronization service.
Validation: all five new parser cases fail on the previous derivation. The
corrected projection/consistency/API suite passes 242 tests on a disposable
PostgreSQL database. Actual selected-source comparison reproduces six drifted
tasks before the fix and zero afterward across 24 tasks. No production data
was used by the tests; live promotion and readback remain T02.
Promotion prepared: Forge commit 0747b4d95b3d30a12c41de673912659e8fdd1654
passed CI. Immutable image main-0747b4d has registry digest
sha256:78828c9e85848538878a27d2e3e6bebfd0cc7192c0961c92c749b27acca7b6f5.
Offline container verification matches the tested parser source and passes nested
section/empty-note cases. Server-side Helm preview permits only image, version
labels and their rendered checksum; configuration and credential references are
unchanged, and there are no migration changes. Previous Helm revision: 60.
Rollout revision 61 could not schedule the API surge pod: the 4,000m node had
3,935m requested, leaving 65m against the required 100m. Atomic rollback restored
healthy old-image services at revision 62. Available Prometheus history contains
1,078 five-minute samples within the seven-day query window (partial coverage):
MCP p99 2.35m, peak 30.45m. The reviewed retry lowers only the MCP CPU request
from 50m to 10m, preserving one replica, its 500m CPU limit and memory settings.
This reduces its guaranteed share under contention; bursts remain permitted.
Nominal headroom becomes 105m, sufficient for this 100m API surge but too narrow
to count as factory capacity admission. Broader capacity planning needs a live
residual before closeout. No unrelated workload allocation is changed.