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.
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ❌ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 469/469 | |||
| PHPUnit | ⏭️ | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ |
Quality workflow — 2026-05-11 07:37 UTC
Download the full PDF report from the workflow artifacts.
#177) p2-minutes-and-decisions-core-t1: - Move specs.md to canonical openspec path specs/<cap>/spec.md (specs/p2-minutes-and-decisions-core-t1/spec.md) matching the convention used by sibling p2-* changes (motion-and-voting, agenda-management, meeting-management). Spec content is unchanged — pure relocation. decidesk-legacy-quality-cleanup: - Add design.md (~560 words) covering cleanup scope (phpcs excludes, phpmd baseline, phpstan first-run, CI wiring, docs), sequential execution order across 6 phases, relationship to the quorum-* declarative-migration series (inverse scope — no file overlap, safe to run in parallel), risk assessment, and success criteria.
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ❌ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 469/469 | |||
| PHPUnit | ⏭️ | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ |
Quality workflow — 2026-05-11 08:09 UTC
Download the full PDF report from the workflow artifacts.
First per-app implementation of OCA\OpenRegister\Mcp\IMcpToolProvider
(interface defined in openregister PR #1466). Exposes 5 governance
tools to the AI chat companion:
Reads:
- decidesk.listOpenActionItems — open action items, optionally
scoped to the current user (via OR ObjectService.findAll).
- decidesk.listRecentMeetings — last N meetings ordered by
createdAt desc, optional statusFilter.
- decidesk.getMeetingDetails — single meeting with agenda +
decisions + action items inlined as sub-sources.
Actions (lifecycle + mutation):
- decidesk.startMeeting — MeetingService.transition($uuid,
'open', $userId). Auth flowthrough enforced inside transition()
via ObjectService.saveObject (existing chair/admin guard).
- decidesk.addActionItem — TaskService.saveTask([...]) with
participant/admin auth check.
Architecture (per hydra ADR-034 + this change's design.md):
- Single DecideskToolProvider class at lib/Mcp/ delegates to existing
services via DI (MeetingService, TaskService, OR ObjectService).
- Tool ids namespaced as decidesk.{toolName}; OR's McpToolsService
rejects mismatches mechanically.
- Tool visibility: always expose; per-object auth enforced in
invokeTool() returning {isError: true, error: 'forbidden'} so the
LLM can explain.
- Every successful result includes a `sources` array (deep links)
capped at 20 for inline citation rendering in the widget.
- Six error codes: forbidden, not_found, invalid_state,
invalid_input, unknown_tool, internal_error.
Service container registration:
- Application.php registers alias
`OCA\OpenRegister\Mcp\IMcpToolProvider::decidesk` → the provider
class; OR's McpToolsService enumerates by alias prefix.
- No new composer dep — OR autoloads at runtime when installed,
same way decidesk's existing controllers already use
OCA\OpenRegister\Service\ObjectService.
Tests:
- 26 unit tests (tests/Unit/Mcp/DecideskToolProviderTest.php)
covering tool list shape, namespace enforcement, each tool happy
path, each tool's forbidden/not_found/invalid_state/invalid_input
paths, sources truncation at 20.
- Self-skipping integration tests (tests/Integration/Mcp/) for
end-to-end DI + service round-trips; require live Nextcloud +
OpenRegister.
- tests/Stubs/Mcp/IMcpToolProvider.php — interface stub loaded
by bootstrap-unit.php when the real interface isn't autoloadable
(i.e. CI without openregister installed).
- composer check:strict: ALL CHECKS PASSED (183 tests, 950
assertions, 37 skipped integration tests).
Static analysis suppressions:
- phpmd.baseline.xml: 12 entries for DecideskToolProvider complexity
(single-class design per D1; mitigation: extensive unit tests).
- phpstan.neon, psalm.xml: suppress `Undefined class` warnings for
the IMcpToolProvider interface (lives in openregister PR #1466,
not yet merged). Remove once openregister is bumped to a tag
shipping the interface.
Depends on openregister/ai-chat-companion-orchestrator (PR #1466).
feat(mcp-tools): DecideskToolProvider — first per-app IMcpToolProvider
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 469/469 | |||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ |
Coverage: 0% (0/115 statements)
Quality workflow — 2026-05-11 15:52 UTC
Download the full PDF report from the workflow artifacts.
Deferred-recovery bookkeeping pass on openspec/changes/. Marked 16 already-applied changes with builds/build.json (status=applied, marker=deferred-recovery): decidesk-manifest-v1, decidesk-store-migration, actionitem-analytics-declarative-migration, quorum-declarative-migration, quorum-guard-rewrite, quorum-service-deletion, p2-meeting-management-core-t2, p2-meeting-management-core-t3, p2-meeting-management-other-t1, p2-meeting-management-other-t2, p2-minutes-and-decisions-other-t2, p2-motion-and-voting-other-t1, p2-motion-and-voting-other-t3, p3-citizen-participation, p4-collaboration, p4-integration. Deleted openspec/changes/spec/ — a directory-naming typo duplicating quorum-guard-rewrite content. Archived 5 strategic deferrals (empty shells / no specs deltas) to archive/2026-05-11-<name>-deferred: - p3-document-management, p3-governance-bodies, p4-reporting-and-analytics, p4-standards-hardening (context-brief only, no specs/proposal/tasks) - decidesk-legacy-quality-cleanup (no specs/ delta) Archived 8 cleanly-validating applied changes to archive/2026-05-11-<name>: - p1-crud-operations, p1-dashboard-and-navigation, p1-schemas-and-data-model, p2-agenda-management, p2-meeting-management-core-t1, p2-motion-and-voting, p2-motion-and-voting-core-t2, p2-motion-and-voting-other-t1 Left open (validation warnings/errors blocking archive): everything in the quorum-* chain plus various p2-*/p3-citizen-participation/ p4-* with malformed deltas or missing specs directories. These need spec-content fixes before they can archive.
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 469/469 | |||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ |
Coverage: 0% (0/115 statements)
Quality workflow — 2026-05-11 17:00 UTC
Download the full PDF report from the workflow artifacts.
…180) Normalize 22 OpenSpec changes to the canonical Hydra strict format (per ADR-024 + ADR-032) and archive them to openspec/changes/archive/ under date prefix 2026-05-11-*. Normalization fixes: - Strip HTML comments that masked the requirement body - Convert `### REQ-XXX-N: title` / `### REQ-XXX-N — title` to `### Requirement: REQ-XXX-N — title` - Convert per-capability `## REQ-XXX: section` headers to a single top-level `## ADDED Requirements` per spec - Unwrap line-wrapped first paragraphs so SHALL/MUST is on line 1 of the requirement body (parser only inspects first body line) - Move flat `specs/spec.md` and root `specs.md` files into `specs/<capability>/spec.md` capability subfolders - Inject minimal `specs/<id>/spec.md` for manifest-version-bump and quorum-schema-declaration (proposals had no spec.md) - Convert `**GIVEN**`/`**WHEN**`/`**THEN**` paragraph scenarios into `#### Scenario:` blocks with bullet GWT lines Counts: - 22 changes normalized to strict format - 22 changes newly archived - 4 changes still failing (no specs at all — only context-brief.md + hydra.json scaffolding stubs; pipeline never produced spec content): - p2-meeting-management-core-t2 - p2-meeting-management-core-t3 - p2-motion-and-voting-other-t2 - p2-motion-and-voting-other-t3
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 469/469 | |||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ |
Coverage: 0% (0/115 statements)
Quality workflow — 2026-05-11 17:49 UTC
Download the full PDF report from the workflow artifacts.
…#182) Promote the Decisions index page to a richer manifest-driven config: upgrade config.columns from string shorthand to {key,label} objects (with widget/formatter hints and a hidden legalBasis column) and add config.actions ({id,label,...} objects — a navigate-handler View action and an emit-handler Publish action gated on the decidesk.decision.publish permission). The /decisions route already renders via CnPageRenderer (the app is at Tier 4 / CnAppRoot), so this is the page-config half of the json-manifest pilot. Also fixes a pre-existing manifest schema violation: the SettingsMenu menu entry used an unsupported "action": "user-settings" field (dead config — CnAppNav only handles route/href); point it at the existing Settings route instead.
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 469/469 | |||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ |
Coverage: 0% (0/115 statements)
Quality workflow — 2026-05-12 07:37 UTC
Download the full PDF report from the workflow artifacts.
* feat: adopt the Features & Roadmap menu Surfaces the in-product Features & Roadmap page (powered by OpenRegister's github-issue-proxy, UI from @conduction/nextcloud-vue) from the Settings section of the nav — manifest-driven, mirroring the procest/pipelinq/scholiq/openbuilt adoptions. - src/views/FeaturesRoadmap.vue — thin wrapper around CnFeaturesAndRoadmapView (repo / features / disabled from loadState() with fallbacks) - customComponents.js — register it as the `FeaturesRoadmap` custom component - manifest.json — add the `FeaturesRoadmap` custom page (route /features-roadmap) + a `FeaturesRoadmapMenu` entry in the settings section - bump @conduction/nextcloud-vue ^1.0.0-beta.30 → ^1.0.0-beta.35 (ships the Cn* roadmap family) Refs: ConductionNL/hydra#251 * chore: refresh package-lock.json for the @conduction/nextcloud-vue ^1.0.0-beta.35 bump
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 471/471 | |||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ |
Coverage: 0% (0/115 statements)
Quality workflow — 2026-05-12 10:50 UTC
Download the full PDF report from the workflow artifacts.
…stry (ADR-019) Adopts OpenRegister's pluggable integration registry (ConductionNL/openregister#1307) in decidesk: - main.js: installIntegrationRegistry() + registerBuiltinIntegrations() + registerXwikiIntegration() at bootstrap, so the registry is populated before any page mounts. - App.vue: the #sidebar-slot CnObjectSidebar now binds :use-registry and :exclude-integrations from objectSidebarState (the channel CnDetailPage pushes to), plus :custom-components; objectSidebarState gains useRegistry/excludeIntegrations. - New custom view MeetingIntegrations.vue (route /meetings/:id/integrations, registered in customComponents.js): a CnDetailPage with sidebar.useRegistry: true, so the host CnObjectSidebar renders one tab per registered integration provider — the built-in core tabs (Files / Notes / Tags / Tasks / Audit trail) plus the xWiki "Articles" leaf. - manifest.json: adds the MeetingIntegrations page entry. Verified locally against the integration-registry branches: the page renders, the sidebar shows all six tabs, and the Articles tab degrades to the AD-23 "reconnect connector" banner when the OpenConnector xwiki source isn't resolvable. Depends on the @conduction/nextcloud-vue pluggable-integration-registry stack (nextcloud-vue#202..#218) shipping a beta; until then the registry exports won't resolve against beta-30 and this PR stays in draft.
…ectly (#185) The header navigation renders app.svg on a dark background and expects a white monochrome icon (matching stock Nextcloud apps). It was using fill="currentColor"/#222 which rendered as a black silhouette.
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 471/471 | |||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ |
Coverage: 0% (0/115 statements)
Quality workflow — 2026-05-12 12:37 UTC
Download the full PDF report from the workflow artifacts.
* feat: distinct app icon (a gavel) — app.svg (white, dark header) * feat: distinct app icon (a gavel) — app-dark.svg (dark, light bg) * feat: distinct app icon (a gavel) — app-store.svg (Conduction hex)
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 471/471 | |||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ |
Coverage: 0% (0/115 statements)
Quality workflow — 2026-05-12 13:05 UTC
Download the full PDF report from the workflow artifacts.
Picks up the CnIndexPage store-backed self-fetch mode (nc-vue #223) so manifest type:"index" pages render their object collection, plus the columns[].formatter / .widget / .aggregate abstractions and pages[].config.filter.
chore(deps): bump @conduction/nextcloud-vue to ^1.0.0-beta.40
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ❌ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 471/471 | |||
| PHPUnit | ⏭️ | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ |
Quality workflow — 2026-05-12 21:11 UTC
Download the full PDF report from the workflow artifacts.
Bootstrap a Docusaurus documentation site under docs/ and the
journeydoc capture-driven docs scaffold (ADR-030) for Decidesk:
- Docusaurus site (docusaurus.config.js, package.json/lock, sidebars.js,
src/css + src/pages + src/components, static/img/logo.svg, intro.md),
adapted from the pipelinq/scholiq sites; English-only i18n per ADR-030,
onBrokenMarkdownImages: warn, editUrl -> tree/development/docs/.
- docs/static/CNAME -> decidesk.conduction.nl; .github/workflows/documentation.yml
switched to the shared reusable workflow with cname decidesk.conduction.nl
and push/PR triggers on development + documentation.
- tutorials/{user,admin}/ skeletons: 8 user stories + 3 admin stories
from the tutorial-page template (TODO bodies for the human author).
- tests/e2e/docs-screenshots.spec.ts capture-spec stub (one test block
per story) + a from-scratch playwright.config.ts with chromium and
docs-capture projects.
- screenshots output dir docs/static/screenshots/tutorials/{user,admin}/
(.gitkeep); .gitignore rules for docs/ build artifacts, i18n/nl, and
Playwright output.
Local docs build verified: npm ci --legacy-peer-deps && npm run build
succeeds.
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 471/471 | |||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ |
Coverage: 0% (0/115 statements)
Quality workflow — 2026-05-12 21:24 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 | ✅ | ✅ 471/471 | |||
| PHPUnit | ❌ | ||||
| Newman | ❌ | ||||
| Playwright | ⏭️ |
Coverage: 0% (0/115 statements)
Quality workflow — 2026-05-12 22:17 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 | ✅ | ✅ 471/471 | |||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ |
Coverage: 0% (0/115 statements)
Quality workflow — 2026-05-12 22:20 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 | ✅ | ✅ 471/471 | |||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ |
Coverage: 0% (0/115 statements)
Quality workflow — 2026-05-12 22:35 UTC
Download the full PDF report from the workflow artifacts.
Automated PR to sync development changes to beta for beta release.
Merging this PR will trigger the beta release workflow.