# 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