30c941cc5b
Keep action order while preventing disabled or busy actions from emitting a command. Preserve test evidence; status remains IN_PROGRESS pending predecessor acceptance.
27 lines
1.3 KiB
Markdown
27 lines
1.3 KiB
Markdown
# 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.
|