feat(web/beads): hierarchy in the milestone view Arrange each milestone as a shallow hierarchy instead of a flat list. - Put the milestone-typed issue(s) on top as the milestone's heads. - Nest tasks under their epics via parent-child dependency edges, with a done/total rollup on the epic row; membership stays label-based. - Keep remaining members as a loose tail; blocks edges are ignored. - Read the dependencies table optionally, degrading to a flat list. - Extend fixtures and real-data logging to cover the hierarchy.
feat(web/beads): promote milestones to their own view/tab Move the milestone rollup off the board and into a dedicated "Milestones" tab (a registered View, companion to Beads via the same fingerprint). The tab is richer than the old board panel: per-milestone progress bar, done/open/in-progress counts, and the issue list under each milestone (open-work first, closed struck through), each linking to its beads detail. Issues with no milestone label are summarized in a footnote. A beads DB with no milestone labels still gets the tab, showing an empty-state hint. Removes the board's inline milestone panel and the collectMilestones/BeadMilestone helpers it used; the grouping now lives in the milestones view.