Skip to content

chore(release): promote development to beta (round 12 board look, batch 7) - #1768

Merged
rubenvdlinde merged 8 commits into
betafrom
development
Oct 17, 2026
Merged

rubenvdlinde merged 8 commits into
betafrom
development

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Promotes the round 12 board-look PRs merged since 2.96.0: facts meter row, actions column, restored schema test, search source, files-browser selection and side cards, page tabs and notice, conversation source, and per-scope list presentation with the entitySource enum fix (schema 2.121.0). Every PR passed the 3 required checks; the merge tree equals development's tree.

🤖 Generated with Claude Code

…1752)

* feat(facts): a meter entry, an amount against a limit drawn as a bar

`as: "meter"` on a facts entry shows "12 of 50" with a bar for quota cards.
Past the limit the bar is red and the text says so; without a positive limit
there is no bar. Adds `format: "bytes"` for sizes.

Assisted-by: ClaudeCode:claude-opus-5-5

* docs(facts): regenerate the reference page for the meter entry

Assisted-by: ClaudeCode:claude-opus-5-5

* docs(facts): regenerate the reference page after merging development

Assisted-by: ClaudeCode:claude-opus-5-5
* wip(table): actions column

Assisted-by: ClaudeCode:claude-opus-5-5

* feat(table): a column can show row actions as buttons

A column with widget: "actions" and widgetProps.actions: [<id or label>]
shows those of the page's row actions as inline buttons on every row, in
that order, where the action is visible for the row. A click runs the
action as its row menu entry does, emits action, and does not open the
row. The column does not sort.

Board DqPostvak ("Aan zaak koppelen", "Nieuwe zaak").

Assisted-by: ClaudeCode:claude-opus-5-5
A merge of #1731 resolved the version-test conflict in the schema spec by
keeping one side and dropped the nav.searchPlaceholder test #1713 had added
after it. This puts the test back as it was at d918cfc.

Assisted-by: ClaudeCode:claude-opus-5-5
)

* feat(index): a search index source over several schemas and files

entitySource: "search" searches one term over the kinds in
sourceConfig.kinds: OpenRegister schemas with _search (the reader sees what
they may read) and the reader's files through Nextcloud's unified search.
It draws All plus a quick filter per kind with its count, lists the results
with their kind and status, and opens a row at its href. The term is
sourceConfig.term, else the address's ?q=. A failing kind leaves the others.

resolveIndexSource(name, config) hands the page's sourceConfig to the
factory so a source can build its tabs from it; existing sources ignore it.

Board DqZoekresultaten.

Assisted-by: ClaudeCode:claude-opus-5-5

* docs(index): keep the search source's kind shapes out of a table-cell pipe for MDX

Assisted-by: ClaudeCode:claude-opus-5-5
…e selected file, and values in tones (#1751)

* feat(files-browser): the selection in the app's words, cards about the selected file, and values in tones

Assisted-by: ClaudeCode:claude-opus-5-5

* feat(files-browser): a row key may be a dotted path into the host's record

Assisted-by: ClaudeCode:claude-opus-5-5
…w a notice (#1758)

* wip(index): manifest page tabs and notice

Assisted-by: ClaudeCode:claude-opus-5-5

* feat(index): an index page can link its sibling pages as tabs and show a notice

config.pageTabs ([{ id?, label, route?, params?, query?, href?,
countFrom? }]) draws the sibling pages above the toolbar with the page-tab
strip a named source already uses: the current route's tab is marked, and
countFrom adds that list's count. The manifest's tabs win over a source's.
config.notice ({ text, variant? }) draws a note card under the list.

Boards DqPrivacy, DqContracten.

Assisted-by: ClaudeCode:claude-opus-5-5
#1757)

* feat(conversation): messages from a list, mapped parts, a reply action

The conversation widget reads its messages from a register list filtered on
the record, maps direction, channel, sender, time and body, shows them oldest
first with a loading state, names each message's direction for a screen
reader, and a reply can run an app action instead of posting to an endpoint
(board DqZaak, Contact tab).

Assisted-by: ClaudeCode:claude-opus-5-5

* docs(conversation): messages from a list and the reply action

Assisted-by: ClaudeCode:claude-opus-5-5

* docs: regenerate the component partials

Assisted-by: ClaudeCode:claude-opus-5-5

* docs(conversation): the loading prop and the channel

Assisted-by: ClaudeCode:claude-opus-5-5
…(schema 2.121.0) (#1736)

* wip(page-header): breadcrumb and meta under list, dashboard and settings titles

Assisted-by: ClaudeCode:claude-opus-5-5

* wip(page-header): dashboard widget subtitle, period on the description line

Assisted-by: ClaudeCode:claude-opus-5-5

* feat(page-header): breadcrumb and meta under list, dashboard and settings titles (schema 2.103.0)

CnPageHeader takes `breadcrumb` (one crumb or a list) and `meta`: under the
title it draws the crumbs, the title as the current crumb, a middle dot and
the note, with the markup and classes of the detail header's breadcrumb row
(a shared CnHeaderTrail), so there is one breadcrumb style. CnIndexPage,
CnDashboardPage and CnSettingsPage forward config.breadcrumb and
config.headerMeta; on an index page {total} and {shown} are the counts.

On a dashboard a widget card can carry `subtitle`, a muted line under its
title (CnWidgetWrapper `subtitle`), and `dateRange.placement: "description"`
puts the segmented period group at the end of the description line.

Schema 2.103.0: config.breadcrumb also takes a list of crumbs.

Boards DqZaaktypen, DqCatalogus, DqInstellingen, DqVthInstellingen,
DqAfdelingen, DqPrivacy, DqContracten, DqTermijnen, DqProcesanalyse,
DqDoorlooptijd.

Assisted-by: ClaudeCode:claude-opus-5-5

* docs(page-header): regenerate component reference pages

Assisted-by: ClaudeCode:claude-opus-5-5

* wip(index): scope presentation keys

Assisted-by: ClaudeCode:claude-opus-5-5

* wip(index): scope presentation, afterList, fixed preset filters

Assisted-by: ClaudeCode:claude-opus-5-5

* wip(index): explicit own presentation map; preset test expects fixedFilters

Assisted-by: ClaudeCode:claude-opus-5-5

* feat(index): a preset or a folder scope sets the list's presentation (schema 2.121.0)

A query preset may also set addLabel, headerButtons, breadcrumb,
headerMeta and afterList. A folder scope (its folder entry, or the
x-index block of the row a register-derived folder comes from) carries
every presentation key a preset sets, under the same names, and its value
wins over the page config a preset produced.

An index page takes config.afterList: widget definitions drawn as cards
after the list, in order, the counterpart of statRow.

The route query pairs that chose a preset reach the page as fixedFilters
and show no removable active-filter chip.

Boards DqWooVerzoeken, DqKlachten.

Assisted-by: ClaudeCode:claude-opus-5-5

* test(index): the named-source add label spec gives its fake page presented()

resolvedAddLabel reads addLabel through presented(), which lets a folder
scope or preset set it; the spec that calls the computed on a hand-made
context now provides it.

Assisted-by: ClaudeCode:claude-opus-5-5

* fix(index): the page's own footer note and add label still win over a named source's

effectiveFooterNote and resolvedAddLabel read the scope's value, else the
page's (which a preset may have set), else the named source's, without
calling presented(); the named-source specs that call them on a hand-made
context pass unchanged. The indexNamedSource spec is back to development's.

Assisted-by: ClaudeCode:claude-opus-5-5

* fix(schema): entitySource accepts the flowRuns, endpoint, search and users sources

The manifest schema allowed only flows and tasks, so a page using the
library's newer named sources failed validation (dossiq's DqPostvak on
endpoint). The enum now lists flowRuns, endpoint, search and users, and
config.sourceConfig is described (url, rowsPath, kinds, term, termQuery,
defaultGroup; still open to other keys). Part of schema 2.121.0, whose
hash is re-recorded.

Assisted-by: ClaudeCode:claude-opus-5-5
@rubenvdlinde
rubenvdlinde merged commit d01d6c5 into beta Oct 17, 2026
1 check passed
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