# KBX Release Impact

- Baseline: v21
- Contract version: 1.22.0
- Declared level: major
- Required level: major
- Compatible: YES

## Tracked contract changes

- **minor** component added: `KbxFormGrid`
- **minor** component added: `KbxFormSpan`
- **minor** component added: `KbxRecordLifecycle`
- **minor** component added: `KbxCheckbox`
- **minor** component added: `KbxRadio`
- **minor** component added: `KbxTextarea`
- **minor** component added: `KbxTabs`
- **minor** component added: `KbxBadge`
- **minor** component added: `KbxTooltip`
- **minor** component added: `KbxBarcodeField`
- **minor** component added: `KbxSectionHeader`
- **minor** component added: `KbxQuickFilterBar`
- **minor** component added: `KbxDataState`
- **minor** component added: `KbxTemplateStateBoundary`
- **minor** component added: `KbxSummaryBar`
- **minor** component added: `KbxHomePage`
- **minor** component added: `KbxAccessDenied`
- **minor** component added: `KbxRouteNotFound`
- **minor** component added: `KbxTemplateContextBar`
- **minor** component added: `KbxProgressSteps`
- **minor** component version: `KbxTextField` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxDateField` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxLookup` ("1.0.0" → "1.3.0")
- **minor** component version: `KbxLookupDialog` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxSearchPanel` ("1.0.0" → "1.3.0")
- **minor** component version: `KbxCommandBar` ("1.0.0" → "1.3.0")
- **minor** component version: `KbxDataGrid` ("1.0.0" → "1.4.0")
- **minor** component version: `KbxFormSection` ("1.0.0" → "1.1.0")
- **patch** component version: `KbxValidationSummary` ("1.0.0" → "1.0.1")
- **minor** component version: `KbxListPage` ("1.0.0" → "1.6.0")
- **minor** component version: `KbxTransactionPage` ("1.0.0" → "1.6.0")
- **minor** component version: `KbxMasterPage` ("1.0.0" → "1.6.0")
- **minor** component version: `KbxMasterDetailPage` ("1.0.0" → "1.6.0")
- **minor** component version: `KbxWmsMobilePage` ("1.0.0" → "1.5.0")
- **minor** component version: `KbxBarcodeCapture` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxWmsActionButton` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxExcelImport` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxImportPage` ("1.0.0" → "1.4.0")
- **patch** component version: `KbxExceptionSummary` ("1.0.0" → "1.0.1")
- **minor** component version: `KbxExceptionDetailDrawer` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxWorkQueuePage` ("1.0.0" → "1.4.0")
- **minor** component version: `KbxReconcilePage` ("1.0.0" → "1.5.0")
- **minor** component version: `KbxUtilityRail` ("1.0.0" → "1.2.0")
- **minor** component version: `KbxAiAssistant` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxWorkflowBar` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxGlobalHeader` ("1.0.0" → "1.3.0")
- **minor** component version: `KbxSideNavigation` ("1.0.0" → "1.3.0")
- **minor** component version: `KbxWorkspaceTabs` ("1.0.0" → "1.2.0")
- **minor** component version: `KbxMenuSearch` ("1.0.0" → "1.3.0")
- **minor** component version: `KbxApplicationShell` ("1.0.0" → "1.5.0")
- **minor** component version: `KbxInput` ("1.1.0" → "1.2.0")
- **minor** component version: `KbxNumberField` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxMoneyField` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxQuantityField` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxDateRange` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxSelect` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxPageHeader` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxBulkActionBar` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxProposalPanel` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxAiPanel` ("1.0.0" → "1.1.0")
- **minor** component version: `KbxFastEntryPage` ("1.0.0" → "1.7.0")
- **minor** component version: `KbxQueuePage` ("1.0.0" → "1.6.0")
- **minor** screen added: `ERP-PRICE-001`
- **major** screen templateCode: `COMMON-DATA-001` (null → "T01")
- **major** screen templateCode: `COMMON-DS-001` (null → "T01")
- **major** screen templateCode: `COMMON-EXP-001` (null → "T01")
- **major** screen templateCode: `COMMON-OPS-001` (null → "T06")
- **major** screen templateCode: `COMMON-REC-001` (null → "T07")
- **major** screen templateCode: `COMMON-UX-001` (null → "T01")
- **patch** screen version: `ERP-INV-001` ("1.0.0" → "1.1.0")
- **major** screen templateCode: `ERP-INV-001` (null → "T05")
- **major** screen templateCode: `ERP-INV-MOVE-001` (null → "T03")
- **patch** screen version: `ERP-MST-ITEM-001` ("1.0.0" → "1.1.0")
- **major** screen templateCode: `ERP-MST-ITEM-001` (null → "T02")
- **major** screen templateCode: `ERP-PUR-001` (null → "T03")
- **major** screen templateCode: `OMS-CLM-001` (null → "T01")
- **patch** screen version: `OMS-ORD-001` ("1.0.0" → "1.1.0")
- **major** screen templateCode: `OMS-ORD-001` (null → "T01")
- **patch** screen version: `OMS-ORD-002` ("1.1.0" → "1.3.0")
- **major** screen templateCode: `OMS-ORD-002` (null → "T03")
- **major** screen templateCode: `OMS-ORD-003` (null → "T08")
- **major** screen templateCode: `WMS-COUNT-001` (null → "T09")
- **major** screen templateCode: `WMS-PICK-001` (null → "T09")
- **major** screen templateCode: `WMS-PUT-001` (null → "T09")
- **major** screen templateCode: `WMS-REC-001` (null → "T09")
- **major** screen templateCode: `WMS-WORK-001` (null → "T06")
- **minor** screen-recipe added: `T01`
- **minor** screen-recipe added: `T02`
- **minor** screen-recipe added: `T03`
- **minor** screen-recipe added: `T04`
- **minor** screen-recipe added: `T05`
- **minor** screen-recipe added: `T06`
- **minor** screen-recipe added: `T07`
- **minor** screen-recipe added: `T08`
- **minor** screen-recipe added: `T09`
- **minor** token added: `semantic.status.infoSurface`
- **minor** token added: `semantic.status.infoBorder`
- **minor** token added: `semantic.status.successSurface`
- **minor** token added: `semantic.status.successBorder`
- **minor** token added: `semantic.status.warningSurface`
- **minor** token added: `semantic.status.warningBorder`
- **minor** token added: `semantic.status.warningText`
- **minor** token added: `semantic.status.dangerSurface`
- **minor** token added: `semantic.status.dangerBorder`
- **minor** token added: `border.width.default`
- **minor** token added: `border.width.accent`
- **minor** token added: `radius.pill`
- **minor** token added: `component.control.xs`
- **minor** token added: `component.control.sm`
- **minor** token added: `component.control.md`
- **minor** token added: `component.control.lg`
- **minor** token added: `component.form.textareaMinHeight`
- **minor** token added: `component.checkbox.size`
- **minor** token added: `component.checkbox.track`
- **minor** token added: `component.screen.inlinePadding`
- **minor** token added: `component.screen.sectionGap`
- **minor** token added: `component.screen.contentMinHeight`
- **minor** token added: `component.master.listMinWidth`
- **minor** token added: `component.master.listCompactWidth`
- **minor** token added: `component.master.masterWidth`
- **minor** token added: `component.masterDetail.minHeight`
- **minor** token added: `component.masterDetail.bottomMinHeight`
- **minor** token added: `component.masterDetail.masterMinSm`
- **minor** token added: `component.masterDetail.masterMinMd`
- **minor** token added: `component.masterDetail.masterMinLg`
- **minor** token added: `component.navigation.sideWidth`
- **minor** token added: `component.navigation.sideCollapsedWidth`
- **minor** token added: `component.home.maxWidth`
- **minor** token added: `component.home.searchMaxWidth`
- **minor** token added: `component.home.headerMinHeight`
- **minor** token added: `component.home.attentionHeight`
- **minor** token added: `component.home.linkHeight`
- **minor** token added: `component.home.moduleColumn`
- **minor** token added: `component.home.moduleHeaderHeight`
- **minor** token added: `component.tooltip.maxWidth`
- **minor** token added: `component.access.maxWidth`
- **minor** token added: `component.wms.mobileMaxWidth`
- **minor** token added: `component.wms.headerMinHeight`
- **minor** token added: `semantic.state.changedSurface`
- **minor** token added: `semantic.state.changedBorder`
- **minor** token added: `semantic.state.aiSurface`
- **minor** token added: `semantic.state.aiBorder`
- **minor** token added: `semantic.state.aiText`
- **minor** token added: `component.dataState.minHeight`
- **minor** token added: `component.grid.toolbarHeight`
- **minor** token added: `component.grid.minHeight`
- **minor** token added: `component.lookup.codeWidth`
- **minor** token added: `component.lookup.nameMinWidth`
- **minor** token added: `component.lookup.buttonWidth`
- **minor** token added: `component.search.controlMinWidth`
- **minor** token added: `component.search.controlSmWidth`
- **minor** token added: `component.search.controlLgWidth`
- **minor** token added: `component.command.separatorHeight`
- **minor** token added: `component.template.contextMinHeight`
- **minor** token added: `component.progress.stepHeight`
- **minor** token added: `component.progress.stepNumberSize`
- **minor** token added: `component.menuSearch.top`
- **minor** token added: `component.menuSearch.width`
- **minor** token added: `component.menuSearch.resultHeight`
- **minor** token added: `component.application.minHeight`
- **minor** token added: `component.runtime.panelTop`
- **minor** token added: `component.runtime.panelWidth`
- **minor** token added: `component.workspace.tabsHeight`
- **minor** token added: `component.workspace.tabHeight`
- **minor** token added: `component.workspace.tabMaxWidth`
- **minor** token added: `component.workspace.overflowWidth`
- **minor** token added: `semantic.shadow.overlay`
- **minor** token added: `semantic.z.runtimePanel`
- **minor** token added: `component.template.refreshHeight`
- **minor** token added: `component.home.quickStartMinHeight`
- **minor** token added: `component.shell.noticeHeight`
- **minor** token added: `component.home.moduleLabelWidth`
- **minor** token added: `component.utility.panelWidth`
- **minor** token added: `semantic.accessibility.visuallyHiddenSize`
- **minor** token added: `component.form.sectionGap`
- **minor** token added: `component.form.sectionHeadingGap`
- **minor** token added: `component.form.sectionHeadingPadding`
- **minor** token added: `component.form.gridColumnGap`
- **minor** token added: `component.form.gridRowGap`
- **minor** token added: `component.home.workbenchRowHeight`
- **minor** token added: `component.home.sourceLabelWidth`
- **minor** token added: `component.navigation.securityNoticeHeight`
- **minor** token added: `component.globalHeader.moduleSelectorWidth`
- **minor** token added: `component.import.dropMinHeight`
- **minor** token added: `component.import.sourceColumnMinWidth`
- **minor** token added: `component.import.targetColumnMinWidth`
- **minor** token added: `component.import.reasonColumnMinWidth`
- **minor** token added: `component.import.mappingNameWidth`
- **minor** token added: `component.summary.itemMinWidth`
- **minor** token added: `component.import.errorRowWidth`
- **minor** token added: `component.import.errorFieldWidth`
- **minor** token added: `component.wms.scanBoxMinHeight`
- **minor** token added: `component.wms.manualButtonWidth`
- **minor** field added: `effectiveDate`
- **major** api permission: `lookup.items.resolveByCode` ("oms.order.read" → "erp.item.read")
- **major** api permission: `lookup.items.resolveById` ("oms.order.read" → "erp.item.read")
- **major** api permission: `lookup.items.search` ("oms.order.read" → "erp.item.read")
- **minor** api added: `erp.inventory.history`
- **minor** api added: `erp.itemPrices.bulkSave`
- **minor** api added: `erp.items.create`
- **minor** api added: `erp.items.update`
- **minor** api added: `erp.items.deactivate`
- **minor** api added: `erp.items.audit`
- **minor** api added: `oms.orders.get`
- **minor** api added: `oms.orders.confirm`
- **minor** api added: `oms.orders.audit`
- **minor** api added: `oms.orders.update`
- **minor** permission added: `erp.item.price.read`
- **minor** permission added: `erp.item.price.write`
- **minor** permission added: `oms.order.confirm`
- **minor** permission added: `oms.order.write`
- **minor** configuration-setting added: `Kbx:Runtime:Environment`
- **minor** configuration-setting added: `Kbx:Runtime:ReadOnly`
- **minor** configuration-setting added: `ConnectionStrings:Main`
- **minor** configuration-setting added: `Kbx:Database:MigrationsMode`
- **minor** configuration-setting added: `Kbx:Database:CommandTimeoutSeconds`
- **minor** configuration-setting added: `Kbx:Hangfire:Enabled`
- **minor** configuration-setting added: `Kbx:Hangfire:WorkerCount`
- **minor** configuration-setting added: `Kbx:SignalR:Enabled`
- **minor** configuration-setting added: `Kbx:Outbox:DispatcherEnabled`
- **minor** configuration-setting added: `Kbx:Inbox:CleanupEnabled`
- **minor** configuration-setting added: `Kbx:Integration:DispatcherEnabled`
- **minor** configuration-setting added: `Kbx:ExternalData:RefreshEnabled`
- **minor** configuration-setting added: `Kbx:ExternalData:ObservationRetentionEnabled`
- **minor** configuration-setting added: `Kbx:Experiments:Enabled`
- **minor** configuration-setting added: `Kbx:Logging:MinimumLevel`
- **minor** configuration-setting added: `Kbx:Logging:JsonConsoleEnabled`
- **minor** configuration-setting added: `Kbx:Telemetry:Enabled`
- **minor** configuration-setting added: `Kbx:Telemetry:OtlpEndpoint`
- **minor** configuration-setting added: `Kbx:Telegram:Enabled`
- **minor** configuration-setting added: `Kbx:Telegram:BotToken`
- **minor** configuration-setting added: `Kbx:Telegram:ChatId`
- **minor** configuration-setting added: `ExternalProviders:Krx:Enabled`
- **minor** configuration-setting added: `ExternalProviders:Krx:AuthKey`
- **minor** configuration-setting added: `ExternalProviders:OpenDart:Enabled`
- **minor** configuration-setting added: `ExternalProviders:OpenDart:ApiKey`
- **minor** configuration-setting added: `ExternalProviders:Kis:Enabled`
- **minor** configuration-setting added: `ExternalProviders:Kis:Environment`
- **minor** configuration-setting added: `ExternalProviders:Kis:AppKey`
- **minor** configuration-setting added: `ExternalProviders:Kis:AppSecret`
- **minor** configuration-setting added: `Kbx:Security:RequireHttps`
- **minor** configuration-setting added: `Kbx:Health:ReadinessEnabled`
- **minor** configuration-setting added: `Kbx:Import:MaxUploadBytes`
- **minor** configuration-setting added: `Kbx:Import:MaxRows`
- **minor** environment-profile added: `Development`
- **minor** environment-profile added: `Test`
- **minor** environment-profile added: `Staging`
- **minor** environment-profile added: `Production`
- **patch** test-scenario added: `scenario.common.design-system.interactions`
- **patch** test-scenario added: `scenario.erp.inventory.master-detail-context`
- **patch** test-scenario added: `scenario.erp.item-price.fast-entry`
- **patch** test-scenario added: `scenario.oms.order-list.all-filtered-ship`
- **patch** test-scenario contract: `scenario.oms.order-register.conflict`
- **patch** test-scenario added: `scenario.oms.order-register.fast-entry`
- **patch** test-scenario contract: `scenario.oms.order-register.keyboard`
- **patch** test-scenario contract: `scenario.shell.unsaved-tab`
- **patch** test-scenario added: `scenario.erp.item-master.lifecycle`
- **patch** test-scenario added: `scenario.oms.order-register.lifecycle`
- **patch** test-scenario added: `scenario.shell.home-navigation-security`
- **patch** test-scenario added: `scenario.kbx.template-runtime-utility`
- **patch** test-scenario added: `scenario.common.design-system.form-composition`
- **patch** test-scenario added: `scenario.shell.module-route-recovery`
- **patch** test-scenario added: `scenario.erp.item-master.keyboard-recovery`
- **patch** test-scenario added: `scenario.common.operations.queue-recovery`
- **patch** test-scenario added: `scenario.common.reconcile.mismatch-recovery`

## Governance additions

- Canonical permission catalog + Screen/Command/Workflow/API parity
- Sensitive data policy + audited disclosure
- AI effective-permission intersection
- KbxMaskedValue masking UX
- Permission/Sensitive-policy release compatibility analysis
- Semantic UX telemetry + Manual Intervention Rate governance
- Safe UX experiment + controlled rollout + kill-switch governance
- Deterministic synthetic fixture + executable scenario governance
- External integration + resilience governance
- Official-source external provider adapters + provider contract governance
- External data normalization + provenance + freshness governance
- Deployment configuration + environment promotion governance
