From 1cbf10eec37f76780c8f284bbcafc855bc0a563c Mon Sep 17 00:00:00 2001 From: Ruben van der Linde Date: Thu, 27 Aug 2026 21:33:06 +0200 Subject: [PATCH 1/2] refactor(manifest): the flow pages are an index and a flow `flows` and `flow-detail` are deprecated aliases. `flows` predates named index sources: a flow lives in OpenRegister's native flow table rather than a register/schema pair, so an object-backed index had nothing to bind to and the list needed a page type of its own. `config.entitySource` closes that, so the list is an ordinary `index` and only the EDITOR still needs its own type, now named `flow`. Behaviour is unchanged - both aliases resolve to the same components. The list page's `_note` is updated in the same commit: it asserted the old rationale (that an index "cannot address" a flow), which this change disproves. `config.app` is untouched and is load-bearing: the editor stamps it on a flow created there and the index filters on it. Requires @conduction/nextcloud-vue 2.21, where a named source's columns and create button are actually read. --- src/manifest.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/manifest.json b/src/manifest.json index 8a2cbb1c..5a14eb08 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -454,15 +454,15 @@ { "id": "Flows", "route": "/flows", - "type": "flows", + "type": "index", "title": "Flows", - "config": { "app": "keepiq" }, - "_note": "ADR-110 Decision 4: a flow is app-specific, so the authoring surface lives here rather than behind a deep link to another app's list. Rendered by the shared CnFlowsPage page type over OpenRegister's one native flow store (ADR-065), scoped to this app." + "config": { "entitySource": "flows", "app": "keepiq" }, + "_note": "ADR-110 Decision 4: a flow is app-specific, so the authoring surface lives here rather than behind a deep link to another app's list. An ordinary index over the named `flows` source (config.entitySource) rather than the deprecated `flows` page type, reading OpenRegister's one native flow store (ADR-065), scoped to this app by config.app." }, { "id": "FlowDetail", "route": "/flows/:id", - "type": "flow-detail", + "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." From da998a513c5d821854cdaf84933e2963aa8ff4e5 Mon Sep 17 00:00:00 2001 From: Conduction Release Bot Date: Fri, 28 Aug 2026 09:12:50 +0200 Subject: [PATCH 2/2] chore(deps): bump @conduction/nextcloud-vue to ^2.21.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The flow pages need 2.21.0: earlier releases DECLARE a named index source's columns, create button and row actions without reading them, so the migrated page renders a columnless table with no working create action. The lock is the part that matters. CI installs with `npm ci`, which honours package-lock.json and ignores how permissive the caret is — bumping the range alone would change nothing about what actually installs. --- package-lock.json | 10 +++++----- package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2e071bfe..8759c7bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.1.0", "license": "EUPL-1.2", "dependencies": { - "@conduction/nextcloud-vue": "^2.19.0", + "@conduction/nextcloud-vue": "^2.21.0", "@nextcloud/auth": "^2.6.0", "@nextcloud/axios": "~2.5.2", "@nextcloud/capabilities": "^1.2.1", @@ -546,9 +546,9 @@ } }, "node_modules/@conduction/nextcloud-vue": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/@conduction/nextcloud-vue/-/nextcloud-vue-2.19.0.tgz", - "integrity": "sha512-gSLl4RZ7hy1e2TBuzYZLiTLBMggRYgfuxFMva59JBhb1EP93GgvEd/HpQcg+zoBL9FJPgJw9ir2OGf9Tore7og==", + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@conduction/nextcloud-vue/-/nextcloud-vue-2.21.0.tgz", + "integrity": "sha512-5HjI4X8k2IYxUeBdHa2OK/MnLhOFf4HxkF5dUGl42dWmYPDaPHjvawDMZcUcyP6wsP+rk0QzmPov4FGu/4Rn7Q==", "license": "EUPL-1.2", "dependencies": { "@ckpack/vue-color": "^1.6.0", @@ -610,7 +610,7 @@ "dompurify": "^3.0.0", "eslint": "^8.56.0 || ^9.0.0 || ^10.0.0", "eslint-plugin-vue": "^9.21.0 || ^10.0.0", - "gridstack": "^12.0.0", + "gridstack": "^12.0.0 || ^13.0.0", "marked": "^12.0.0", "pinia": "^2.0.0 || ^3.0.0", "vue": "^3.5.0", diff --git a/package.json b/package.json index eae387d0..d2e95550 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "libxmljs2": "^0.37.0" }, "dependencies": { - "@conduction/nextcloud-vue": "^2.19.0", + "@conduction/nextcloud-vue": "^2.21.0", "@nextcloud/auth": "^2.6.0", "@nextcloud/axios": "~2.5.2", "@nextcloud/capabilities": "^1.2.1",