source: repo-manager reason: deterministic projection registration Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a1346b-72a4-7d40-b8bd-8b8ca346cfa2
63 lines
2.3 KiB
Markdown
63 lines
2.3 KiB
Markdown
---
|
|
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`.
|