# AEG-V16-019 — CommandBar ## Scope - **WBS / Requirement / UI / Test:** AEG-V16-019 / REQ-V16-FEC-03 / UI-V16-FEC-03 / T-V16-FEC-03 - **Classification:** shared FE component vertical slice; no API, policy, data, or provider contract change. ## Source / Assumption / Unknown / Decision Required - **Source:** WBS Master, `KsCommandBar.vue`, `KsButton.vue`, and v4 native/Prime button adapters. - **Assumption:** callers own command idempotency keys; this component prevents a local disabled/busy click from becoming a second UI event but cannot replace server-side idempotency. - **Unknown:** predecessor AEG-V16-018 remains pending formal UX/a11y acceptance evidence. - **Decision Required:** no new action ordering policy is introduced. Callers supply the approved action array order. ## Acceptance mapping | Acceptance requirement | Implementation evidence | | --- | --- | | action order | the component renders the supplied readonly array in order. | | disabled/busy | execution is blocked in the command boundary for either state; busy is exposed to assistive technology. | | reproducibility | unit test covers order, event emission, disabled, and busy paths. | ## Execution evidence — 2026-08-08 - `frontend: pnpm typecheck`: passed. - `frontend: pnpm test -- --run src/shared/ui/components/tests/KsCommandBar.spec.ts`: 1 file / 1 test passed.