diff --git a/src/manifest.json b/src/manifest.json index c8be39b4..760c9ba3 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -563,7 +563,8 @@ "type": "flow", "title": "Flow", "config": { "app": "keepiq" }, - "_note": "The shared CnFlowDetail canvas over the same single engine. Controls render in the NC app sidebar so the canvas keeps full width." + "sidebarComponent": "FlowDetailSidebar", + "_note": "The shared CnFlowDetail canvas over the same single engine. Controls render in the NC app sidebar (sidebarComponent) so the canvas keeps full width; canvas and sidebar share useFlowStore. The _note claimed this before the field existed, so #/flows/new -- and every #/flows/:id -- rendered a bare canvas with no way to name, describe, trigger or step-edit the flow. Mirrors pipelinq#1490." } ], "observability": { diff --git a/src/registry.js b/src/registry.js index 183b58c3..13d2e084 100644 --- a/src/registry.js +++ b/src/registry.js @@ -46,6 +46,7 @@ import ApplicationRegisterView from './views/ApplicationRegisterView.vue' import CertificateInventoryView from './views/CertificateInventoryView.vue' import EmergencyAccessView from './views/EmergencyAccessView.vue' import EphemeralSendAccess from './views/EphemeralSendAccess.vue' +import FlowDetailSidebar from './views/flows/FlowDetailSidebar.vue' import HealthReportView from './views/HealthReportView.vue' import LinkShareAccess from './views/LinkShareAccess.vue' import LockScreen from './views/LockScreen.vue' @@ -55,6 +56,12 @@ import SecretList from './views/SecretList.vue' import SecretRequestFill from './views/SecretRequestFill.vue' export default { + // --- Flows (ADR-110 Decision 4). Only the SIDEBAR is an app component; + // the list and the canvas are the shared `flows` / `flow-detail` + // manifest page types. CnFlowSidebar has to mount in the NC app + // sidebar for the canvas to keep full width. --- + FlowDetailSidebar: { kind: 'page', component: FlowDetailSidebar }, + LockScreen: { kind: 'page', component: LockScreen }, SecretList: { kind: 'page', component: SecretList }, SecretDetail: { kind: 'page', component: SecretDetail }, diff --git a/src/views/flows/FlowDetailSidebar.vue b/src/views/flows/FlowDetailSidebar.vue new file mode 100644 index 00000000..fff85173 --- /dev/null +++ b/src/views/flows/FlowDetailSidebar.vue @@ -0,0 +1,26 @@ + + + + + +