Skip to content

Release: merge beta into main - #1487

Merged
rubenvdlinde merged 2370 commits into
mainfrom
beta
Aug 30, 2026
Merged

Release: merge beta into main#1487
rubenvdlinde merged 2370 commits into
mainfrom
beta

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Stable release: beta holds 2360 commit(s) main does not.

Merged with --merge, never --squash. Squashing a promotion rewrites the carried commits into one beta does not contain, so the branches diverge again immediately and main's own commits read as reverted.

A failing … / release check on this pull request is the App Store publish step, not a quality gate. Eight fleet apps cannot publish today: seven have no signing key, and thematiq's certificate carries its old app id (Nextcloud issues one certificate per id, CN = the id). The GitHub release and tag are still created. Every other check must be green for this to merge.

rubenvdlinde and others added 30 commits August 20, 2026 10:26
…260820081255

chore(release): 0.2.5-unstable.20260820081255
…260820083237

chore(release): 0.2.5-unstable.20260820083237
…260820084546

chore(release): 0.2.5-unstable.20260820084546
…260820090421

chore(release): 0.2.5-unstable.20260820090421
…260820091704

chore(release): 0.2.5-unstable.20260820091704
…260820093147

chore(release): 0.2.5-unstable.20260820093147
…260820094625

chore(release): 0.2.5-unstable.20260820094625
…260820100024

chore(release): 0.2.5-unstable.20260820100024
…260820101516

chore(release): 0.2.5-unstable.20260820101516
Two user-visible defects are fixed by this bump.

TWO AI-COMPANION HEXES ON EVERY PAGE. The companion singleton landed in
2.7.0. Below that the host app's own companion never stands down, so any
page of this app rendered a second hex 8px from hermiq's — measured on a
running instance: openconnector (2.7.1) showed ONE, openbuild (2.6.3)
showed TWO, both visible at 52x60, from two separate mounts.

THE DETAIL PAGE RECLOSED ITS SIDEBAR WHILE HYDRATING. CnDetailPage set
sidebarSeeded and never read it, so 'open' was re-applied on every sync
and each reactive change during hydration reset it to the prop default.
Fixed in nextcloud-vue#711; that is the cause behind openbuild#268 and,
on the evidence, #188.

Lockfile only — the existing caret already allowed this. Three-line diff
(version, resolved, integrity).
…260820102946

chore(release): 0.2.5-unstable.20260820102946
…260820105007

chore(release): 0.2.5-unstable.20260820105007
chore(deps): take @conduction/nextcloud-vue 2.8.2 (was 2.3.0)
…260820111318

chore(release): 0.2.5-unstable.20260820111318
…260820113701

chore(release): 0.2.5-unstable.20260820113701
…260820115330

chore(release): 0.2.5-unstable.20260820115330
dependabot Bot and others added 18 commits August 30, 2026 10:01
Bumps [dexie](https://github.com/dexie/Dexie.js) from 4.4.4 to 4.4.5.
- [Release notes](https://github.com/dexie/Dexie.js/releases)
- [Commits](dexie/Dexie.js@v4.4.4...v4.4.5)

---
updated-dependencies:
- dependency-name: dexie
  dependency-version: 4.4.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.29.7 to 8.0.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v8.0.1/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-version: 8.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [axe-core](https://github.com/dequelabs/axe-core) from 4.12.1 to 4.13.0.
- [Release notes](https://github.com/dequelabs/axe-core/releases)
- [Changelog](https://github.com/dequelabs/axe-core/blob/develop/CHANGELOG.md)
- [Commits](dequelabs/axe-core@v4.12.1...v4.13.0)

---
updated-dependencies:
- dependency-name: axe-core
  dependency-version: 4.13.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [phpmetrics/phpmetrics](https://github.com/phpmetrics/PhpMetrics) from 2.9.1 to 2.11.0.
- [Release notes](https://github.com/phpmetrics/PhpMetrics/releases)
- [Changelog](https://github.com/phpmetrics/PhpMetrics/blob/master/CHANGELOG.md)
- [Commits](phpmetrics/PhpMetrics@v2.9.1...v2.11.0)

---
updated-dependencies:
- dependency-name: phpmetrics/phpmetrics
  dependency-version: 2.11.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [gridstack](https://github.com/gridstack/gridstack.js) from 12.6.0 to 13.2.0.
- [Release notes](https://github.com/gridstack/gridstack.js/releases)
- [Changelog](https://github.com/gridstack/gridstack.js/blob/master/doc/CHANGES.md)
- [Commits](gridstack/gridstack.js@v12.6.0...v13.2.0)

---
updated-dependencies:
- dependency-name: gridstack
  dependency-version: 13.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan-phar-composer-source) from 2.2.8 to 2.2.9.
- [Commits](https://github.com/phpstan/phpstan-phar-composer-source/commits)

---
updated-dependencies:
- dependency-name: phpstan/phpstan
  dependency-version: 2.2.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…1464)

Bumps [phpcsstandards/phpcsextra](https://github.com/PHPCSStandards/PHPCSExtra) from 1.5.0 to 1.5.1.
- [Release notes](https://github.com/PHPCSStandards/PHPCSExtra/releases)
- [Changelog](https://github.com/PHPCSStandards/PHPCSExtra/blob/develop/CHANGELOG.md)
- [Commits](PHPCSStandards/PHPCSExtra@1.5.0...1.5.1)

---
updated-dependencies:
- dependency-name: phpcsstandards/phpcsextra
  dependency-version: 1.5.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…1462)

Bumps [squizlabs/php_codesniffer](https://github.com/PHPCSStandards/PHP_CodeSniffer) from 3.13.6 to 4.0.4.
- [Release notes](https://github.com/PHPCSStandards/PHP_CodeSniffer/releases)
- [Changelog](https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/4.x/CHANGELOG-3.x.md)
- [Commits](PHPCSStandards/PHP_CodeSniffer@3.13.6...4.0.4)

---
updated-dependencies:
- dependency-name: squizlabs/php_codesniffer
  dependency-version: 4.0.4
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [twig/twig](https://github.com/twigphp/Twig) from 3.27.0 to 3.28.0.
- [Release notes](https://github.com/twigphp/Twig/releases)
- [Changelog](https://github.com/twigphp/Twig/blob/3.x/CHANGELOG)
- [Commits](twigphp/Twig@v3.27.0...v3.28.0)

---
updated-dependencies:
- dependency-name: twig/twig
  dependency-version: 3.28.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [nextcloud/ocp](https://github.com/nextcloud-deps/ocp) from 34.0.2 to 34.0.3.
- [Commits](nextcloud-deps/ocp@v34.0.2...v34.0.3)

---
updated-dependencies:
- dependency-name: nextcloud/ocp
  dependency-version: 34.0.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
beta held 8 commit(s) development did not. Version files were
resolved to development's side so the version never moves backwards --
the same rule release.yml applies to its own post-release sync.

Recording the ancestry is the payload: without it the merge base never
moves and the next development -> beta promotion conflicts on the version
file exactly as before.
…0260830084229

chore(sync): carry beta back into development
…02608300839

chore(sync): record beta's ancestry on development
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
PHPCS failed on development with 4 errors across two files, blocking the
development -> beta promotion:

  ZgwRulesDispatcher.php:206        No space found before comment text
  CaseDefinitionExportService.php:294  Inline comments must start with a
                                       capital letter

Both sites wrote `};//end match`. The `//end` convention is used by 648
files here and is not the problem: PHPCS accepts `}//end methodName()`
because that sniff applies to DECLARATION closings. A match expression's
`};` is not a declaration, so the trailing text is judged as an ordinary
inline comment and must start with a capital and a space.

These two were the only `};//end match` in the repo. Twenty-one other
files already close a match with a bare `};`, so this follows the
existing majority rather than inventing a third style.

Verified: php -l on both, and phpcs now reports 0 errors (exit 0); the
remaining output is a pre-existing non-blocking @SPEC warning.
Release: merge development into beta
…1484)

* fix(phpcs): close a match the way the other 21 files do

PHPCS failed on development with 4 errors across two files, blocking the
development -> beta promotion:

  ZgwRulesDispatcher.php:206        No space found before comment text
  CaseDefinitionExportService.php:294  Inline comments must start with a
                                       capital letter

Both sites wrote `};//end match`. The `//end` convention is used by 648
files here and is not the problem: PHPCS accepts `}//end methodName()`
because that sniff applies to DECLARATION closings. A match expression's
`};` is not a declaration, so the trailing text is judged as an ordinary
inline comment and must start with a capital and a space.

These two were the only `};//end match` in the repo. Twenty-one other
files already close a match with a bare `};`, so this follows the
existing majority rather than inventing a third style.

Verified: php -l on both, and phpcs now reports 0 errors (exit 0); the
remaining output is a pre-existing non-blocking @SPEC warning.

* fix(sidebar): render the manifest page's sidebar alongside our own

This app fills CnAppRoot's `#sidebar` slot, and Vue only renders a slot's
fallback when the slot is ABSENT. So filling it suppressed
`pages[].sidebarComponent` silently: no warning, no error, no sidebar. The
ADR-110 flow sidebar was declared in the manifest, registered in registry.js
and present in the bundle, and still never rendered.

Nine apps in the fleet fill this slot and all nine were affected. The five that
do not fill it rendered the flow sidebar correctly, which is what identified
the cause.

CnAppRoot now passes the resolved component to the slot (nextcloud-vue#857), so
this renders both: our own rail, and whatever the routed manifest page asks
for.

Verified: npm run build exits 0.

* chore(deps): @conduction/nextcloud-vue 2.24.3, which carries the sidebar slot prop

2.24.3 is the release that passes the resolved `pages[].sidebarComponent` into
CnAppRoot's `#sidebar` slot. Without it the App.vue change in this branch is a
no-op, because the slot prop it reads does not exist yet.

Verified on filinq in the browser against the dev instance: the flow rail
(Flow, Steps, Runs, Version, Publish, the trigger list) now renders next to the
canvas, and the app's own sidebar still mounts alongside it.
Comment on lines +17 to +44
uses: ConductionNL/.github/.github/workflows/documentation.yml@main
# A reusable workflow receives NO secrets by default. Without this block the
# callee's publish step finds CF_API_TOKEN empty, skips itself on its own
# `if:` guard, and the run finishes GREEN having changed nothing -- the
# failure that left the fleet's docs sites on May builds. The names are the
# same on both sides; the org secrets really are CF_API_TOKEN/CF_ACCOUNT_ID.
secrets:
CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }}
CF_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }}
with:
cname: dossiq.conduction.nl

# procest.conduction.nl is the retired hostname. It stays in docs-hosts so
# existing links keep resolving, and canonical-host below turns it into a
# 301 rather than a second live copy of every page.
# EVERY host this worker answers on, in FULL: wrangler reconciles the
# worker's triggers against this list, so a host left out is REMOVED and
# goes dark.
docs-hosts: procest.conduction.nl,dossiq.conduction.nl
# The ONE hostname this site is reached on. Every other host in
# docs-hosts answers 301 to the same path here. Before this, both hostnames
# served identical content and the retired name stayed as discoverable
# as the current one.
canonical-host: dossiq.conduction.nl
# PINNED. Deriving the name is how a deploy goes green and reaches
# nobody: wrangler creates the derived worker and publishes there while
# the custom domains keep routing to the real one.
worker-name: procest-docs
Comment on lines +15 to +20
uses: ConductionNL/.github/.github/workflows/issue-triage.yml@main
with:
app-name: dossiq
backlog-existing: ${{ github.event_name == 'workflow_dispatch' && inputs.backlog-existing || false }}
secrets:
PROJECT_TOKEN: ${{ secrets.PROJECT_TOKEN }}
Comment on lines +11 to +15
uses: ConductionNL/.github/.github/workflows/openspec-sync.yml@main
with:
app-name: dossiq
secrets:
PROJECT_TOKEN: ${{ secrets.PROJECT_TOKEN }}
Comment on lines +38 to +46
if: github.ref == 'refs/heads/development'
uses: ConductionNL/.github/.github/workflows/release.yml@main
with:
release-type: unstable
app-name: dossiq
previous-app-id: procest
secrets: inherit

beta:
Comment on lines +47 to +55
if: github.ref == 'refs/heads/beta'
uses: ConductionNL/.github/.github/workflows/release.yml@main
with:
release-type: beta
app-name: dossiq
previous-app-id: procest
secrets: inherit

stable:
Comment on lines +56 to +62
if: github.ref == 'refs/heads/main'
uses: ConductionNL/.github/.github/workflows/release.yml@main
with:
release-type: stable
app-name: dossiq
previous-app-id: procest
secrets: inherit
Comment on lines +9 to +10
uses: ConductionNL/.github/.github/workflows/sync-to-beta.yml@main
secrets: inherit
rubenvdlinde and others added 9 commits August 30, 2026 13:59
Dependabot bumped `@vitest/coverage-v8` to 4 on its own in several apps and
left `vitest` and `@vitest/ui` on 3. coverage-v8 4 peers vitest 4.1.11 exactly,
so a split trio cannot resolve at all: that is what took launchpad's npm ci
from green to red.

The three move together here, to 4.1.11, which is the current published version
of all of them.

Verified: npm install and the app's own test script both exit 0.
…0260830124953

chore(sync): carry beta back into development
The 'render the manifest page's sidebar alongside our own' commit landed
unformatted, and quality / Frontend Check (format) has been red on
development ever since:

  prettier --check "**/*.{js,ts,vue,css,scss}"
  [warn] src/App.vue

Eight apps took the same change and eight went red together. This is
prettier --write over the affected files and nothing else.

Verified: npm run format exits 0.
Release: merge development into beta
…0260830153033

chore(sync): carry beta back into development
Release: merge development into beta
main held 37 commit(s) beta did not. Merged with -s ours: beta's
tree is kept BYTE FOR BYTE and only the ancestry is recorded, so the
beta -> main promotion stops conflicting on files where beta is simply
newer.

Not brought over -- beta is hundreds of commits ahead of main, so these
are the OLDER copies, and several are dead Forgejo/Codeberg CI that
development deliberately removed:

  .forgejo/workflows/release-stable.yml .github/dependabot.yml .github/workflows/beta-release.yaml .github/workflows/code-quality.yml .github/workflows/release-workflow.yaml appinfo/info.xml lib/Repair/InitializeSettings.php openspec/config.yaml phpunit.xml tests/bootstrap.php tests/unit/Controller/SettingsControllerTest.php
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/dossiq @ f2bbe3e

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
check-manifest
check-vue3-compile
test-l10n
format
check-schema-l10n
check-l10n-js
composer ✅ 106/106
npm ✅ 539/539
app:check-code ⏭️
info.xml
REUSE
PHPUnit
Newman ⏭️
Playwright
Hydra gates

Quality workflow — 2026-08-30 17:30 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit 30d31a7 into main Aug 30, 2026
51 of 52 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants