Skip to content

fix: inherit blocked status through parent hierarchy (Refs: beans-8mhc)#93

Open
teal-bauer wants to merge 1 commit intohmans:mainfrom
teal-bauer:fix/blocked-inherit-parent
Open

fix: inherit blocked status through parent hierarchy (Refs: beans-8mhc)#93
teal-bauer wants to merge 1 commit intohmans:mainfrom
teal-bauer:fix/blocked-inherit-parent

Conversation

@teal-bauer
Copy link
Contributor

Summary

Approach 1 for #92: children inherit their parent's blocked status.

  • FindActiveBlockers now walks up the parent chain after checking direct blockers
  • If any ancestor has active blockers, they're included in the result
  • IsBlocked returns true transitively — no API changes needed
  • Cycle-safe (visited set + depth cap)

Simple and opinionated: if your parent is blocked, you're blocked.

Trade-offs

  • Can't prep child tasks while a parent epic is blocked at the epic level
  • No way to distinguish "directly blocked" from "blocked via ancestor"

See #92 for design discussion and the alternative approach in #94.

Test plan

  • go test ./... passes
  • Child of blocked parent → blocked
  • Grandchild of blocked grandparent → blocked
  • Child of unblocked parent → not blocked
  • Resolved parent blocker → not blocked
  • Child with own blocker + blocked parent → both blockers returned

Children of blocked parents now show as blocked too.
FindActiveBlockers walks up the parent chain and includes
ancestor blockers in the result.

Refs: beans-8mhc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant