Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1508 commits
Select commit Hold shift + click to select a range
42b105b
docs(openspec): adopt authored change specs from feature branches (ar…
rubenvdlinde Jul 10, 2026
9107a57
fix(appstore): licence agpl -> EUPL-1.2 (from fix/appstore-metadata; …
rubenvdlinde Jul 10, 2026
9e0f1ff
Merge fix/woo-520-mariadb-cast-portability (PR #338): portable SELECT…
rubenvdlinde Jul 10, 2026
97d6b5f
fix(icon): carry the white fill on the <svg> element, not inner nodes
rubenvdlinde Jul 10, 2026
cea3412
Merge pull request 'fix: root-level fill on openregister app.svg for …
Jul 10, 2026
b0a7e39
feat(object): persist client-supplied @self.geo on create and update
rubenvdlinde Jul 11, 2026
63547d1
Merge pull request 'feat(object): persist @self.geo on create + updat…
Jul 11, 2026
9d09270
chore(deps): nc-vue beta.190 + reproducible dist builds
rubenvdlinde Jul 12, 2026
a57d5c5
build(vue): adopt beta.190 and standardise the local-lib override (#344)
rubenvdlinde Jul 12, 2026
7c4dd8c
fix(composer): never autoload the nextcloud/ocp stubs at runtime
rubenvdlinde Jul 12, 2026
f8a7b09
fix(composer): drop the OCP autoload mapping entirely, not just from …
rubenvdlinde Jul 12, 2026
c396fb0
feat(schemas): cascade-delete a schema with its objects, leaving no o…
rubenvdlinde Jul 12, 2026
569d4d2
Merge remote-tracking branch 'origin/development' into feat/schema-de…
rubenvdlinde Jul 12, 2026
06a8679
Merge pull request #347: feat(schemas): cascade-delete a schema with …
Jul 12, 2026
280cea9
fix(tests): register the OCP stubs in the test bootstrap, not composer
rubenvdlinde Jul 12, 2026
3696ffa
Merge pull request 'fix(composer): never autoload the nextcloud/ocp s…
Jul 12, 2026
fd8459a
fix(magic-mapper): emit ISO-8601 for format:date-time on the read pat…
Jul 12, 2026
7d84f91
feat(credential-broker): add the fleet providers to the catalogue (#348)
Jul 12, 2026
1484d82
feat(credential-broker): mount the credential wallet in personal sett…
Jul 12, 2026
08a77f8
feat(credential-broker): allow github POST /repos/*/pulls (retires Op…
Jul 12, 2026
044faee
wip: public API CORS + anon rate limit, credential-provider catalogue…
rubenvdlinde Jul 12, 2026
e176845
Merge remote-tracking branch 'origin/development' into chore/ncvue-be…
rubenvdlinde Jul 12, 2026
c5f06ff
docs(openspec): scholiq market deep-research gap wave — 1 evidence-ba…
rubenvdlinde Jul 12, 2026
6e72055
Merge pull request 'openregister: notification delivery windows spec …
Jul 12, 2026
e0f8e01
docs(openspec): add or-mcp chain — schema dialect, derived tool provi…
rubenvdlinde Jul 12, 2026
c7782a1
Merge pull request 'openregister: or-mcp chain specs — schema dialect…
Jul 12, 2026
d09ce59
feat(notifications): per-user delivery windows, durable queued digest…
rubenvdlinde Jul 12, 2026
54695f8
Merge pull request 'openregister: notification delivery windows + dur…
Jul 12, 2026
8c61869
feat(mcp): x-openregister-mcp schema dialect + validator (ADR-063)
rubenvdlinde Jul 12, 2026
c4f0df2
docs(openspec): archive or-mcp-schema-dialect
rubenvdlinde Jul 12, 2026
e744418
Merge pull request 'openregister: x-openregister-mcp schema dialect +…
Jul 12, 2026
af8d110
feat(mcp): schema-derived tool provider — {app}.{schema}.{verb} on bo…
rubenvdlinde Jul 12, 2026
378163d
docs(openspec): archive or-mcp-derived-tool-provider
rubenvdlinde Jul 12, 2026
04a6d1f
Merge pull request 'openregister: schema-derived MCP tool provider (A…
Jul 12, 2026
4b407ad
fix: eliminate top three log-noise sources (19k warnings/2h)
rubenvdlinde Jul 12, 2026
195a5fb
feat(mcp): #[McpTool] attribute + reflection scanner for service tool…
rubenvdlinde Jul 12, 2026
bb7c9de
docs(openspec): archive or-mcp-tool-attribute
rubenvdlinde Jul 12, 2026
ebedbdd
feat(audit): add unified cross-app audit query endpoint (v2)
rubenvdlinde Jul 12, 2026
200b8a2
fix(mcp): point @spec tags at canonical main specs, not archived chan…
rubenvdlinde Jul 12, 2026
669162e
Merge pull request 'openregister: McpTool attribute + reflection scan…
Jul 12, 2026
587d658
fix: magic-table forced-sync loop + Pass 2 map-miss log noise
rubenvdlinde Jul 12, 2026
b288df3
feat: scoped SystemOperationContext for trusted user-less operations
rubenvdlinde Jul 12, 2026
a86670b
test: stub findMissingColumns in MagicTableHandlerTest + phpcs alignment
rubenvdlinde Jul 12, 2026
425e8e2
Merge fix/log-noise-phase2 (test stub + alignment now on both branches)
rubenvdlinde Jul 12, 2026
5755c32
Merge pull request 'fix: silence the three loudest log-noise sources …
Jul 12, 2026
901e004
Merge pull request 'fix: magic-table forced-sync never converges + Pa…
Jul 12, 2026
04ad2ee
Merge pull request 'feat: SystemOperationContext — trusted scope for …
Jul 12, 2026
ca392a5
fix: honour SystemOperationContext at the EARLY anonymous RBAC guard
rubenvdlinde Jul 13, 2026
99c3d1b
Merge pull request 'fix: SystemOperationContext must gate the EARLY a…
Jul 13, 2026
37febbf
docs(openspec): archive notification-delivery-windows + sync canonica…
rubenvdlinde Jul 13, 2026
b893e15
Merge pull request 'openregister: archive notification-delivery-windo…
Jul 13, 2026
1b0f082
fix: add missing hydrate() to schema-versioning entities
rubenvdlinde Jul 13, 2026
65d32cc
Merge pull request 'feat(audit): public query endpoint for app audit …
Jul 13, 2026
f949403
Merge pull request 'fix: schema-versioning entities never defined hyd…
Jul 13, 2026
4904512
feat(export): add PDF format to ExportService (objects + register exp…
rubenvdlinde Jul 13, 2026
ad1de4f
Merge remote-tracking branch 'origin/development' into wip/export-pdf…
rubenvdlinde Jul 13, 2026
8a48b16
Merge pull request 'feat(export): PDF export format for ExportService…
Jul 13, 2026
fb901fd
refactor(magic-mapper): drop issue-tagged comment on metadata cast
WilcoLouwerse Jul 13, 2026
e7286c0
fix(mcp): forward tool annotation hints through McpProviderBridge (cl…
rubenvdlinde Jul 13, 2026
42896a0
fix(mcp): emit per-verb scope from SchemaDerivedToolProvider (ADR-063…
rubenvdlinde Jul 13, 2026
46aa2c6
Merge pull request 'openregister: forward MCP tool hints + emit per-v…
Jul 13, 2026
6d92a25
fix(schema): adopt nc-vue's shared schema API contract; a breaking ed…
rubenvdlinde Jul 13, 2026
68c8743
Merge pull request 'fix(schema): adopt nc-vue shared schema API contr…
Jul 13, 2026
b0f574e
refactor(magic-mapper): drop issue-tagged comment on metadata cast (#…
Jul 13, 2026
a60d751
perf(db): kill the magic-table scan N+1 — 1,010 queries per bare-UUID…
rubenvdlinde Jul 13, 2026
330ff13
Merge pull request 'perf(db): eliminate the magic-table scan N+1 in f…
Jul 13, 2026
0df83ed
docs(openspec): add or-mcp-attribute-hints ff change
rubenvdlinde Jul 13, 2026
6917403
feat(mcp): optional hint/scope params on #[McpTool] forwarded to both…
rubenvdlinde Jul 13, 2026
ce4fa8e
docs(openspec): archive or-mcp-attribute-hints
rubenvdlinde Jul 13, 2026
10e605c
Merge pull request 'openregister: optional hint/scope params on #[Mcp…
Jul 13, 2026
8d38897
fix(schema): related-schema relations could never be saved (json colu…
rubenvdlinde Jul 13, 2026
7ef4233
Merge pull request 'fix(schema): related-schema relations could never…
Jul 13, 2026
e47957e
fix(schema): retype a relation's column from json to VARCHAR when it …
rubenvdlinde Jul 13, 2026
8db8f3f
Merge pull request 'fix(schema): self-heal a relation column from jso…
Jul 13, 2026
1ac3bdb
perf(registers): kill three N+1s behind the registers-with-stats endp…
rubenvdlinde Jul 13, 2026
66230d3
Merge pull request 'perf(registers): kill three N+1s behind the regis…
Jul 13, 2026
e9f6ae7
fix(registers): magic-table existence check matched zero tables (per-…
rubenvdlinde Jul 13, 2026
003e5fe
Merge pull request 'fix(registers): magic-table existence check match…
Jul 13, 2026
a312e4c
perf(registers): derive register object totals from the per-schema co…
rubenvdlinde Jul 13, 2026
6f9f188
Merge pull request 'perf(registers): derive register object totals fr…
Jul 13, 2026
66ee7b8
fix(db): chunk batched IN() lists — 1,233 schema ids exceeded the 100…
rubenvdlinde Jul 13, 2026
2f66210
Merge pull request 'fix(db): chunk batched IN() lists — 1,233 schema …
Jul 13, 2026
f9110f3
docs(openspec): add property-level-read-rbac ff change
rubenvdlinde Jul 13, 2026
3a10fd6
feat(rbac): strip writeOnly + read-authorized properties on object re…
rubenvdlinde Jul 13, 2026
fd7ecd1
docs(openspec): archive property-level-read-rbac
rubenvdlinde Jul 13, 2026
c8d5adb
Merge pull request 'openregister: strip writeOnly + read-authorized p…
Jul 13, 2026
c9b010f
feat(security): honour JSON Schema writeOnly at the render boundary —…
rubenvdlinde Jul 13, 2026
200d606
feat(security): honour JSON Schema writeOnly at the render boundary (…
Jul 13, 2026
d2808e9
feat(reports): scheduled recurring report exports — Files delivery + …
rubenvdlinde Jul 13, 2026
02b5aed
Merge remote-tracking branch 'origin/development' into wip/scheduled-…
rubenvdlinde Jul 13, 2026
8ab22b0
Merge pull request 'feat(reports): scheduled recurring report exports…
Jul 13, 2026
495c0df
perf(serializer): batch schema resolution — 1,231 find() queries beco…
rubenvdlinde Jul 14, 2026
40378fa
Merge pull request 'perf(serializer): batch schema resolution in seri…
Jul 14, 2026
627ba2d
feat(reports): scheduled report email delivery — deliveryMode files|e…
rubenvdlinde Jul 14, 2026
c6cce11
docs(openspec): archive scheduled-report-email-delivery, merge canoni…
rubenvdlinde Jul 14, 2026
0f3cfc2
Merge origin/development into wip/scheduled-report-email-delivery
rubenvdlinde Jul 14, 2026
b4824af
Merge pull request 'feat(reports): scheduled report email delivery — …
Jul 14, 2026
380bd28
fix(security): extend #380 write-only redaction to the list read path…
rubenvdlinde Jul 14, 2026
0c02562
fix(security): extend #380 write-only redaction to list read paths + …
Jul 14, 2026
427b0f6
perf(read-path): render single reads once, batch inverse resolution, …
rubenvdlinde Jul 14, 2026
5764bf1
docs(openspec): optimize-read-path-performance change
rubenvdlinde Jul 14, 2026
4d8bf62
perf(audit): batched multi-row audit inserts + one-pass hash-chain se…
rubenvdlinde Jul 14, 2026
81ffccb
fix(bulk): repair dead bulk-save classification; batched audits + rea…
rubenvdlinde Jul 14, 2026
dedbf7b
perf(validation): memoize validator and prepared schema per schemaId:…
rubenvdlinde Jul 14, 2026
e68edc0
perf(listeners): cache the reverse-FK index across requests with sche…
rubenvdlinde Jul 14, 2026
6382b3f
docs(openspec): optimize-write-path-performance change - proposal, de…
rubenvdlinde Jul 14, 2026
a102972
perf(audit): write cascade context in the initial INSERT and add bulk…
rubenvdlinde Jul 14, 2026
019e37c
perf(db): batched soft delete across magic tables via softDeleteMulti…
rubenvdlinde Jul 14, 2026
4aa21c1
perf(delete): batch legacy cascade and eliminate redundant lookups in…
rubenvdlinde Jul 14, 2026
0ad8336
perf(objects): bulk delete batch-resolves scopes with one cross-table…
rubenvdlinde Jul 14, 2026
33b4329
chore(lint): drop stale @method find() annotations shadowing the real…
rubenvdlinde Jul 14, 2026
b2d4f02
docs(openspec): optimize-delete-path-performance change
rubenvdlinde Jul 14, 2026
47e68d0
feat(import): migration mapping packs — reusable source-format→schema…
rubenvdlinde Jul 14, 2026
44b50e6
Merge remote-tracking branch 'origin/development' into wip/migration-…
rubenvdlinde Jul 14, 2026
84497a4
wip: preserve in-progress work (monthly spend limit hit 2026-07-14)
juanclaude-conduction Jul 14, 2026
6bfed3e
docs(spec): add @spec traceability tags on the new batched audit APIs
rubenvdlinde Jul 14, 2026
3dcd915
chore(quality): clear PHPMD/PHPStan findings in read-path files
rubenvdlinde Jul 14, 2026
e4cf4ae
chore(openspec): retarget @spec tags to canonical spec after archivin…
rubenvdlinde Jul 14, 2026
19ca9de
fix(import): flush batched notify_push collection events on import co…
rubenvdlinde Jul 14, 2026
08ab98b
refactor(realtime): remove orphaned DB-backed realtime change feed
rubenvdlinde Jul 14, 2026
39c7015
docs(openspec): add complete-live-updates change
rubenvdlinde Jul 14, 2026
6a8d2d0
fix(webhooks): setPayloadArray silently dropped the payload via named…
rubenvdlinde Jul 14, 2026
47ba1fe
perf(webhooks): cached interception fast path + 2s timeout cap on req…
rubenvdlinde Jul 14, 2026
813e67f
perf(search): memoize recording mode and defer search-trail writes pa…
rubenvdlinde Jul 14, 2026
08991ef
perf(objects): resolve register/schema once per request; drop fake gz…
rubenvdlinde Jul 14, 2026
14edca7
docs(approval-chains-declarative): mark tasks complete after audit
rubenvdlinde Jul 14, 2026
6c7c262
style(notifications): clear pre-existing PHPCS errors blocking check:…
rubenvdlinde Jul 14, 2026
e80d818
Merge pull request 'feat(import): migration mapping packs — declarati…
Jul 14, 2026
f6fc225
feat(archival,observability): revive OR dead capabilities
rubenvdlinde Jul 14, 2026
4c9d9a2
fix(approval-chains): register x-openregister-approval-chains in Sche…
rubenvdlinde Jul 14, 2026
cc7e847
feat(credential): app-side injection — generic inject-only providers …
rubenvdlinde Jul 14, 2026
54e0ca7
test(archival,observability): prove the revived capabilities actually…
rubenvdlinde Jul 14, 2026
6e3da95
test(approval-chains): vocabulary round-trip test + phpcs autofix
rubenvdlinde Jul 14, 2026
abcfd3d
Merge pull request 'openregister: revive-or-dead-capabilities (apply)…
Jul 14, 2026
3efe0a4
refactor(objects): drop orphaned PerformanceHandler dependency; fix m…
rubenvdlinde Jul 14, 2026
c8cb9d5
Merge pull request 'openregister: approval-chains-declarative (apply)…
Jul 14, 2026
bf07cd3
docs(openspec): archive approval-chains-declarative
rubenvdlinde Jul 14, 2026
b8ee594
docs(openspec): archive revive-or-dead-capabilities; sync canonical s…
rubenvdlinde Jul 14, 2026
49c24eb
Merge pull request 'openregister: archive approval-chains-declarative…
Jul 14, 2026
a02815a
Merge pull request 'openregister: archive revive-or-dead-capabilities…
Jul 14, 2026
44748eb
docs(openspec): optimize-request-hygiene change — proposal, design, t…
rubenvdlinde Jul 14, 2026
21683a7
fix(build): align vue dependency with the ^2.7.16 override so npm ci …
rubenvdlinde Jul 14, 2026
a419fc4
feat(ui): subscribe object list and detail views to live updates
rubenvdlinde Jul 14, 2026
ae773c7
test(credential): exempt inject-only providers from the https host-lo…
rubenvdlinde Jul 14, 2026
15e806b
style: phpcs fixups in delete-path files
rubenvdlinde Jul 14, 2026
7977d2f
fix(webhooks): arm interception flag cache only with a real distribut…
rubenvdlinde Jul 14, 2026
b7a1203
perf(bulk): stream audit entries in 100-row slices to bound peak memory
rubenvdlinde Jul 14, 2026
9eca1a9
fix(ui): dedupe in-flight live subscriptions and epoch-guard stale re…
rubenvdlinde Jul 14, 2026
cffbcd5
fix(render): preserve complete single-read inverse shape in batched p…
rubenvdlinde Jul 14, 2026
96e307c
fix(import): derive notify_push collection hint from save results, no…
rubenvdlinde Jul 14, 2026
ffe98bf
feat(migration): drop orphaned openregister_realtime_events table
rubenvdlinde Jul 14, 2026
20049f6
Merge pull request 'perf(write-path): batched audit inserts, repaired…
Jul 14, 2026
8444c4b
Merge remote-tracking branch 'origin/development' into feat/live-upda…
rubenvdlinde Jul 14, 2026
3c2a569
test(import): align NotifyPush batch test with post-merge ImportServi…
rubenvdlinde Jul 14, 2026
92f2639
Merge pull request 'fix(push): imports now emit batched collection ev…
Jul 14, 2026
b04d790
Merge remote-tracking branch 'origin/development' into feat/perf-requ…
rubenvdlinde Jul 14, 2026
1141641
Merge pull request 'perf(requests): interception fast path, deferred …
Jul 14, 2026
fd55e20
Merge remote-tracking branch 'origin/development' into feat/perf-read…
rubenvdlinde Jul 14, 2026
585bfde
Merge pull request 'perf(read-path): single render on show, batched i…
Jul 14, 2026
66f6dce
Merge remote-tracking branch 'origin/development' into feat/perf-dele…
rubenvdlinde Jul 14, 2026
e54c479
Merge pull request 'feat(credential): app-side injection — generic in…
Jul 14, 2026
7e384ab
merge: reconcile insertAuditTrails with development's chunked impleme…
rubenvdlinde Jul 14, 2026
653d7a0
Merge pull request 'perf(delete-path): batched scope resolution, sing…
Jul 14, 2026
a728b02
Merge remote-tracking branch 'origin/development' into feat/live-upda…
rubenvdlinde Jul 14, 2026
0524f34
Merge pull request 'feat(ui): object list and detail views subscribe …
Jul 14, 2026
2b6a049
fix(security): strip writeOnly properties unconditionally on the rend…
rubenvdlinde Jul 14, 2026
cf8752f
Merge remote-tracking branch 'origin/development' into wip/fix-writeo…
rubenvdlinde Jul 14, 2026
6d52a46
Merge pull request 'openregister: strip writeOnly unconditionally on …
Jul 14, 2026
05e7ae0
fix(mcp): resolve IMcpScannableServices opt-in from each app's own co…
rubenvdlinde Jul 14, 2026
cd8c167
Merge remote-tracking branch 'origin/development' into wip/fix-scanna…
rubenvdlinde Jul 14, 2026
7ebdc5c
Merge pull request 'openregister: resolve #[McpTool] scannable-servic…
Jul 14, 2026
ffafd1c
feat(chat)!: decommission OR chat product surface (or-chat-engine-dec…
rubenvdlinde Jul 15, 2026
8a1577a
test: fix cross-branch integration drift after the perf-wave merges
rubenvdlinde Jul 15, 2026
9168661
test: register RenderObject in the magic-mapper index test container
rubenvdlinde Jul 15, 2026
5106c06
Merge pull request 'test: heal cross-branch drift from the perf wave …
Jul 15, 2026
4485aec
feat: field-level object encryption at rest (x-openregister-encrypted)
rubenvdlinde Jul 15, 2026
0fe3585
Merge remote-tracking branch 'origin/development' into wip/field-leve…
rubenvdlinde Jul 15, 2026
96bb333
Merge pull request 'feat: field-level object encryption at rest (x-op…
Jul 15, 2026
e683e47
docs(openspec): archive field-level-object-encryption change
rubenvdlinde Jul 15, 2026
dd289f2
Merge pull request 'docs(openspec): archive field-level-object-encryp…
Jul 15, 2026
673f7fd
Merge pull request 'Decommission OpenRegister chat product surface' (…
Jul 15, 2026
855c476
fix(schema): isolate config validation per key so one bad value can't…
rubenvdlinde Jul 15, 2026
ba8eb48
Merge pull request 'fix(schema): isolate config validation per key so…
Jul 15, 2026
46cdf9b
feat(dashboard): wire dashboard widgets to notify_push live updates
rubenvdlinde Jul 15, 2026
d78b733
build(deps): bump @conduction/nextcloud-vue to ^1.0.0-beta.212
rubenvdlinde Jul 15, 2026
84cb323
perf(integrity): batch CASCADE deletions in applyDeletionActions
rubenvdlinde Jul 15, 2026
5ee7411
feat(audit): serialize hash-chain seal passes under an advisory lock
rubenvdlinde Jul 15, 2026
6543382
refactor(objects): remove dead ChunkProcessingHandler
rubenvdlinde Jul 15, 2026
6473d7e
feat(credential-broker): add Anthropic (Claude / Claude Max) provider…
rubenvdlinde Jul 15, 2026
a93912c
Merge pull request 'Add Anthropic (Claude / Claude Max) credential-br…
Jul 15, 2026
d68a116
fix(render): strip writeOnly from the @self.relations mirror uncondit…
rubenvdlinde Jul 15, 2026
7d8bc7b
Merge pull request 'fix(render): strip writeOnly from the @self.relat…
Jul 15, 2026
3dc02cc
docs(openspec): actor-forwarded listener deferral contract (#408)
rubenvdlinde Jul 15, 2026
10847e4
feat(deferral): actor-forwarding deferral contract for heavy listener…
rubenvdlinde Jul 15, 2026
ad569dd
perf(listeners): defer translation projection, annotation notificatio…
rubenvdlinde Jul 15, 2026
126137b
test(aggregation): rising-edge coverage for extracted ThresholdEvalua…
rubenvdlinde Jul 15, 2026
85c06c0
Merge pull request 'fix(audit): advisory-locked seal passes + chain f…
Jul 15, 2026
080ef0d
Merge pull request 'perf(integrity): batched CASCADE deletions with p…
Jul 15, 2026
4718d7e
Merge pull request 'perf(listeners): actor-forwarded deferral — move …
Jul 15, 2026
fb33af8
Merge pull request 'feat(dashboard): live-update subscriptions for sc…
Jul 15, 2026
b066cff
fix(import): make the app-version import gate content-aware so schema…
rubenvdlinde Jul 15, 2026
5b14988
Merge pull request 'fix(import): content-aware app-version import gat…
Jul 15, 2026
e4db684
Merge pull request 'build(deps): nextcloud-vue ^1.0.0-beta.212 — live…
Jul 15, 2026
31b0019
feat(lifecycle): action executor + list-form transition fix (openregi…
rubenvdlinde Jul 15, 2026
e825e64
docs(openspec): lifecycle-action-executor change (proposal/design/tas…
rubenvdlinde Jul 15, 2026
a4d705d
Merge pull request 'openregister: lifecycle-action-executor (apply)' …
Jul 15, 2026
5275a1c
docs(openspec): archive lifecycle-action-executor; sync object-lifecy…
rubenvdlinde Jul 15, 2026
b2e39b5
Merge pull request 'openregister: lifecycle-action-executor (archive)…
Jul 15, 2026
174d073
feat(aggregation): honour multi-field (cross-tab) groupBy
rubenvdlinde Jul 15, 2026
7a7b596
Merge remote-tracking branch 'origin/development' into wip/aggregatio…
rubenvdlinde Jul 15, 2026
884af4a
Merge pull request 'openregister: aggregation-multi-field-groupby (ap…
Jul 15, 2026
1d32a70
docs(openspec): archive aggregation-multi-field-groupby; sync aggrega…
rubenvdlinde Jul 15, 2026
6fc3a53
Merge pull request 'openregister: aggregation-multi-field-groupby (ar…
Jul 15, 2026
db68efb
chore(deps): lockstep nextcloud-vue to beta.213
rubenvdlinde Jul 16, 2026
1daded7
Merge pull request 'chore(deps): lockstep nextcloud-vue to beta.213' …
Jul 16, 2026
6d6ad81
perf(mcp): cache per-app MCP provider discovery map (#308)
rubenvdlinde Jul 16, 2026
f6d0b33
Merge pull request 'perf(mcp): cache per-app MCP provider discovery m…
Jul 16, 2026
3008a1b
feat(credential-broker): extract an app-facing credential mint API
rubenvdlinde Jul 16, 2026
04e59be
Merge pull request 'feat(credential-broker): extract an app-facing cr…
Jul 16, 2026
73a06fe
fix(authz): fail closed on unresolvable authorization + close vocabul…
juanclaude-conduction Jul 16, 2026
8896403
test(authz): wire the container mock in custom-scope tests
juanclaude-conduction Jul 16, 2026
f9bbce2
Merge origin/development into wip/authz-fail-closed-and-vocabulary-drift
juanclaude-conduction Jul 16, 2026
7f07741
docs(openspec): authz-fail-closed-and-vocabulary-drift change artifacts
juanclaude-conduction Jul 16, 2026
dff468a
docs(openspec): sync authorization-rbac canonical spec with fail-clos…
juanclaude-conduction Jul 16, 2026
40d366e
Merge pull request 'openregister: authz-fail-closed-and-vocabulary-dr…
Jul 16, 2026
818d0d5
docs(openspec): archive authz-fail-closed-and-vocabulary-drift (statu…
juanclaude-conduction Jul 16, 2026
764c9d9
Merge pull request 'openregister: archive authz-fail-closed-and-vocab…
Jul 16, 2026
881fd0d
docs(scratchpad): authz-fail-closed-and-vocabulary-drift report
juanclaude-conduction Jul 16, 2026
8f018a4
Merge pull request 'openregister: scratchpad report for authz-fail-cl…
Jul 16, 2026
0023314
feat(credential-broker): register anthropic-cli as an inject-only pro…
juanclaude-conduction Jul 16, 2026
3562262
Merge pull request 'Register anthropic-cli as an inject-only credenti…
Jul 16, 2026
5c6899a
feat(credential-broker): sessionless organisation-scope resolution fo…
rubenvdlinde Jul 16, 2026
1104ed8
Merge pull request 'feat(credential-broker): sessionless organisation…
Jul 16, 2026
24f0ea0
openregister: orphan-auth-remediation — remove 4 superseded dead vali…
juanclaude-conduction Jul 16, 2026
0ee1cd9
Merge remote-tracking branch 'origin/development' into wip/orphan-aut…
juanclaude-conduction Jul 16, 2026
407ba66
Merge pull request 'openregister: orphan-auth-remediation (apply)' (#…
Jul 16, 2026
511c733
openregister: archive orphan-auth-remediation — canonical spec done
juanclaude-conduction Jul 16, 2026
fccd268
Merge pull request 'openregister: orphan-auth-remediation (archive)' …
Jul 16, 2026
d1879ea
fix(credential): mint() must create the credential object in system c…
rubenvdlinde Jul 16, 2026
7590dfd
Merge pull request 'fix(credential): mint() creates the credential ob…
Jul 16, 2026
aa1d7d4
fix(apphost): resolve metrics/health provider from the calling app co…
Jul 16, 2026
bb9fbc4
docs(spec): spec-anchor-repair — repoint 3,643 broken @spec anchors t…
rubenvdlinde Jul 16, 2026
2d50c8b
Merge pull request 'openregister: spec-anchor-repair (apply)' (#457) …
Jul 16, 2026
c5b606b
feat(security): nested writeOnly paths via x-openregister-writeonly-p…
rubenvdlinde Jul 16, 2026
37aaa53
Merge pull request 'Nested writeOnly protection: x-openregister-write…
Jul 16, 2026
ca61556
fix(security): strip writeOnly unconditionally on the list/search pat…
rubenvdlinde Jul 16, 2026
992ef2b
fix(spec): repair raw-fragment leak in repointer + heal 3 leaked anchors
rubenvdlinde Jul 16, 2026
90b9898
Merge pull request 'fix(security): admin list/search reads leaked wri…
Jul 16, 2026
58e7d4b
Merge pull request 'openregister: fix three repointer defects found b…
Jul 16, 2026
3269432
fix(mcp): match toolWhitelist per function, not per registered tool
rubenvdlinde Jul 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
20 changes: 20 additions & 0 deletions .forgejo/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## Summary

<!-- Describe what was implemented and why (2–5 sentences) -->

## Changes

<!-- List modified files and what changed -->
- `path/to/file` — what changed and why

## Test Coverage

<!-- Describe what tests cover the changes -->
- `tests/Unit/...` — what is covered

## Quality checklist

- [ ] `composer check:strict` passes locally (phpcs + phpmd + phpstan + psalm + tests)
- [ ] Hydra gates clean: `/hydra-gates` shows zero `FAIL` lines
- [ ] New `lib/**/*.php` classes have a matching `tests/Unit/**/*Test.php`
- [ ] Burn-down PR? Cite cluster + before/after counts: phpcs __ → __, phpmd __ → __, phpstan __ → __
92 changes: 92 additions & 0 deletions .forgejo/issue_template/bug-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: "🐛 Bug Report"
description: "Iets werkt niet zoals verwacht"
title: "[BUG] "
labels: ["bug", "needs-triage"]
assignees: []
body:
- type: markdown
attributes:
value: |
## Bug Report
Beschrijf het probleem zo concreet mogelijk zodat het reproduceerbaar is.

- type: textarea
id: description
attributes:
label: "Beschrijving"
description: "Wat gaat er mis?"
placeholder: "Bij het uploaden van een PDF groter dan 10MB crasht de anonymizer."
validations:
required: true

- type: textarea
id: reproduce
attributes:
label: "Stappen om te reproduceren"
value: |
1. Ga naar ...
2. Doe ...
3. Zie fout ...
validations:
required: true

- type: textarea
id: expected
attributes:
label: "Verwacht gedrag"
placeholder: "Het document wordt anonimiseerd en gedownload."
validations:
required: true

- type: textarea
id: actual
attributes:
label: "Werkelijk gedrag"
placeholder: "HTTP 500 na ~30 seconden, geen output."
validations:
required: true

- type: textarea
id: environment
attributes:
label: "Omgeving"
value: |
- Namespace/omgeving:
- Versie/image tag:
- Browser (indien van toepassing):
validations:
required: false

- type: textarea
id: logs
attributes:
label: "Logs / Screenshots"
description: "Plak relevante logs of voeg screenshots toe"
render: shell
validations:
required: false

- type: textarea
id: acceptance-criteria
attributes:
label: "Acceptatiecriteria (fix)"
value: |
- [ ] Bug is niet meer reproduceerbaar
- [ ] Regressietest toegevoegd
- [ ] Fix getest in acceptatieomgeving
- [ ] Geen nieuwe security findings
- [ ] Code gereviewd (4-eyes)
validations:
required: true

- type: dropdown
id: severity
attributes:
label: "Severity"
options:
- "🔴 Critical — productie ligt plat"
- "🟠 High — grote impact, workaround aanwezig"
- "🟡 Medium — beperkte impact"
- "🟢 Low — cosmetic / minor"
validations:
required: true
125 changes: 125 additions & 0 deletions .forgejo/issue_template/feature-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
name: "✨ Feature request"
description: "Suggest a feature or improvement. Fields below feed a draft OpenSpec proposal."
title: "[FEATURE] "
labels: ["enhancement", "feature", "needs-triage"]
type: "Feature"
body:
- type: markdown
attributes:
value: |
## Suggest a feature

Thanks for telling us what you need. **Triage happens within 24 hours.**

The fields below feed an OpenSpec proposal directly if the suggestion
is accepted. The more concrete you are, the faster it ships.

Prefer Dutch? Vul de velden in het Nederlands in — that's fine, we triage in both.

- type: textarea
id: problem
attributes:
label: "Problem"
description: "What can't you do today? What's the friction? Write it from your perspective — one or two sentences is plenty."
placeholder: "I want to filter contacts by last interaction date but the list view doesn't support it. I end up exporting to CSV and sorting in a spreadsheet."
validations:
required: true

- type: textarea
id: proposed-solution
attributes:
label: "Proposed solution"
description: "How would you like it to work? Sketches, links, references welcome. \"I'm not sure\" is also a valid answer — we'll figure it out together."
placeholder: "A date-range filter in the contacts list sidebar, defaulting to last 30 days, persisted per user."
validations:
required: true

- type: textarea
id: who-benefits
attributes:
label: "Who benefits"
description: "Which user role or workflow does this serve? Be specific."
placeholder: "Account managers tracking client engagement, especially before renewal conversations."
validations:
required: true

- type: dropdown
id: priority-to-you
attributes:
label: "How important is this to you?"
description: "Honest self-assessment. Helps us prioritise."
options:
- "Nice to have"
- "Would use weekly"
- "Would use daily"
- "Blocking me right now"
validations:
required: true

- type: textarea
id: context
attributes:
label: "Anything else?"
description: "Edge cases, alternatives you've considered, things to avoid, related capabilities, anything that didn't fit in the boxes above."
placeholder: "Out of scope: per-team default filter (could be later). Avoid: hiding the filter behind a settings page — needs to be one click from the list."

- type: markdown
attributes:
value: |
### Context

The fields below are auto-filled when you suggest a feature from inside
the app. They capture where you were when the idea hit so we can scope
the spec without a second round of questions.

**We show them to you here on purpose**: you can see exactly what we
send and edit or clear any field before you submit. Leave them blank if
you're filing directly from GitHub — we'll still triage it.

- type: input
id: app
attributes:
label: "App"
description: "Auto-filled by the in-product modal. The Nextcloud app you were using."
placeholder: "pipelinq"

- type: input
id: page
attributes:
label: "Page"
description: "Auto-filled. The manifest page id + route you were on when you opened the modal."
placeholder: "clients-detail (/clients/abc-123)"

- type: input
id: surface
attributes:
label: "Modal or widget"
description: "Auto-filled. Any modal, dialog, dashboard widget, or sidebar tab open at the moment the modal launched. Helps us pinpoint UI-attached suggestions."
placeholder: "edit-client-modal · or · dashboard widget: open-leads"

- type: input
id: object
attributes:
label: "Object in focus"
description: "Auto-filled. The OpenRegister register + schema + UUID the page was viewing, if any. Lets us trace the suggestion to a real data shape."
placeholder: "pipelinq · Client · 2f9d-…-abc"

- type: input
id: spec-ref
attributes:
label: "Related capability"
description: "Auto-filled if the page or widget declares a `specRef`. Connects the suggestion to the existing OpenSpec for that capability."
placeholder: "client-management"

- type: markdown
attributes:
value: |
---

### What happens next

1. **Within 24 hours**: a maintainer reads this and replies with one of `ready-to-build`, `needs-design`, `parking-lot`, or `wont-build` (with a reason).
2. **If `ready-to-build`**: an OpenSpec proposal is auto-drafted from these fields. Hydra picks it up and opens a draft PR within days.
3. **When it ships**: you're credited on the spec, you get a `Co-Authored-By:` trailer on the merge commit, and you appear on the app's contributors page.

Read the full flow at the [Users are the moat](https://docs.conduction.nl/strategy/users-are-the-moat) strategy doc.
92 changes: 92 additions & 0 deletions .forgejo/issue_template/technical-task.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: "⚙️ Technische Taak"
description: "Infra, refactor, technische schuld of ops-werk"
title: "[TECH] "
labels: ["technical", "needs-refinement"]
assignees: []
body:
- type: markdown
attributes:
value: |
## Technische Taak
Gebruik dit template voor infra-wijzigingen, refactoring, technische schuld of operationeel werk zonder directe gebruikerswaarde.

- type: textarea
id: description
attributes:
label: "Beschrijving"
description: "Wat moet er gedaan worden en waarom?"
placeholder: "Migreer de WOO-platform PVC's naar S3 primary storage op Fuga Cloud."
validations:
required: true

- type: textarea
id: motivation
attributes:
label: "Motivatie / Aanleiding"
description: "Welk probleem lost dit op? Waarom nu?"
placeholder: "Huidige lokale PVC's lopen vol en zijn niet HA. Zie ook issue #123."
validations:
required: false

- type: textarea
id: approach
attributes:
label: "Aanpak (globaal)"
description: "Hoe gaan we dit oplossen? Welke keuzes zijn al gemaakt?"
placeholder: |
1. Backup bestaande data
2. S3 bucket aanmaken op Fuga Cloud
3. Nextcloud occ storage:update uitvoeren
4. Smoke test per namespace
validations:
required: false

- type: textarea
id: acceptance-criteria
attributes:
label: "Acceptatiecriteria"
value: |
- [ ] Taak uitvoerbaar via Ansible/Terraform (geen handmatige stappen)
- [ ] Gedocumenteerd in runbook of ADR
- [ ] Getest in acceptatieomgeving vóór productie
- [ ] Rollback-procedure beschreven
- [ ] Geen downtime buiten afgesproken window
- [ ] Gereviewd (4-eyes)
- [ ] Geen nieuwe security findings
validations:
required: true

- type: textarea
id: risks
attributes:
label: "Risico's / Afhankelijkheden"
placeholder: "Afhankelijk van beschikbaarheid acceptatieomgeving. Risico: dataverlies bij fout in migratiescript."
validations:
required: false

- type: dropdown
id: category
attributes:
label: "Categorie"
options:
- "Infra / ops"
- "Refactor"
- "Technische schuld"
- "Security"
- "Performance"
- "CI/CD"
- "Documentatie"
validations:
required: true

- type: dropdown
id: priority
attributes:
label: "Prioriteit"
options:
- "🔴 Critical"
- "🟠 High"
- "🟡 Medium"
- "🟢 Low"
validations:
required: true
Loading