--- id: STATE-WP-ADHOC-2026-10-06 type: workplan title: "Ad hoc fixes — 2026-10-06" domain: infotech repo: state-hub status: finished owner: claude-code topic_slug: state-hub created: "2026-10-06" updated: "2026-10-06" state_hub_workstream_id: "b73dbcde-1e01-5ed0-a8ed-9f3feac1f15b" --- ## Stop historical split views from writing their parent's status ```task id: STATE-WP-ADHOC-2026-10-06-T01 status: done priority: medium state_hub_task_id: "09274552-5e91-5b2c-93bb-797704d52761" ``` Activity's custodian-WP-0003a/b/c split views carry the archived parent's UUID `b4eb45a9-69e3-4ab0-b00c-67a53c3117c5`. C-04 ran per file, so each `fix-consistency` run set the shared row to whichever file it processed last. On 2026-10-06 it flipped `finished` → `archived` → `finished`. The parent file says `archived`; the views say `done`. C-04 and the frontmatter C-20 now skip bound historical views (`historical_view_paths` from `historical_projection` BINDINGS), so only the parent file supplies the row. This matches Forge receiving, which takes the row from the parent only and gives historical workplans no edges. A direct `consistency_check.py --repo activity-core --fix` set the parent back to `archived`, and a re-run reports nothing to fix. UUIDs and tasks were untouched. Unblocks RMGR-WP-0019-T03 (see STATE-WP-0095). ## Reject over-long blocked_on with a 422 instead of a 500 ```task id: STATE-WP-ADHOC-2026-10-06-T02 status: done priority: low state_hub_task_id: "46401155-5d96-5d4f-87d4-3f4bacb36e73" ``` `tasks.blocked_on` is `String(200)`, but `TaskCreate`/`TaskUpdate` accepted any length, so a longer value failed in Postgres and returned HTTP 500 (hit by Repo Manager's C-41 sync of RMGR-WP-0019-T03). The schemas now cap it at 200 and return a 422 that names the field; long text belongs in `blocking_reason` (Text). Live after the next State Hub deploy. ## Map file decision_type values onto the hub's made/pending ```task id: STATE-WP-ADHOC-2026-10-06-T03 status: done priority: low state_hub_task_id: "9b21161e-b82f-5357-8f39-03eabaad6311" ``` C-32 sent a file's `decision_type` verbatim; repo-manager's RMGR-DEC-2026-004 says `approved`, which the hub rejects with a 422, so that decision was never indexed. `normalise_decision_type` maps resolved records and decided synonyms to `made`, and everything else to `pending`.