Skip to content

train: land 22 ready PRs (10 Oct) - #3718

Merged
rubenvdlinde merged 183 commits into
developmentfrom
train/2026-10-10-a
Oct 11, 2026
Merged

rubenvdlinde merged 183 commits into
developmentfrom
train/2026-10-10-a

Conversation

@rubenvdlinde

@rubenvdlinde rubenvdlinde commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Merge train. Each PR head below is merged with --no-ff at the sha shown, so GitHub marks each PR merged when this lands. Do not squash.

Included heads (22 distinct PRs; the title says 23 as the coordinator counted)

#3558 09a35f6, #3567 baf0dbe, #3581 64d5ca6, #3597 5a69caf, #3564 c685d40, #3576 032607d, #3577 01da6a9, #3578 c462f95, #3598 9d26e7d, #3595 8134caf, #3610 7e77938, #3611 a299ceb, #3606 0ec2264, #3604 b75083c, #3614 6405d19, #3615 c4774a3, #3620 9899764, #3623 157a452, #3639 724e0f0, #3649 96a276a, #3633 365f8ac, #3631 81c61bd.

Excluded

#3608, #3632, #3624, #3628, #3613, #3625, #3629, #3583, #3607, #3605, #3612, #3616, #3622, #3627 (stacked on #3628), #3641, #3652, #3655.

Conflicts and resolutions

Verified

  • composer check:strict before the final development merge: lint, phpcs, phpmd, psalm, phpstan clean; PHPUnit had 2 failures (catch ceiling, fixed here; permit termijn coverage, inherited, addressed by fix(termijn): parking permit case types start their terms; SLA caption test follows the board #3675 which is merged in). Chain exit 1 at that point.
  • php vendor/bin/phpunit --no-coverage on the final head: exit 0 (7590 tests, 77 skipped).
  • npx vitest run --maxWorkers=2 before the development merge: exit 0 (3253 tests); after it, 5 touched specs exit 0.
  • npm run lint: exit 0. test:l10n and check:l10n-js: green.
  • No conflict markers.

Twelve schemas declare a curated x-openregister-mcp block, so OpenRegister
derives 20 read tools (dossiq.case.search, dossiq.statusRecord.search, ...).
The hand-written DossiqToolProvider and its helpers are deleted, so nothing
shadows the derived tools. OpenRegister RBAC is the only gate.

Archives dossiq-mcp-adoption; live tasks 4.1-4.4 stay owed (decision 139).
A change outside properties/required/authorization only reaches an instance
when the schema version moves (SchemaVersionFloorTest). Digests regenerated.
…ith where each was found

GET /api/cases/{id}/woo/sources lists files, cases and integriq's Microsoft 365
source (not connected, with the reason, when integriq is absent). POST
.../woo/sources/search dispatches integriq's DocumentSearchRequestedEvent
(contract stub per integriq connectors-graph-document-search D3), 50 rows per
source with the rest counted. POST .../woo/sources/add copies a file the caller
can read into the case folder, fetches an integriq hit, or links another case's
document, each pick answered on its own. provenance on informatieobject (copy)
or on this case's zaakinformatieobject join (link).

woo-requests-gather-documents-from-sources tasks 1.1, 1.2, 2.1, 2.2
…nd workload figures

First IMcpScannableServices opt-in (DossiqScannableServices, registered under
OpenRegister's per-app alias). Curated #[McpTool] reads: getDeadlineDashboard,
getDoorlooptijdMetrics, getKpiOverview, getWorkload (ReportingTools),
listAvailableTransitions (CaseTools) and listOverdueComplaints on
ComplaintService, a projection that never carries the complainant. Each tool
runs the gate its controller runs, then calls the owning service.
…creens.md for the touched specs and the archived change
Header action woo-gather-documents on CaseDetail (Woo request case type, not
archived) opens GatherDocumentsDialog: terms, a period, the sources as
checkboxes with the reason for one that is not connected, results grouped per
source, Add selected with each refusal kept on screen. Platform sources go
through Nextcloud unified search with the provider and filters GET
/woo/sources names; integriq's through dossiq. e2e spec written, run owed
(live pass, decision 139). Board: design-system#180.

woo-requests-gather-documents-from-sources task 3.1
# Conflicts:
#	lib/Settings/dossiq_register.json
#	lib/Settings/register.d/60-termijnbewaking.json
#	tests/schemas/schema-version-digests.json
# Conflicts:
#	lib/Settings/dossiq_register.json
#	lib/Settings/register.d/60-termijnbewaking.json
#	tests/schemas/schema-version-digests.json
…at went out

woo-delivered-set-is-a-record tasks 1.1-1.3, 2.1, 2.3 and 3.1 (rows 19.15,
19.16). publish() writes a wooDeliveredSet before the publication exists,
with each delivered file's SHA-256 and a set hash, freezes it with the
publication id and deletes it when OpenCatalogi refuses; no record, no
delivery. WooDeliveredSetGuard refuses every change to a frozen set and to
the assessments it names, except the first withdrawnAt stamp. A second
delivery supersedes the first; a withdraw keeps it frozen. GET
/api/cases/{id}/woo/delivered-sets/{setId}/verify and occ
dossiq:woo:verify-delivered-set recompute every hash; an unreadable file is
missing, never a match.

Red: dq-l10-logs/red-deliveredset.log, red-publish-set.log. Register 0.20.24.
remove-casetask task 7.1, on decision 144. Each step is one engine Task: the
step is its taskKey, the tenant its organisation and objectUuid, and pending,
in_progress and completed map to available, active and completed; a skipped
step is terminated with the outcome skipped. OnboardingSteps opens, reads and
completes them through the engine's import, inbox and completion services.
A tenant's legacy tenantOnboardingTask rows are carried onto the engine once,
the first time an admin opens its onboarding, with completedBy, completedAt
and blockedReason in the task metadata; the rows stay as written and the
schema describes them as a frozen record (1.1.0, register 0.20.24).

Gate 23 reports nothing: the onboarding files consume OpenRegister's task and
sit in ADR-004 beside the other consumers.
Step 5 of tenancy-onto-openregister-organisation (REQ-TOO-004). The Tenants
and TenantDetail pages, the TenantsMenu entry, the tenant deep link and the
two menu layouts' waivers for it are removed: they administered dossiq's own
tenant store, which retired. A tenant is an OpenRegister organisation. The
vitest and e2e pins that named the entry follow.
…tch, demo rows, 503 on an unreadable store, page counts, not a search hit
# Conflicts:
#	openspec/specs/woo-case-type/spec.md
@rubenvdlinde rubenvdlinde changed the title train: land 23 ready PRs (10 Oct) train: land 22 ready PRs (10 Oct) Oct 11, 2026
@rubenvdlinde rubenvdlinde changed the title train: land 22 ready PRs (10 Oct) train: land 23 ready PRs (10 Oct) Oct 11, 2026
@rubenvdlinde rubenvdlinde changed the title train: land 23 ready PRs (10 Oct) train: land 22 ready PRs (10 Oct) Oct 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/dossiq @ 2176aa9

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 ✅
check-debt-ratchet ❌
check-types-e2e ✅
composer ✅ ✅ 109/109
npm ✅ ✅ 659/659
app:check-code ⏭️
info.xml ✅
REUSE ❌
lockfile sync ✅
PHPUnit ❌ 7586/7586 · 4 skipped (no test failed, the job failed for another reason — see its log)
Newman ⏭️
Playwright ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development.
Hydra gates ❌

Quality workflow — 2026-10-11 06:33 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit 062087a into development Oct 11, 2026
10 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/dossiq @ 035eab2

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 ✅
check-debt-ratchet ❌
check-types-e2e ✅
composer ✅ ✅ 109/109
npm ✅ ✅ 659/659
app:check-code ⏭️
info.xml ✅
REUSE ❌
lockfile sync ✅
PHPUnit ❌ 7590/7591 · 4 skipped
Newman ⏭️
Playwright ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development.
Hydra gates ❌

Quality workflow — 2026-10-11 08:58 UTC

Download the full PDF report from the workflow artifacts.

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.

1 participant