fix: preserve stale task identity history
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a053ff-1d6f-7fe2-ac1c-a6eb40a42a0c
This commit is contained in:
parent
ddce470944
commit
a32112e5ab
4 changed files with 65 additions and 44 deletions
|
|
@ -378,24 +378,28 @@ canonical task identities, so T02 remains `progress`.
|
|||
|
||||
**Duplicate identity disposition (2026-08-31).** A fresh primary audit found
|
||||
131 duplicate task `record_id` groups across 274 rows. The global count is not
|
||||
the reset safety boundary: 104 groups have exactly one current projection
|
||||
claimant plus retired history, and 15 exist only under retired workplans. Those
|
||||
rows are retained as history and do not compete with the matched current
|
||||
workplan.
|
||||
the reset safety boundary: all 131 cross workplan boundaries, while none repeats
|
||||
inside one workplan. A task has no projection-retirement field, so workplan slug
|
||||
tombstones are only a diagnostic clue; current task membership is whether the
|
||||
Forge still derives that id for that owning workplan.
|
||||
|
||||
The remaining 12 groups are two duplicated finished workplan projections:
|
||||
The 12 groups with multiple untombstoned owning workplan slugs come from two
|
||||
earlier wrong workplan/backing-file projections:
|
||||
`CUST-WP-0010b-T01..T02` and `SECRETS-WP-0002-T01..T10`. They must be resolved
|
||||
by retiring the displaced workplan projection, not by deleting or re-keying its
|
||||
tasks. Evidence:
|
||||
by reconciling the owning workplans while preserving their completed historical
|
||||
task rows, not by deleting or re-keying those rows. Live exact-commit reconciles
|
||||
did that with zero creates, retirements, cancellations, or refusals. Evidence:
|
||||
`docs/evidence/STATE-WP-0083-task-identity-audit-2026-08-31.json`.
|
||||
|
||||
The diff now reports an explicit `ambiguous` class instead of silently choosing
|
||||
the last row in a dictionary. Reset refuses duplicate identities declared by
|
||||
the forge, duplicate identified rows inside the matched current workplan, and
|
||||
any task creation whose canonical id or derived UUID is held by another current
|
||||
workplan. These checks are batched; retired/displaced workplan tasks are outside
|
||||
the current matching set and remain preserved. Live deployment and a clean
|
||||
repository diff remain before T02 can close.
|
||||
any task creation whose derived UUID is held by another current workplan. A
|
||||
repeated human-readable id outside the owning workplan's current desired set is
|
||||
historical evidence, not a competing projection. These checks are batched;
|
||||
retired/displaced workplan tasks remain preserved. The second exact-commit pass
|
||||
for both affected repositories returned `noop` with every count zero. Final
|
||||
deployment of the refined boundary remains before T02 can close.
|
||||
|
||||
|
||||
## Restore a migration mechanism for central
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue