What's Changed
- Extra styling for the login page by @rubenvdlinde in #2
- fix: PHPCS coding standard fixes and quality tooling by @rubenvdlinde in #39
- chore: Merge development into main by @rubenvdlinde in #40
- Release: merge development into beta by @github-actions[bot] in #1
- feat: Spec enrichment, prometheus metrics by @rubenvdlinde in #43
- feat: OpenSpec implementation by @rubenvdlinde in #44
- Release: merge development into beta by @github-actions[bot] in #42
- [Docs] Feature overview with GEMMA/TEC standards by @rubenvdlinde in #53
- feat: Enrich all OpenSpec specifications by @rubenvdlinde in #48
- chore: Final OpenSpec structure cleanup by @rubenvdlinde in #50
- chore(nldesign): Convert all specs to change proposals by @rubenvdlinde in #51
- chore(sbom): remove per-app SBOM workflow + checked-in SBOM (release-asset only) by @rubenvdlinde in #58
- feat(docs): adopt @conduction/docusaurus-preset + move to nldesign.conduction.nl by @rubenvdlinde in #59
- feat(docs): cobalt hero on landing (preset 1.5.1) by @rubenvdlinde in #60
- chore(docs): sync @conduction/docusaurus-preset lockfile to 1.5.1 by @rubenvdlinde in #67
- fix(docs): preset 2.6.1 + locales:['en'] (fixes build) + deploy from development by @rubenvdlinde in #68
- ci(docs): deploy from documentation branch (not development) by @rubenvdlinde in #69
- chore(security): require 24h cooldown on npm packages by @rubenvdlinde in #73
- feat(docs): wire AI-crawler baseline (preset 3.4.0 + validator + llms.txt) by @rubenvdlinde in #74
- feat(docs): per-app OG card + accurate llms.txt links by @rubenvdlinde in #75
- chore(docs): use validator bin from preset 3.5.0 by @rubenvdlinde in #76
- chore(docs): bump preset to ^3.6.0 + sync lockfile by @rubenvdlinde in #77
- chore(deps): upgrade preset lockfile to 3.6.1 (unbreaks deploy) by @rubenvdlinde in #79
- chore(deps): preset lockfile 3.6.1 -> 3.6.2 (validator patch) by @rubenvdlinde in #81
- chore(deps): preset lockfile 3.6.2 -> 3.7.0 (sitemap lastmod auto-applies) by @rubenvdlinde in #83
- fix(ci): dependabot should target development per branching strategy by @rubenvdlinde in #85
- chore(brand): align app-store hex to canonical cobalt #21468B by @rubenvdlinde in #71
- chore: add missing generated artifact entries to .gitignore by @rubenvdlinde in #46
- chore(deps): preset lockfile 3.7.1 -> 3.8.0 (BreadcrumbList + TechArticle + IndexNow) by @rubenvdlinde in #86
- chore: Update openspec config and gitignore docs artifacts by @rubenvdlinde in #47
- chore: harmonize .gitignore with shared template by @rubenvdlinde in #55
- chore(deps): preset lockfile 3.8.0 -> 3.9.0 (TechArticle gate) by @rubenvdlinde in #89
- fix(docs): descriptive homepage title (#80) by @rubenvdlinde in #91
- fix(docs): hand-written meta descriptions (#81) by @rubenvdlinde in #93
- chore(docs): bump @conduction/docusaurus-preset to 3.10.0 (#79) by @rubenvdlinde in #95
- chore: sync canonical root configs + capture phpstan baseline by @rubenvdlinde in #99
- chore(deps): bump PHP requirement to ^8.3 by @rubenvdlinde in #100
- chore(deps): bump composer config.platform.php to 8.3 by @rubenvdlinde in #101
- chore(info.xml): canonicalize PHP min, NC version range, licence spelling by @rubenvdlinde in #103
- fix(metrics): re-increment nldesign_theming_syncs_total on successful theming sync by @rubenvdlinde in #106
- retrofit: annotate nldesign Bucket 1 (63 methods / 57 REQs) by @rubenvdlinde in #107
- feat(i18n): Create l10n directory with en/nl translation files (58 keys) by @rubenvdlinde in #56
- chore(retrofit): drive nldesign spec-coverage to zero by @rubenvdlinde in #108
- chore(composer): bump lock platform to PHP 8.3 by @rubenvdlinde in #109
- chore(composer): patch twig + symfony/yaml security advisories by @rubenvdlinde in #110
- chore(openspec): add spec coverage report by @rubenvdlinde in #111
- test: Gate-19 e2e spec-coverage — 0 uncovered (32 tests pass) by @rubenvdlinde in #112
- fix: bring CI green - SPDX auth attributes routes PHPCS PHPMD Psalm Stylelint by @rubenvdlinde in #114
- fix(css): drop universal font override, document reserved tokens, add ADR decisions by @rubenvdlinde in #132
- fix(brand): solid xxllnc tokens, fix typos, MDI app icons, remove dead assets by @rubenvdlinde in #133
- fix(php): DI injection, public endpoints, JSON encoding, MIME validation, dynamic preview by @rubenvdlinde in #134
- fix: harden CSS sanitizer, fix DI, and dedup parser logic (M1+L1+L2+L3) by @rubenvdlinde in #135
- fix: comment out unresolved Style-Dictionary token placeholders (M2+L4) by @rubenvdlinde in #136
- test(e2e): add Playwright spec-coverage for all 15 remaining openspec specs by @rubenvdlinde in #115
- fix(security): bump twig/twig to ^3.27.0 (5 CVEs) by @rubenvdlinde in #137
- feat: dialog-overlay CSS + token path refactor by @rubenvdlinde in #138
- fix(security): wave-3 critical fixes by @rubenvdlinde in #139
- fix: make composer check:strict pass on development by @rubenvdlinde in #140
- chore: Sync NL Design System tokens by @github-actions[bot] in #41
- chore(deps): Bump the npm_and_yarn group across 1 directory with 13 updates by @dependabot[bot] in #97
- fix(a11y): make the error-fill foreground readable (Delete button was invisible) by @MWest2020 in #143
- docs(openspec): market-gap wave 2026-07-23 — 14 ff changes from deep research by @rubenvdlinde in #145
- fix(security): reject semicolon/comment-marker CSS injection in custom token set uploads by @rubenvdlinde in #146
- fix(security): admin-only auth on /api/metrics, tests + spec catch-up by @rubenvdlinde in #147
- docs(openspec): archive batch 1 + legacy header conversion by @rubenvdlinde in #148
- feat: expose active huisstijl as a public capability (IPublicCapability) by @rubenvdlinde in #149
- fix(quality): honest analyzer runs — OCP stub resolution + no exit-code swallowing by @rubenvdlinde in #150
- feat(mail): brand system email with NL Design token set + compliance footer by @rubenvdlinde in #151
- fix(quality): analyzer reconciliation for email-template-theming under strict gates by @rubenvdlinde in #154
- feat(theming-audit): append-only JSONL audit trail for theming changes by @rubenvdlinde in #152
- fix: post-#152 reconciliation — tests green, vendor symlinks untracked by @rubenvdlinde in #158
- feat(design-systems): bundle La Suite numérique design stack by @rubenvdlinde in #153
- feat(tokens): full W3C DTCG v2025.10 ingestion (aliases, composite types, diagnostics) by @rubenvdlinde in #159
- fix(quality): document essential DTCG mapper complexity by @rubenvdlinde in #160
- feat: custom font upload (self-hosted, woff2-only, license-gated) by @rubenvdlinde in #156
- feat: active-configuration WCAG contrast compliance evidence report by @rubenvdlinde in #157
- fix(compliance): reconcile 10-arg SettingsController + phpmd by @rubenvdlinde in #161
- feat: opt-in upstream token freshness check (first background job) by @rubenvdlinde in #155
- fix(freshness): reconcile 11-arg SettingsController + real provenance in capability by @rubenvdlinde in #162
- docs(openspec): archive 8 built + live-verified changes by @rubenvdlinde in #163
- refactor(theming): move CSS injection from boot() to render events by @rubenvdlinde in #164
- fix(admin-js): restore DTCG diagnostics rendering lost in merge reconciliation by @rubenvdlinde in #167
- feat(theming): per-group token-set mapping (multi-tenant huisstijl) by @rubenvdlinde in #165
- fix(quality): CssInjectionService docblock after per-group merge by @rubenvdlinde in #169
- fix(a11y): keep keyboard focus on the moved row when reordering group mappings by @rubenvdlinde in #170
- feat(theme-preview): proefdraaien — per-session token set preview before instance-wide publish by @rubenvdlinde in #166
- fix(preview): compose preview with per-group resolution and event injection by @rubenvdlinde in #171
- docs(openspec): archive batch 3 (render-event, per-group, preview) by @rubenvdlinde in #172
- feat: complete configuration bundle export/import for OTAP promotion by @rubenvdlinde in #168
- docs(openspec): archive theme-config-portability by @rubenvdlinde in #174
- feat(dark-mode): algorithmic dark-mode CSS variants for token sets by @rubenvdlinde in #173
- fix(dark-mode): reconcile constructor arity by @rubenvdlinde in #176
- docs(openspec): archive dark-mode-token-variants by @rubenvdlinde in #177
- feat(icons)!: source icons from nc-vue, drop proprietary Amsterdam set by @rubenvdlinde in #178
- docs(openspec): archive icons-from-ncvue by @rubenvdlinde in #179
- test(e2e): revive the dead Playwright harness, cover the wave, and fix the NC34 toast bug it found by @rubenvdlinde in #180
- docs(openspec): La Suite pixel-parity wave (3 ff changes) by @rubenvdlinde in #183
- feat(lasuite): generate full Cunningham token base, sourced violet override, complete bridge coverage by @rubenvdlinde in #184
- docs(openspec): archive lasuite-token-completeness by @rubenvdlinde in #185
- feat(token-sets): non-admin catalogue + shared contrast evaluation endpoints by @rubenvdlinde in #186
- feat(lasuite): bundle Marianne font gated behind admin French-state acknowledgement by @rubenvdlinde in #187
- docs(openspec): archive marianne-font-restricted by @rubenvdlinde in #188
- feat: theme-switchable iconography — DSFR pack + design-system icon-pack resolver by @rubenvdlinde in #189
- fix(icons): Dutch-government sets resolve Dutch icons (default missing design_system) by @rubenvdlinde in #190
- docs(openspec): archive theme-switchable-iconography by @rubenvdlinde in #191
- feat(config): NL Design theme as a shareable config type (federated-config) by @rubenvdlinde in #192
- fix(ci): composer check:strict has been exiting 1 for weeks — phpmd was the only failing leg by @rubenvdlinde in #194
- fix(security): judge every url() on its own scheme instead of asking the document (#193) by @rubenvdlinde in #195
- fix(ci): make composer check:strict able to fail on tests by @rubenvdlinde in #196
- fix(quality): phpmd DevelopmentCodeFragment could never fire on namespaced code by @rubenvdlinde in #197
- chore(security): refresh roave/security-advisories guard to 2026-08-01 by @rubenvdlinde in #198
- chore(deps): pin @conduction/nextcloud-vue 2.1.0-vue3.17 and unblock npm ci by @rubenvdlinde in #200
- ci: bound the sync-tokens job runtime by @rubenvdlinde in #201
- fix(ci): bound every job on main — including the nightly scheduled one by @rubenvdlinde in #202
- fix(ci): raise the php-checks bound to 30 — one bound covers six matrix legs by @rubenvdlinde in #203
- fix(ci): regenerate docs/features.json so Features Check passes by @rubenvdlinde in #204
- chore(deps): upgrade @conduction/nextcloud-vue to 3.0.0-vue3.4 by @rubenvdlinde in #205
- fix(apphost): stop one cross-app
extendsfrom 500ing every nldesign route by @rubenvdlinde in #208 - ci(e2e): enable the shared Playwright job for nldesign by @rubenvdlinde in #206
- chore(ci): remove dead Forgejo/Codeberg CI residue by @rubenvdlinde in #211
- ci: align workflows with fleet standard (ConductionNL/.github) by @remko48 in #199
- fix(quality): make the skipped-unit-suite green self-documenting by @rubenvdlinde in #210
- chore(deps): @conduction/nextcloud-vue 3.0.0-vue3.6 by @rubenvdlinde in #213
- ci(quality): enable the Code Quality gates this repo was silently skipping by @rubenvdlinde in #214
- fix(lasuite): keep Nextcloud's container radius instead of the control radius by @rubenvdlinde in #218
- chore(deps): repin @conduction/nextcloud-vue to 2.2.0-vue3.3 (3.0.0-vue3.6 was unpublished) by @rubenvdlinde in #221
- ci(quality): move hydra-gates-ref v1.0.1 -> v1.3.0, which is what is failing CI by @rubenvdlinde in #223
- fix(l10n): register the missing "Saved. Reload to see the change." key by @rubenvdlinde in #225
- chore(license): normalise licence declarations to EUPL-1.2 by @rubenvdlinde in #224
- chore(license): the docs homepage still advertised AGPL-3.0 by @rubenvdlinde in #226
- fix(phpmd): scope the lib/Migration UnusedFormalParameter exclusion to its own ruleset by @rubenvdlinde in #220
- ci(quality): stop the release PR cancelling every push run on development by @rubenvdlinde in #229
- fix(ci): compare the coverage ratchet against the measured merge base by @rubenvdlinde in #231
- chore(ci): stop pinning hydra-gates — track the package at @main by @rubenvdlinde in #227
- test(e2e): pin the La Suite container-vs-control radius split in a browser by @rubenvdlinde in #228
- ci: publish an installable build of development by @rubenvdlinde in #234
- fix(security): PHP_CodeSniffer 3.13.5 → 3.13.6 (CVE-2026-67434, OS command injection) by @rubenvdlinde in #236
- fix(deps): php_codesniffer 3.13.6 — CVE-2026-67434 OS command injection by @rubenvdlinde in #237
- fix(newman): fixture src paths are relative to the COLLECTION dir, not the app root by @rubenvdlinde in #238
- fix(e2e): traces that are never written, a cascade that eats 10 verdicts, and two specs measuring the wrong thing by @rubenvdlinde in #235
- ci: drop the stable31 leg — openregister cannot install there by @rubenvdlinde in #240
- chore: raise the Nextcloud floor to 32 by @rubenvdlinde in #241
- fix: restore the pre-32 Nextcloud floor — CI still runs stable31 by @rubenvdlinde in #242
- fix(tests): resolve Newman fixture paths and honour the CI base_url variable by @rubenvdlinde in #232
- fix(e2e): 46 waits that can never resolve — networkidle on a Nextcloud page by @rubenvdlinde in #243
- chore: raise the Nextcloud floor to 32, and make it impossible to drift again by @rubenvdlinde in #244
- chore(quality): burn PHPMD to a true zero and delete phpmd.baseline.xml by @rubenvdlinde in #217
- fix(spec): 10 @SPEC anchors pointing into another repo's change directory — plus the zero tests behind them by @rubenvdlinde in #245
- fix(phpcs): stop the SpecTagSniff instructing the pattern gate-46 rejects by @rubenvdlinde in #248
- chore: raise Nextcloud floor to 32 and PHP floor to 8.3 by @rubenvdlinde in #249
- fix(a11y): th scope, autocomplete on three config fields, and 81 generated files tracked under their own ignore rule by @rubenvdlinde in #251
- fix(admin): server state via IInitialState, not data-* attributes — and the spec that mandated the wrong one by @rubenvdlinde in #252
- fix(a11y): name the three hidden file inputs by @rubenvdlinde in #255
- fix(e2e): wait for the Vue chrome instead of sleeping, and report the surfaces that never mount by @rubenvdlinde in #254
- fix(bootstrap): add the ADR-040 OpenRegister autoload prelude before the federated-config probe by @rubenvdlinde in #256
- chore(deps): pin @conduction/nextcloud-vue to 2.2.0-vue3.7 by @rubenvdlinde in #257
- chore(deps): pin @conduction/nextcloud-vue to 2.2.0-vue3.9 by @rubenvdlinde in #258
- fix(e2e): resolve the 29 'dead' lasuite selectors — 2 real defects, 27 a blind survey by @rubenvdlinde in #259
- fix(a11y): reduced-motion fallbacks that actually win the cascade, + gate-7 exemption by @rubenvdlinde in #261
- test(gate-19): rendered-palette coverage for dark-mode scope selectors (156 -> 150) by @rubenvdlinde in #262
- test(gate-19): 16 real e2e tests for admin-only enforcement and theme preview (142 -> 126) by @rubenvdlinde in #265
- fix(css): one failing stylesheet layer no longer cancels the rest of the cascade (#264) by @rubenvdlinde in #267
- fix(a11y): nldesign no longer adds WCAG AA contrast failures core does not have (#268) by @rubenvdlinde in #269
- fix(lasuite): the search control had no NC 32 treatment, and 8 selectors were dead on every supported server by @rubenvdlinde in #260
- chore: adopt Nextcloud's coding standard, .editorconfig and NC 34 by @rubenvdlinde in #272
- fix(ci): test the whole declared Nextcloud range, not only the ceiling by @rubenvdlinde in #273
- chore(quality): point PHPMD at the central ruleset by @rubenvdlinde in #275
- chore(quality): adopt the central PHPStan base config by @rubenvdlinde in #274
- chore(deps): pin @conduction/nextcloud-vue to 2.2.0-vue3.16 by @rubenvdlinde in #276
- chore(deps): resolve conduction/hydra-gates v1.7.3 in composer.lock by @rubenvdlinde in #277
- fix(ci): point shared workflow calls at a ref that exists by @rubenvdlinde in #278
- chore(ci): drop the eight legacy workflows that authenticate with the dead DEPLOY_KEY by @rubenvdlinde in #279
- feat(format): adopt Nextcloud's prettier config by @rubenvdlinde in #280
- ci: enforce prettier via a
formatFrontend Check leg by @rubenvdlinde in #281 - fix(security): rate-limit the font and health endpoints by @rubenvdlinde in #282
- ci: a branch nobody named got no checks at all by @rubenvdlinde in #283
- chore(deps): track @conduction/nextcloud-vue ^2.3.0 by @rubenvdlinde in #285
- chore(security): enable the npm supply-chain cooldown on npm 11 by @rubenvdlinde in #287
- docs(spec): rename this app to themiq by @rubenvdlinde in #284
- fix(coverage-guard): scope the ratchet to the files a change touches by @rubenvdlinde in #349
- docs(spec): gate-19 — exclude service-level scenarios, naming what proves them by @rubenvdlinde in #350
- chore(deps): raise hydra-gates to v1.8.0 so gates 65-84 exist locally by @rubenvdlinde in #351
- feat(tokens): VNG carries its NL Design System component tokens by @rubenvdlinde in #352
- fix(dark-mode): resolve var() aliases before deriving, and honour the generator version by @rubenvdlinde in #353
- fix(phpcs): clear the 17 PHPCS errors the shared gate was swallowing by @rubenvdlinde in #354
- chore(deps): add composer cooldown to dependabot.yml by @rubenvdlinde in #356
- fix(tokens): logo URLs resolve under custom_apps + regenerated dark component tokens by @rubenvdlinde in #358
- fix(tokens): regenerate dark variants — three themes were missing 88 component tokens each by @rubenvdlinde in #359
- style(phpcs): clear the one phpcs ERROR (inline comment capitalisation) by @rubenvdlinde in #360
- docs: public portals are a second consumer, and they behave differently by @rubenvdlinde in #357
- feat(tokens): Conduction 2026, built from identity.conduction.nl and nothing else by @rubenvdlinde in #355
- chore(deps): take hydra-gates v1.8.1 — the contract v1.8.0 shipped broken by @rubenvdlinde in #362
- Rotterdam token set that actually reaches the components by @rubenvdlinde in #363
- chore(deps): take @conduction/nextcloud-vue 2.8.2 (was 2.3.0) by @rubenvdlinde in #364
- Release: merge development into beta by @github-actions[bot] in #45
- OpenCatalogi token set, captured from the site it has to match by @rubenvdlinde in #365
- Release: merge development into beta by @github-actions[bot] in #366
- chore(appinfo): bump version to 1.1.0 and point forge links at GitHub by @rubenvdlinde in #367
- Release: merge development into beta by @github-actions[bot] in #368
- ci: adopt the unified release workflow, retiring the legacy trio by @rubenvdlinde in #369
- chore(deps): clear the critical and all nine high audit findings by @rubenvdlinde in #372
- ci(release): declare least-privilege permissions on the release caller by @rubenvdlinde in #373
- Release: merge development into beta by @github-actions[bot] in #370
- chore(quality): migrate to PHPStan 2 (and hydra-gates 1.8.2) by @rubenvdlinde in #378
- chore(deps): refresh the shared Conduction locks by @rubenvdlinde in #376
- fix(ci): give dispatched runs their own concurrency lane by @rubenvdlinde in #382
- chore(deps): refresh the shared Conduction locks by @rubenvdlinde in #384
- feat: rename the app id from nldesign to thematiq, freezing the design system by @rubenvdlinde in #386
- fix(docs): point the repository CTA at GitHub, not Codeberg by @rubenvdlinde in #389
- feat(docs): move the docs host nldesign.conduction.nl -> thematiq.conduction.nl by @rubenvdlinde in #388
- chore(deps): refresh the shared Conduction locks by @rubenvdlinde in #393
- fix(repair): move OpenRegister schemas from nldesign onto the thematiq application id by @rubenvdlinde in #395
- fix: build the three repair steps info.xml declared but never shipped by @rubenvdlinde in #397
- fix(docs): publish from development, to the worker that actually serves this site by @rubenvdlinde in #398
- docs: rename the app to Thematiq, keep the NL Design System as-is by @rubenvdlinde in #400
- fix(docs): the government checklist named Codeberg as the canonical source host by @rubenvdlinde in #402
- fix: repoint stale Codeberg links to GitHub by @rubenvdlinde in #396
- fix(docs): pass secrets to the reusable documentation workflow by @rubenvdlinde in #406
- fix(cache): rejoin the WCAG cache the rename split in two by @rubenvdlinde in #408
- chore(ci): remove dead Forgejo/Codeberg CI configuration by @rubenvdlinde in #412
- fix(docs): map the Cloudflare secrets from the names that actually exist by @rubenvdlinde in #411
- ci(quality): give every event its own concurrency lane by @rubenvdlinde in #415
- Release: merge development into beta by @github-actions[bot] in #379
- chore(ci): take the canonical coverage-guard from ConductionNL/.github by @rubenvdlinde in #418
- perf(ci): one Code Quality run per commit, not two by @rubenvdlinde in #423
- fix(release): name nldesign as this app's previous App Store id by @rubenvdlinde in #422
- chore(deps): hydra-gates 1.10, so the E2E skip-discipline gate can run by @rubenvdlinde in #426
- fix(ci): a push to development must reach a verdict here too by @rubenvdlinde in #428
- docs: add a local demo environment (thematiq-compose.yaml + setup page) by @rubenvdlinde in #430
- docs: make the demo verification command actually pass by @rubenvdlinde in #432
- chore(deps): @conduction/nextcloud-vue 2.15.0 -> 2.22.1 by @rubenvdlinde in #436
- Release: merge development into beta by @github-actions[bot] in #420
- chore: absorb main's history into beta so the promotion can merge by @rubenvdlinde in #438
- chore(release): 1.1.1-unstable.20260829100924 by @github-actions[bot] in #439
- ci(docs): publish from development, and retire the old hostname by @rubenvdlinde in #442
- chore(release): 1.1.2-unstable.20260829125748 by @github-actions[bot] in #444
- chore(deps): aim dependabot at development by @rubenvdlinde in #445
- chore(deps-dev): Bump @cyclonedx/cyclonedx-npm from 5.0.0 to 6.0.1 by @dependabot[bot] in #457
- chore(deps-dev): Bump @vitest/coverage-v8 from 3.2.7 to 4.1.11 by @dependabot[bot] in #456
- chore(tokens): regenerate the opencatalogi dark palette provenance by @rubenvdlinde in #434
- chore(deps-dev): Bump typescript from 6.0.3 to 7.0.2 by @dependabot[bot] in #455
- chore(deps-dev): Bump squizlabs/php_codesniffer from 3.13.6 to 4.0.4 by @dependabot[bot] in #452
- chore(deps-dev): Bump phpcsstandards/phpcsextra from 1.5.0 to 1.5.1 by @dependabot[bot] in #451
- Merge remote-tracking branch 'origin/feat/docs-host-to-thematiq' into feat/docs-host-to-thematiq by @rubenvdlinde in #435
- chore(deps-dev): Bump jsdom from 29.1.1 to 30.0.1 by @dependabot[bot] in #450
- chore(deps-dev): Bump phpstan/phpstan from 2.2.8 to 2.2.9 by @dependabot[bot] in #449
- chore(deps-dev): Bump nextcloud/ocp from 34.0.2 to 34.0.3 by @dependabot[bot] in #448
- chore(deps-dev): Bump phpmetrics/phpmetrics from 2.9.1 to 2.11.0 by @dependabot[bot] in #447
- chore(deps-dev): Bump twig/twig from 3.27.0 to 3.28.0 by @dependabot[bot] in #446
- chore(sync): carry main back into beta by @rubenvdlinde in #461
- chore(sync): carry main back into beta by @rubenvdlinde in #458
- chore(sync): carry beta back into development by @rubenvdlinde in #462
- chore(sync): carry beta back into development by @rubenvdlinde in #459
- chore(sync): record beta's ancestry on development by @rubenvdlinde in #464
- chore(release): 1.1.3-unstable.20260830084017 by @github-actions[bot] in #463
- Release: merge development into beta by @github-actions[bot] in #443
- release: publish a stable NLDesign release with downloadable assets by @rubenvdlinde in #419
- chore(deps): adopt vitest 4 by @rubenvdlinde in #472
- Release: merge development into beta by @rubenvdlinde in #473
- chore(sync): carry main back into beta by @rubenvdlinde in #475
- chore(sync): carry beta back into development by @rubenvdlinde in #476
- Release: merge development into beta by @rubenvdlinde in #478
- chore(sync): carry beta back into development by @rubenvdlinde in #484
- chore(deps): Bump the npm_and_yarn group across 1 directory with 18 updates by @dependabot[bot] in #471
- Release: merge development into beta by @github-actions[bot] in #485
- Release: merge beta into main by @rubenvdlinde in #483
- fix(l10n): 209 Dutch strings that never reached the browser by @rubenvdlinde in #493
- chore(sync): carry main back into beta by @rubenvdlinde in #497
- chore(sync): carry beta back into development by @rubenvdlinde in #498
- chore(release): sync main back into development by @github-actions[bot] in #488
- chore(release): 1.1.7-unstable.20260830174749 by @github-actions[bot] in #500
- chore(dependabot): hold back the four majors that cannot be adopted by @rubenvdlinde in #503
- Release: merge development into beta by @rubenvdlinde in #496
- Release: merge beta into main by @rubenvdlinde in #499
- chore(sync): carry main back into beta by @rubenvdlinde in #507
- chore(sync): carry beta back into development by @rubenvdlinde in #508
- chore(dependabot): hold back vue-router 5 as well by @rubenvdlinde in #513
- docs(dependabot): correct the vue-router holdback to what was measured by @rubenvdlinde in #514
- Release: merge development into beta by @rubenvdlinde in #510
- chore(sync): carry beta back into development by @rubenvdlinde in #521
- chore(deps): @conduction/nextcloud-vue 2.24.3 -> 2.25.1 by @rubenvdlinde in #524
- chore(release): sync beta back into development by @github-actions[bot] in #520
- chore(release): sync beta back into development by @github-actions[bot] in #506
- chore(release): 1.1.10-unstable.20260831053139 by @github-actions[bot] in #528
- chore(deps): refresh the shared Conduction locks by @rubenvdlinde in #527
- Release: merge development into beta by @github-actions[bot] in #522
- fix(composer): declare ext-xsl so dependabot can resolve by @rubenvdlinde in #533
- Release: merge beta into main by @rubenvdlinde in #518
- chore(release): sync main back into development by @github-actions[bot] in #541
- chore(release): sync beta back into development by @github-actions[bot] in #539
- chore(release): sync beta back into development by @github-actions[bot] in #535
- chore(deps): take @conduction/nextcloud-vue 2.27.2 by @rubenvdlinde in #542
- chore(sync): carry main back into beta by @rubenvdlinde in #545
- chore(sync): carry beta back into development by @rubenvdlinde in #546
- chore(release): 1.1.12-unstable.20260831125624 by @github-actions[bot] in #548
- chore(deps-dev): Bump phpstan/phpstan from 2.2.9 to 2.2.10 by @dependabot[bot] in #549
- Release: merge development into beta by @github-actions[bot] in #536
- Release: merge beta into main by @rubenvdlinde in #555
- chore(release): 1.2.0 by @rubenvdlinde in #556
- chore(deps): Bump postcss-selector-parser from 6.1.2 to 6.1.4 in /docs in the npm_and_yarn group across 1 directory by @dependabot[bot] in #550
New Contributors
- @github-actions[bot] made their first contribution in #1
- @MWest2020 made their first contribution in #143
- @remko48 made their first contribution in #199
Full Changelog: v0.1.1-beta.1...v1.2.2