Release: merge development into beta#2
Conversation
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
PHPUnit Tests
Integration Tests (Newman)
E2E Tests (Playwright)
Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (215 total)
PHPUnit TestsPHPUnit tests were not enabled for this run. Integration Tests (Newman)Newman integration tests were not enabled for this run. E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
PHPUnit Tests
Integration Tests (Newman)
E2E Tests (Playwright)
Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (215 total)
PHPUnit TestsPHPUnit tests were not enabled for this run. Integration Tests (Newman)Newman integration tests were not enabled for this run. E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (215 total)
PHPUnit TestsPHPUnit tests were not enabled for this run. Integration Tests (Newman)Newman integration tests were not enabled for this run. E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (215 total)
PHPUnit TestsPHPUnit tests were not enabled for this run. Integration Tests (Newman)Newman integration tests were not enabled for this run. E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (215 total)
PHPUnit TestsPHPUnit tests were not enabled for this run. Integration Tests (Newman)Newman integration tests were not enabled for this run. E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (215 total)
PHPUnit TestsPHPUnit tests were not enabled for this run. Integration Tests (Newman)Newman integration tests were not enabled for this run. E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (416 total)
PHPUnit Tests
Code coverage: 0% (0 / 3 statements) Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (416 total)
PHPUnit Tests
Integration Tests (Newman)
E2E Tests (Playwright)
Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (416 total)
PHPUnit Tests
Code coverage: 0% (0 / 3 statements) Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (416 total)
PHPUnit Tests
Integration Tests (Newman)
E2E Tests (Playwright)
Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (416 total)
PHPUnit Tests
Code coverage: 0% (0 / 3 statements) Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (416 total)
PHPUnit Tests
Integration Tests (Newman)
E2E Tests (Playwright)
Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
npm dependencies (416 total)
PHPUnit Tests
Integration Tests (Newman)
E2E Tests (Playwright)
Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (416 total)
PHPUnit Tests
Code coverage: 0% (0 / 3 statements) Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (416 total)
PHPUnit Tests
Code coverage: 0% (0 / 3 statements) Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
PHPUnit Tests
Integration Tests (Newman)
E2E Tests (Playwright)
Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (416 total)
PHPUnit Tests
Code coverage: 0% (0 / 3 statements) Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (416 total)
PHPUnit Tests
Code coverage: 0% (0 / 3 statements) Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (416 total)
PHPUnit Tests
Code coverage: 0% (0 / 3 statements) Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
npm dependencies (416 total)
PHPUnit Tests
Integration Tests (Newman)
E2E Tests (Playwright)
Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (416 total)
PHPUnit Tests
Code coverage: 0% (0 / 3 statements) Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
npm dependencies (416 total)
PHPUnit Tests
Integration Tests (Newman)
E2E Tests (Playwright)
Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (416 total)
PHPUnit Tests
Code coverage: 0% (0 / 3 statements) Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (416 total)
PHPUnit Tests
Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (416 total)
PHPUnit Tests
Code coverage: 0% (0 / 3 statements) Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (416 total)
PHPUnit Tests
Code coverage: 0% (0 / 3 statements) Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report — ConductionNL/decidesk @
|
| Check | Result |
|---|---|
| PHP lint | ✅ |
| PHP phpcs | ✅ |
| PHP phpmd | ✅ |
| PHP psalm | ✅ |
| PHP phpstan | ✅ |
| PHP phpmetrics | ✅ |
| eslint | ✅ |
| stylelint | ✅ |
| Security (composer) | ✅ |
| Security (npm) | ✅ |
| License (composer) | ✅ 100/100 |
| License (npm) | ✅ 416/416 |
| PHPUnit | ✅ |
| Newman | ✅ |
| Playwright | ⏭️ |
Coverage: 0% (0/3 statements)
Quality workflow — 2026-04-13 18:03 UTC
Download the full PDF report from the workflow artifacts.
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ❌ | |||
| PHPUnit | ❌ | ||||
| Newman | ❌ | ||||
| Playwright | ❌ |
Quality workflow — 2026-04-13 18:11 UTC
Download the full PDF report from the workflow artifacts.
…137) from wip/spec-anchor-archive into development
RegisterJsonTest asserted x-openregister-seeds — the dropped key — so it stayed green for the entire life of the phantom: it proved the declaration existed, not that any seed planted. Repoint at x-openregister.seedData.objects (keyed by schema slug, no @self envelope) and add a guard that the out-of-vocabulary key never returns.
…x-inert-seeds into development
ConsultationReaction.reactionPendingModeration declared trigger.type 'create'. OpenRegister's NotificationAnnotationValidator::VALID_TRIGGERS accepts only created|updated|transition|scheduled|threshold|calculatedChange, so the value matched no dispatch branch and the moderation notification could never fire. Every other decidesk notification already used 'created'. BoardEvaluation and EvaluationResponse declared their relations ONLY in the x-openregister-relations block, retired 2026-07-08 (ADR-062 rule 7). No engine reads it, and the properties were never materialised at all — so the references had nowhere to live. Migrated to canonical property-level $ref. RegisterJsonTest asserted the retired dialect, so it went red when the core schemas migrated and simply stayed red — 2 pre-existing failures that documented the drift instead of blocking it. Repointed at the canonical dialect (handling to-many via items.$ref, e.g. Decision.route) and added guards for both drifts, each verified to fail on the bad path. info.version 0.6.0 -> 0.6.1: the import version gate skips a config whose version is not newer, so an unbumped fix stays inert (the same trap as fix-inert-seeds). Baseline (clean origin/development): 774 tests, 2 failures. This branch: 776 tests, 0 failures.
…ne-spec-fixes into development
…es' (#141) from archive-audit-changes into development
…hive-audit-changes into development
…dive Full opsx-ff artifact sets (proposal, specs, design, tasks) for the six evidence-backed feature gaps identified in the 2026-07-16 market deep-dive (iBabs/Notubiz duopoly analysis, OpenSlides parity check, Digimonitor/ Digitoegankelijk accessibility data, intelligence-DB demand scores, live RIS tender mining — logged to the spectr register and intelligence DB): - records-management-archiving: Archiefwet/MDTO lifecycle, Selectielijst retention, e-depot transfer packages, destruction workflow + verklaring, compliance dashboard (demand 1317/1170/913; vendors exclude archiving) - meeting-pack-board-book: compiled vergaderbundel PDF via Docudesk merge, versioning, confidentiality filtering, offline delivery (demand 482-201) - document-annotations: private/faction/body annotations on meeting documents, version-anchored, GDPR export (demand 334-226) - toezeggingen-ingekomen-stukken: standalone griffie registers with declarative lifecycles, rappels, hamerstuk bulk confirmation, WOO-aware publication (GO Toezeggingen parity) - urgent-decision-procedure: guarded spoedprocedure with emergency-meeting or expedited written round + mandatory ratification stage (demand 1467) - document-accessibility-check: pre-publication PDF accessibility gate + toegankelijkheidsverklaring reporting (demand 846; 46% of RIS at status E) Canonical specs decision-management, meeting-management, process-configuration, decidesk-notifications and public-publication marked in-progress with their new change references.
docs(openspec): six market-gap changes from the 2026-07-16 Decidesk deep-dive
…deep-dive Full opsx-ff artifact sets (proposal, specs, design, tasks) for all 19 gap candidates that survived bulk novelty-checking against the 97 canonical specs: works-council-consultation, constituency-consultation, vragenuur-interpellatie, termijnagenda, raadsinformatiebrieven, pc-cyclus, verordeningenregister, delegatie-mandaatregister, governing-documents-register, shared-governance-bodies, vve-alv-pack, woo-diwoo-publication, member-onboarding, advisory-opinion-workflow, appointments-and-terms, interests-and-integrity, member-proxy-authorization, inspreekrecht-plenair, embargo-geheimhouding. All strict-valid; register fragments 47-65 assigned centrally; public-publication canonical spec gains the vragenuur-interpellatie change reference.
docs(openspec): nineteen market-gap changes — wave 2 of the Decidesk deep-dive
…hipped records stack The change was drafted on a false premise: that decidesk must build dossier assembly, MDTO mapping, Selectielijst retention rules, transfer packages, a destruction workflow, the verklaring and the dashboard, consuming only OR's '_retention'/'_tmlo' columns. Verified against openregister ebedbdd5a, that premise was wrong on both counts. OpenRegister already ships: SelectionList entities + RetentionService:: applyArchivalMetadata() + ArchiefactiedatumCalculator (retention resolution), DestructionService + DestructionList + check/execution jobs + a 'verklaring_van_vernietiging' certificate, LegalHoldService, MdtoXmlGenerator, SipPackageBuilder (zip/BagIt/METS/PREMIS), TransferListService, EdepotTransferService and Transport/OpenConnectorTransport. Five of nine requirements were therefore rebuilding upstream code. They now consume it: - REQ-RMA-003: RetentionRule schema deleted; Selectielijst 2020 ships as OR SelectionList seed objects; decidesk computes no disposition dates - REQ-RMA-004/005 merged: TransferPackage schema, package builder and ArchiveConnectorService deleted; transfer runs through OR's transfer list + SipPackageBuilder + OpenConnectorTransport - REQ-RMA-005 (destruction): decidesk DestructionList/DestructionService deleted; consumes OR's lists, approval routes and jobs - REQ-RMA-006 (verklaring): reduced to rendering OR's certificate via Docudesk - REQ-RMA-002 (MDTO): scoped to dossier level; OR's MdtoXmlGenerator serializes Also corrects two impossible field names: '_retention' is a transient, read-only TTL view from the x-openregister-archival log-rotation mechanism (ObjectEntity::$archivalRetention, not persisted) — the Archiefwet block is the persisted 'retention' field; '_tmlo' does not exist (it is 'tmlo'). The spec now states explicitly that x-openregister-archival is NOT the Archiefwet path. Kept as genuinely decidesk: dossier assembly (OR has no aggregate unit), compliance dashboard (OR's is spec-only), classification labels (realigned as a documented subset of OR's 8-level ordinal). Net: 4 schemas + 4 services + 7 endpoints -> 1 schema, 1 service, 2 endpoints. Tasks 9 -> 6. Upstream follow-up filed: ConductionNL/openregister#2021 (destruction execution fatals on an unknown named parameter).
…mgmt fix(openspec): records-management-archiving consumes OpenRegister's shipped records stack
Automated PR to sync development changes to beta for beta release.
Merging this PR will trigger the beta release workflow.