Skip to content

Render all sub-issues when parent hierarchy issue is closed #278

@miroslavpojer

Description

@miroslavpojer

Feature Description

When a HierarchyIssueRecord parent is closed, render all of its sub-issues in to_chapter_row() — including open ones — so the release notes reflect the full scope of the completed feature. Today, only sub-issues that are closed and have a change increment are rendered regardless of parent state.

Problem / Opportunity

A feature may be "Silent Live" (open) across release N, with some Tasks still open when release N+1 ships and closes the parent. The current behaviour silently drops those still-open Tasks from the "New Features" output, giving an incomplete picture of the feature's scope. Release managers and consumers cannot reconcile what was delivered vs. what was in the spec without manually cross-referencing the issue tracker.

Acceptance Criteria

  1. Closed parent with one closed sub-issue and one open sub-issue (no change increment) → both appear in to_chapter_row() output.
  2. Open parent with one closed sub-issue (has PR) and one open sub-issue → only the closed sub-issue appears (no regression on existing behaviour).

Proposed Solution

In to_chapter_row() on HierarchyIssueRecord, replace the unconditional open/change-increment guard with a parent-state-aware check:

if self.is_open:
    if sub_issue.is_open:
        continue
    if not sub_issue.contains_change_increment():
        continue
# Closed parent: render all sub-issues regardless of state or change increment

Apply the same logic to sub_hierarchy_issues iteration. No data-layer changes needed — mine_missing_sub_issues() already fetches all sub-issues regardless of tag range. Files: hierarchy_issue_record.py, issue_hierarchy_support.md, tests/unit/.../test_hierarchy_issue_record.py.

Dependencies / Related

  • Depends on catch-open-hierarchy feature.
  • {progress} token feature is the natural companion — the two features together complete the Silent Live → close lifecycle.

Additional Context

No response

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions