main · last commit
13 days ago ·
7g0stsfu
ah-if2 lineage audit: nothing reconciles board reality against task_parents
Lined Up
bd update ah-if2 --claim
bd close ah-if2
| Created by | Eugene Blikh |
| Owner | bigbes@gmail.com |
| Created | 2026-08-05T00:23:51Z |
| Updated | 2026-08-05T00:23:51Z |
Found while fixing ah-1cx.11, which hardened the WRITE path (a lost RecordChild now holds the card and retries) but left the read side unverified. task_parents is the only source of truth for the Blocked join, and nothing checks it against the board. Two states remain undetectable: a child card created by hand (or by an older binary) that has no lineage row, and a lineage row whose card was deleted from the board. The first makes a parent under-wait; the second makes it wait forever on a card that no longer exists. A periodic audit — walk task_parents against a board Snapshot, report rows whose card is gone and cards whose parent link is missing — would close it. Note ah-wd4.1 established that a Snapshot must REFUSE rather than return a partial board, so the audit inherits that: it must not treat a truncated snapshot as 'these cards were deleted'.
A lineage row whose card no longer exists, and a blocked parent waiting on one, are both surfaced to the operator rather than deadlocking silently. The audit refuses to act on an incomplete board snapshot.
No outgoing dependencies.
Nothing depends on this issue.
| id | ah-if2 |
| content_hash | 9dbdbfcc7481c7210050335db098dfe5f8d0ee450186dfc71ee812a982e97d3c |
| title | lineage audit: nothing reconciles board reality against task_parents |
| description | Found while fixing ah-1cx.11, which hardened the WRITE path (a lost RecordChild now holds the card and retries) but left the read side unverified. task_parents is the only source of truth for the Blocked join, and nothing checks it against the board. Two states remain undetectable: a child card created by hand (or by an older binary) that has no lineage row, and a lineage row whose card was deleted from the board. The first makes a parent under-wait; the second makes it wait forever on a card that no longer exists. A periodic audit — walk task_parents against a board Snapshot, report rows whose card is gone and cards whose parent link is missing — would close it. Note ah-wd4.1 established that a Snapshot must REFUSE rather than return a partial board, so the audit inherits that: it must not treat a truncated snapshot as 'these cards were deleted'. |
| design | |
| acceptance_criteria | A lineage row whose card no longer exists, and a blocked parent waiting on one, are both surfaced to the operator rather than deadlocking silently. The audit refuses to act on an incomplete board snapshot. |
| notes | |
| status | open |
| priority | 4 |
| issue_type | feature |
| assignee | NULL |
| estimated_minutes | NULL |
| created_at | 2026-08-05T00:23:51Z |
| created_by | Eugene Blikh |
| owner | bigbes@gmail.com |
| updated_at | 2026-08-05T00:23:51Z |
| closed_at | NULL |
| closed_by_session | |
| external_ref | NULL |
| spec_id | |
| compaction_level | 0 |
| compacted_at | NULL |
| compacted_at_commit | NULL |
| original_size | NULL |
| sender | |
| ephemeral | 0 |
| wisp_type | |
| pinned | 0 |
| is_template | 0 |
| mol_type | |
| work_type | |
| source_system | |
| metadata | �{} |
| source_repo | |
| close_reason | |
| event_kind | |
| actor | |
| target | |
| payload | |
| await_type | |
| await_id | |
| timeout_ns | 0 |
| waiters | |
| hook_bead | |
| role_bead | |
| agent_state | |
| last_activity | NULL |
| role_type | |
| rig | |
| due_at | NULL |
| defer_until | NULL |
| no_history | 0 |
| started_at | NULL |
| is_blocked | 0 |
| issue_id | ah-if2 |
| label | milestone:v0.2.0 |
| id | 019fcf4e-1e3e-7a4c-8a90-61b99ba9a1aa |
| issue_id | ah-if2 |
| event_type | created |
| actor | Eugene Blikh |
| old_value | |
| new_value | |
| comment | NULL |
| created_at | 2026-08-05T03:23:51Z |
| id | 019fcf4e-4e70-7e48-81c2-cf1337f2b9e1 |
| issue_id | ah-if2 |
| event_type | label_added |
| actor | Eugene Blikh |
| old_value | NULL |
| new_value | NULL |
| comment | Added label: milestone:v0.2.0 |
| created_at | 2026-08-05T03:24:03Z |
No comments.