Parent: #381
Goal
Make the Dispatch UI render lanes from configuration instead of assuming a fixed set of built-in lane names.
Current problem
The app should support installs with one claimable lane, the current default lanes, or more than two claimable lanes. UI filters, labels, counts, and lane selectors need to be generated from the configured lane set.
Requirements
- Render lane filters/selectors from configured lanes.
- Show readable lane titles from config.
- Support at least:
- one claimable lane plus backlog
- current default lanes
- three claimable lanes plus backlog
- Keep status columns separate from lanes.
- Keep non-claimable lanes visually distinct where relevant.
- Avoid hardcoded copy that assumes only
normal and escalated lanes.
- Preserve current UI behavior under the default config.
Areas to inspect
- board/list pages
- issue cards
- queue views
- lane filter dropdowns/tabs
- counts grouped by lane
- API response types consumed by UI
- empty-state copy
Non-goals
- Do not change external workflow repos.
- Do not change issue status columns.
- Do not add lane management UI unless it is necessary; static config is acceptable for this phase.
Acceptance criteria
- UI renders current default lanes exactly as before when default config is active.
- UI works with a single claimable lane config.
- UI works with a three-claimable-lane config.
- No visible copy assumes there are exactly two claimable lanes.
- Tests or component coverage verify lane rendering from config.
Validation
npm run lint
npm run typecheck
npm run test
npm run build
Parent: #381
Goal
Make the Dispatch UI render lanes from configuration instead of assuming a fixed set of built-in lane names.
Current problem
The app should support installs with one claimable lane, the current default lanes, or more than two claimable lanes. UI filters, labels, counts, and lane selectors need to be generated from the configured lane set.
Requirements
normalandescalatedlanes.Areas to inspect
Non-goals
Acceptance criteria
Validation
npm run lintnpm run typechecknpm run testnpm run build