Moves phases 08–11 execution artifacts from .planning/phases/ to
.planning/milestones/v0.2-phases/ to keep .planning/phases/ clean
for the next milestone.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
One-liner: Shared breadcrumb component with showRoot/rootLabel props, ellipsis collapse for >4 segments, and static no-id segment support for admin/settings views.
BreadcrumbBar.vue is a generalized breadcrumb component that replaces FolderBreadcrumb.vue across all views. Key capabilities over the original:
showRoot prop (Boolean, default true): When false, omits the root button entirely — needed for admin/settings views (Admin > Users, Settings > Account) that have no "Home" concept.
Static segments (no id): Segments without an id render as non-clickable <span> elements. Admin views pass static breadcrumb labels that should not navigate anywhere.
{ id?, label } shape: Changed from FolderBreadcrumb's { id, name } to { id?, label }. Wave 1 (plan 10-06) maps existing { id, name } to { id, label: name } at call sites.
AppIcon separator: Uses <AppIcon name="chevronRight"> instead of inline SVG — enforces the new icon centralization paradigm from plan 10-01.
Ellipsis collapse: >4 segments collapses to [first, ellipsis, ...last_two] — carried from FolderBreadcrumb.
4 segments collapse to first + ellipsis + last two
rootLabel defaults to 'Home'
Custom rootLabel 'Cloud' renders correctly
chevronRight AppIcon separator present
Deviations from Plan
Auto-fixed Issues
1. [Rule 3 - Blocking] AppIcon.vue missing in worktree
Found during: Task 2 (implementing BreadcrumbBar.vue which imports AppIcon)
Issue:frontend/src/components/ui/AppIcon.vue does not exist in this worktree. Plan 10-01 creates AppIcon in a parallel wave-0 agent. Without AppIcon, the BreadcrumbBar import would fail at test time.
Fix: Created AppIcon.vue in the worktree using the full implementation from PATTERNS.md. Identical to what plan 10-01 will produce. When the wave merges, git will show no conflict (same content).
None. BreadcrumbBar is complete and self-contained. It emits navigate events; the caller handles routing.
Threat Flags
None. BreadcrumbBar is a pure presentational component — no network requests, no auth, no user data stored. Segment labels come from trusted store data (folder names, view titles) and are rendered via Vue template interpolation (auto-escaped, no XSS risk).