Repository navigation
Integrate dossiq batch b46: r31-r36 lines on nc-vue 24t2b - #4676
Merged
Merged
Conversation
DqHandhaving Classificatie (coordinator decision 26 Oct, the board is canon): behaviour as the matrix row (1-4), consequence as its column (A-D, zeer ernstig included) and "Vak C2 van 16", the cell they meet in, joined from the same two values. Config only: facts row parts with a map and a constant part. The matrix version stays as a muted line under them, so no fact is lost. Rendered with the real CnFactsWidget against this card's content: "Gedrag 2 / Gevolg C / Vak C2 van 16 / Matrixversie 2". The side card Dutch check skips one-character codes, which read the same in every language. Assisted-by: ClaudeCode:claude-opus-5-5
Once a case has a statutory term, CaseDeadlineFollowsTermListener owns its deadline; declaring the calculation a fallback stops rematerialise counting those cases as failures (23 of 75 after REFRESH-7). Assisted-by: ClaudeCode:claude-opus-5-5
…60px DqZoekresultaten r31: header and first cell text at 81.6 where the board has 76. Every column had a fixed width, so the table spread the spare width over all of them, the checkbox column too (65.6px). Status has no fixed width any more and takes the rest, as the board draws it. Assisted-by: ClaudeCode:claude-opus-5-5
DqTermijnen draws the dwangsom audit's case numbers as links ("2026-0018"),
as it draws the notices of default; live wrote them as plain text (r31
cell colour ink vs link). The column uses the built-in link widget to the
case; the row still opens the case.
Assisted-by: ClaudeCode:claude-opus-5-5
…the board names it Assisted-by: ClaudeCode:claude-opus-5-5
DqInspectie draws a note field under the question answered Nee and none under Ja; live drew one under every question (r31 'Werken de noodverlichting' inset and structure). The checklist run sets noteWhen to the stored no value; needs nextcloud-vue feat/checklist-note-when, before it every question keeps its note. Assisted-by: ClaudeCode:claude-opus-5-5
…ned it
r31 DqHandhaving Historie (structure flag): the side card listed every
"read" of the advice (Pieter Jansen opening the page five times),
where the board lists what happened to it ("Advies berekend",
Systeem · 3 okt 15:02). The card leaves read events out
(excludeActions), names create and update in words, and puts who and
when under the action (stacked rows, as DqTaak). Config and l10n only.
Assisted-by: ClaudeCode:claude-opus-5-5
…itles in text ink; light success fills Assisted-by: ClaudeCode:claude-opus-5-5
…oard Assisted-by: ClaudeCode:claude-opus-5-5
"Prestaties per zaaktype" listed every version of a case type as its own row (2x Woo-verzoek, 5x Omgevingsvergunning regulier). The breakdown adds the versions of one case type together, by the identifier they share, under the version with the most completed cases; each record still counts against its own version's target. The board draws three cases at risk and four case types: the risk table shows three with "View all" to the open cases by deadline, the breakdown pages by four, so no row is lost. Assisted-by: ClaudeCode:claude-opus-5-5
… board Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
r31 DqZaaktypeVelden: the matrix head read "zuiddrecht-vergunningen,
[object Object], ...": status names are language maps and a column was
labelled with the Nextcloud group id. Status names are now read in the
reader's language, and a group's column is labelled with the case type's
role types on that group ("Intaker / Vergunningverlener, ontvangen").
Assisted-by: ClaudeCode:claude-opus-5-5
…ttons, status in words Assisted-by: ClaudeCode:claude-opus-5-5
…language
r31 DqZaaktypeOverzicht Regels read "Als status {status} wordt": a status
name is a language map, and handed to the translation as an object it
left the placeholder standing. The rule choices now read a name or
title as text in the reader's language.
Assisted-by: ClaudeCode:claude-opus-5-5
…atuses r31 DqZaaktypeOverzicht Rechten: the card drew a compact table (13px heads, no inset, 25px rows) where the board draws the card data table with sort and filter heads, and "Behandelen" read "Array": a status name is a language map, cast to a string. The summary reads status names in the reader's language, and the card table takes `tableLook: data` with sortable and filterable heads. Assisted-by: ClaudeCode:claude-opus-5-5
r31 DqZaaktype Historie: each entry drew its moment beside the action, where the board draws the action with "who · when" under it. The side history card takes the audit trail's `stacked` layout. Assisted-by: ClaudeCode:claude-opus-5-5
…Weeks and caseType Assisted-by: ClaudeCode:claude-opus-5-5
… system operation paymentState and paymentStateCheckedAt are readOnly, and OpenRegister refuses a readOnly change on update outside a SystemOperationContext. The service account alone does not enter one, so every patch was refused, logged as a warning, and every case stayed null. The patch now runs through ObjectService::runAsSystem(). Needs openregister's readonly-is-stamped-by-system-operations fix. Assisted-by: ClaudeCode:claude-opus-5-5
…documents
DqSociaalDomein's Historie lists people's actions (a document viewed,
consent recorded); on :8080 it showed System jobs' "Zaak gewijzigd". The
card leaves the System actor out and labels a document view "Inzage
{file}" from the download audit row (needs nextcloud-vue
feat/audit-card-exclude-actors and openregister
feat/file-download-audit-names-the-file).
Assisted-by: ClaudeCode:claude-opus-5-5
DqZaakAssistent "Wat de assistent op deze zaak deed": the moment column read as a 15px/600 title, the user as its id, and the head had no sort or filter (r31: cells 15/600 vs 14/400, head 37.5 vs 42.5). The list sets rowTitle text, sortable and filterable, and reads decidedBy through the userName formatter (format user is not one). Assisted-by: ClaudeCode:claude-opus-5-5
The Woo case type names "Woo en informatie/Hoe we Woo-verzoeken behandelen" as its work instruction. The set now writes that page through OpenRegister's collectivesPages part, in the collective "Woo en informatie" that the Woo team's group can read. The Werkinstructie card then opens a page that exists. Assisted-by: ClaudeCode:claude-opus-5-5
…codes Coordinator call after r31: DqZaaktypeVelden lists fields by what a person reads (Bouwkosten), not their name (bouwkosten), and draws the choice list as framed options with a code (Woning WON). - propertyDefinition 1.9.0 (fragment 69-field-title-and-option-codes): `title` (translatable) and `enumCodes` (option value to code). - The Fields tab's Field column reads the title in the reader's language, else the name (formatter fieldTitle). - The choice list card takes nextcloud-vue's field-list `options` variant with its codes from `enumCodes`. Needs nextcloud-vue feat/field-list-options-look (24t2b). Assisted-by: ClaudeCode:claude-opus-5-5
r31 DqZaaktypeOverzicht Regels gapBelowTitle 27.2 vs 29.5 (probed: rows 16.2 under the title against the board's 18.5). The card content takes 0.15em off for a first line of body text; the rule rows set their own padding, so a board card that opens on them pads 12px. Assisted-by: ClaudeCode:claude-opus-5-5
…per role r31 DqZaaktypeVelden matrix gapBelowTitle 41 vs 43.8 came from its heads (probed): the board draws a chevron on Veld and a 22px funnel on each role, live drew plain heads. The Field head now sorts by field, each role head filters its column on the states it holds (Verplicht, Bewerken, Alleen lezen, Verborgen), with the boards' 22px funnel. Assisted-by: ClaudeCode:claude-opus-5-5
…g names each match
DqNieuweZaakDubbel (Woo-verzoek v2, duplicatePolicy block, coordinator
may override):
- No reason field: duplicatePolicyFor normalised the intake declaration a
second time, read `duplicatePolicy` (by then the string 'block') as the
raw `{ policy }` block and answered warn with no override. Every block
became a warning anyone could pass without a reason. It now uses the
declaration fetchIntakeRequirements already normalised.
- Each match names its number, case type, requester and receipt date
("2026-4867 · Woo-verzoek · Henk Visser · ontvangen 25 okt"): the cases
are read with their case type inline (`_extend=caseType`) and the meta
line falls back to the number when a part is missing.
- The board's eyebrow, "Gevonden op Aanvrager en Onderwerp (65%)", the
reason hint and the footnote, through CnDuplicateWarning's new props
(nc-vue feat/duplicate-warning-board-parts); without that release they
are ignored and only the reason field and the meta line change.
Assisted-by: ClaudeCode:claude-opus-5-5
"Keuzelijst: {name}" showed the field's name (soortBouwwerk). The title
token now runs the fieldTitle formatter, as the Field column does:
the title in the reader's language, else the name.
Needs nextcloud-vue fix/following-card-title-uses-app-formatters (24t2b).
Assisted-by: ClaudeCode:claude-opus-5-5
…tegrate/dq-b46
The organisations index lists only the user's own memberships, and a partner is somebody else's organisation, so the share select was always empty (DqZaakSamenwerken). Partners come from the organisations search endpoint, through one helper the dialog and the sharing tab share. Assisted-by: ClaudeCode:claude-opus-5-5
…owser catalogues rebuilt Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
Coordinator decision 26 Oct (overrulable by Ruben), DqNieuweZaakDubbel: the board shows one match where live showed three, because Henk Visser's two other open requests matched on the requester alone (0.37 against a 0.3 cut-off). The case dedup rules now weigh the permit application reference 0.6 (a DSO re-delivery is still proof on its own), the requester 0.2 and the title 0.05 exact plus 0.15 spelling, with the cut-off at 0.6. With OpenRegister leaving out a rule neither case holds (openregister fix/dedup-skip-rules-both-sides-lack), a Woo request scores the requester with an unrelated title about 0.56, with a similar title about 0.64 and with the same title 1.0. case moves to 1.56.0 so an existing instance re-imports the schema. Before the OpenRegister change lands, the permit rule still counts on every case, so a case without a permit reference cannot reach 0.6 and no Woo duplicate is flagged: land the two together. Assisted-by: ClaudeCode:claude-opus-5-5
DqZaaktypeStatussen draws the decision type "Weigering omgevingsvergunning" of Omgevingsvergunning regulier v4 without publication. The set declared that it was published. Assisted-by: ClaudeCode:claude-opus-5-5
decision-letter-source moved the base register's caseType from 1.23.0 to 1.24.0, a number 98-case-type-side-cards already holds (and 1.23.0 is 96-case-type-list-presentation's). The base takes the next free number, 1.44.0, so every caseType version is declared once and the merged schema moves past 1.43.0. Digest recorded. Assisted-by: ClaudeCode:claude-opus-5-5
…ction DqHandhaving's Zaak card has an Inspectie row, and its violation card reads from the inspection. The advice had none. The set now writes Jamal's inspection report on Molenweg 4 (a building put up without a permit, not conform, follow-up required) before the advice, and the advice names it. Assisted-by: ClaudeCode:claude-opus-5-5
…nent DqZaaktypeStatussen Resultaten: "Verleend · Bewaren" stood with an empty Bewaartermijn where the board reads "Permanent". The column names what an empty period means by the archival action (CnDataTable emptyValueBy, nc-vue feat/data-table-empty-value-by): kept or kept permanently reads "Permanent", a destroyed result without a period stays empty. Config and l10n only; without the library change the cell stays empty as before. Assisted-by: ClaudeCode:claude-opus-5-5
case 1.56.0 is case-deadline-calculation-is-a-fallback's (merged first in b46), so the dedup threshold fragment takes 1.57.0; digest recorded. Assisted-by: ClaudeCode:claude-opus-5-5
The Historie card on DqSociaalDomein leaves out rows by System. The
board draws two rows by Fatma Kaya: the consent she recorded on the day
of receipt ("Toestemming vastgelegd") and the medical report she opened
three days later ("Inzage medisch verslag"). The set now writes both
through OpenRegister's auditEntries part.
Assisted-by: ClaudeCode:claude-opus-5-5
DqAfdelingen names a team's lead under its name ("teamleider Marleen
Postma"). No team carried one. Team Vergunningen now names Marleen
Postma and Woo en informatie names Anouk Bakker.
Assisted-by: ClaudeCode:claude-opus-5-5
field-titles-and-option-codes gives the Field column the fieldTitle formatter (the title in the reader's language, else the name). Assisted-by: ClaudeCode:claude-opus-5-5
# Conflicts: # lib/Settings/example-sets/zuiddrecht.json
…dvice that names it The keyed merge of exset-queue-round appended its new rows at the end of the lists; inspectierapport-molenweg-4 must be written before lhs-advies-molenweg-4 refers to it (ZuiddrechtFragmentInstalls). The new rows now sit where exset-queue-round places them. Assisted-by: ClaudeCode:claude-opus-5-5
rubenvdlinde
requested review from
Rem-Dam,
SudoThijn,
WilcoLouwerse,
bbrands02,
remko48 and
rjzondervan
as code owners
October 26, 2026 15:21
Contributor
Quality Report — ConductionNL/dossiq @
|
| 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 | ❌ | ✅ 658/658 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| lockfile sync | ✅ | ||||
| PHPUnit | ❌ | ||||
| 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-26 15:34 UTC
Download the full PDF report from the workflow artifacts.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dossiq batch b46: the "b46 candidates" lines from DQ-L1, L2, L3b, L4, L6, L7, L8, L9 and L10, the DQ-DATA/DQ-DATA3 example-data rounds, and INT-OR's payment-state projection as system. It builds on development 400beab (#4674).
Needs nextcloud-vue 24t2b. Many lines use 24t2b features: L2 Flows/Werkinstructie, L8 options and titles, L10 duplicate warning, L4 checklist note. This PR is tested against the 24t2b integration branch at 5fb6f85bf2, built and packed locally and unpacked into node_modules. It should merge after 24t2b; the bump to the 24t2b npm release follows in b47.
Heads (merge order, --no-ff)
r31/field-titles-and-option-codesd3206abr31/rules-card-starts-under-titlee79d9b2r31/field-rights-matrix-head-controlsa1e2695r31/case-deadline-calculation-is-a-fallback99117f7r31/search-status-column-takes-the-restf89adear25/termijnen-audit-case-link7bed530r31/term-card-board-orderf7db61bfix/r31-settings-advanced-board1a97d24r30/lhs-classification-codes5050822r31/lhs-history-events3f5453cr25/doorlooptijd-breakdown-per-type-and-board-rows0045b53r31/exset-data-round9a45c12r31/field-rights-matrix-namesc5df931r31/rule-summary-namesc8f145er31/rights-summary-data-table98325cfr31/case-type-side-cards60725c0r31/flows-and-term-board12f5b8ar31/social-history-people-and-files21ba9befix/payment-state-projection-as-systemd07b25er35/checklist-note-on-no86b5ecer36/ai-log-board-table3d05c5dr31/duplicate-warning-board664f685r31/exset-data-round9a45c12r26/share-dialog-partner-orgs2848bbbr31/exset-regulier-v4-board-details120533ar31/case-dedup-threshold4820cb6r31/result-retention-permanent25e5140r31/exset-queue-roundb6b0c33Integration changes
php tools/schema-version-digests.phpafter the bumps.Verified locally
COMPOSER_PROCESS_TIMEOUT=0 composer check:strict, run alone: ALL CHECKS PASSED, exit 0. PHPUnit: 9924 tests, 0 errors, 0 failures.Prepared by a dossiq integration lane (AI-assisted, Claude Code); the coordinator merges.