Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3361 commits
Select commit Hold shift + click to select a range
bb03cf8
ci: the JSON check reached a template's editor settings
rubenvdlinde Aug 14, 2026
6f570a9
fix(security): give every public endpoint a volume ceiling (ADR-082) …
rubenvdlinde Aug 14, 2026
f129d72
test(flow): the repeat node is the engine's while, and nothing assert…
rubenvdlinde Aug 14, 2026
6ca5ee0
fix(files): actually transfer folder ownership — the four TODOs are d…
rubenvdlinde Aug 14, 2026
d90833d
merge: development into the iterate-node proof
Aug 14, 2026
ed36979
refactor(flow): stateMapper is a constructor argument, not a property
Aug 14, 2026
86b992f
fix(flow): a wait must not suspend the run on an EMPTY firing (#2499)
rubenvdlinde Aug 14, 2026
807d6c2
merge: development, for the empty-firing wait fix (#2499)
Aug 14, 2026
8439367
feat(flow): resume state per node, an await-signal node, and the repe…
rubenvdlinde Aug 14, 2026
89249ca
fix(audit): the retention purge had never once run
rubenvdlinde Aug 15, 2026
83e8798
feat(contract): publish ObjectService/ObjectEntity interfaces — one d…
rubenvdlinde Aug 15, 2026
20aa3c7
chore(deps): hydra-gates 1.8.0 — turns gate-67 from a skip into an en…
rubenvdlinde Aug 15, 2026
409f968
docs(spec): a forms register — form, journey and journeyRun
Aug 15, 2026
912213e
Merge remote-tracking branch 'origin/development' into test/iterate-n…
rubenvdlinde Aug 15, 2026
98ce2f7
fix(audit): bound what one `changed` payload may hold
rubenvdlinde Aug 15, 2026
98380b3
Merge pull request #2500 from ConductionNL/test/iterate-node-proof
rubenvdlinde Aug 15, 2026
2d97715
fix(entity): a named argument to a magic setter sets nothing — lockin…
rubenvdlinde Aug 15, 2026
5461add
spec(or): fail-closed RBAC default, and file text in the fleet's NC s…
Aug 15, 2026
02d3308
docs(rbac): the unmarked-schema audit — and the survey that produced …
Aug 15, 2026
e18b54d
fix(entity): Conversation soft delete and restore were both no-ops (#…
rubenvdlinde Aug 15, 2026
2a38e12
feat(search): the NC provider asks for attached-file text (unified-se…
Aug 15, 2026
940258d
chore(deps): track @conduction/nextcloud-vue ^2.3.0 (#2507)
rubenvdlinde Aug 15, 2026
374988d
Merge pull request #2508 from ConductionNL/spec/search-and-rbac-defaults
rubenvdlinde Aug 15, 2026
4afff88
docs(rbac): measure which UNMARKED schemas a PUBLIC endpoint actually…
rubenvdlinde Aug 15, 2026
885df51
docs(rbac): `#[PublicPage]` does not mean anonymous — a THIRD population
rubenvdlinde Aug 15, 2026
8843807
docs(rbac): the third population now has an answer — ADR-085
rubenvdlinde Aug 15, 2026
cd2dc28
Merge pull request #2511 from ConductionNL/docs/rbac-public-endpoint-…
rubenvdlinde Aug 15, 2026
570240b
docs(flow-engine-unification): mark tasks 6.2 + 6.4 done, live-verifi…
rubenvdlinde Aug 15, 2026
0fb49aa
fix(integrations): register JS descriptors for kvk and opencorporates…
rubenvdlinde Aug 16, 2026
e1fe47b
fix(build): make local-lib opt-in and validate the sibling by semver …
rubenvdlinde Aug 16, 2026
4fd0ed5
fix(supply-chain): make the npm cooldown actually work (gate-84) (#2516)
rubenvdlinde Aug 16, 2026
e6decbb
ci: run every npm job on Node 24 (#2517)
rubenvdlinde Aug 16, 2026
7db2caa
fix(security): /api/names/{id} was anonymous and bypassed RBAC + tena…
rubenvdlinde Aug 16, 2026
7c6e0f9
fix(lint): clear 19 of 25 tranche-A suppressions — 15 were discarded …
rubenvdlinde Aug 16, 2026
de4b373
fix(build): npm run build rewrote docs/features.json into a shape CI …
rubenvdlinde Aug 16, 2026
3fd6266
Merge pull request #2504 from ConductionNL/docs/spec-portaliq-phase-two
rubenvdlinde Aug 16, 2026
46ef45a
docs(rbac): the ADR this audit points at is 091, not 085
rubenvdlinde Aug 16, 2026
4a35085
fix(security): remove the three #[PublicPage] name endpoints (SEC-CTR…
rubenvdlinde Aug 16, 2026
b7d00de
Merge pull request #2522 from ConductionNL/docs/adr-085-to-091-reference
rubenvdlinde Aug 16, 2026
06c27b0
fix(import): an annotation-only schema change must not be skipped
Aug 16, 2026
b3d6c5c
spec(rbac): consolidate permission handling into one evaluator
rubenvdlinde Aug 16, 2026
d3766d7
Merge development, keeping the removal of the public name endpoints
rubenvdlinde Aug 16, 2026
728e4ef
fix(phpstan): drop a dead is_array() guard in schemaAnnotationsDiffer
Aug 16, 2026
4df002a
fix(schemas): a named register is a boundary, not a hint (#2526)
rubenvdlinde Aug 16, 2026
67686f3
fix(import): one rejected schema detached a whole register (#2528)
rubenvdlinde Aug 16, 2026
ea23da8
perf(mcp): outputSchema was 80% of the tool payload and 54% of the co…
Aug 16, 2026
606f49f
fix(quality): the one phpmd and the one phpstan finding on development
rubenvdlinde Aug 16, 2026
2b355e5
Merge pull request #2530 from ConductionNL/fix/phpmd-phpstan-development
rubenvdlinde Aug 16, 2026
a8cc773
Revert "Merge pull request #2530" — it deleted 6,886 files
Aug 16, 2026
eab95b6
Merge pull request #2532 from ConductionNL/restore/undo-2530
rubenvdlinde Aug 16, 2026
9989df7
fix(quality): the one phpmd and the one phpstan finding on development
rubenvdlinde Aug 16, 2026
1395d54
Merge pull request #2533 from ConductionNL/fix/phpmd-and-phpstan-reapply
rubenvdlinde Aug 16, 2026
8e03397
fix(schemas): the register boundary was enforced but never establishe…
rubenvdlinde Aug 16, 2026
5d9c9db
docs(openspec): tasks.md for flow-sync-decomposition, scoped to spect…
rubenvdlinde Aug 16, 2026
7e1b115
fix(schemas): a conditional in allOf 500'd POST /api/schemas
rubenvdlinde Aug 16, 2026
cbb0c81
Merge pull request #2536 from ConductionNL/fix/allof-conditional-500
rubenvdlinde Aug 16, 2026
32ecb7f
test(e2e): widen the CI E2E floor from 9 files to 12 — the write path…
rubenvdlinde Aug 16, 2026
b763ada
fix(security): an anon-only rate limit throttles AUTHENTICATED caller…
rubenvdlinde Aug 16, 2026
fbff99f
Merge pull request #2538 from ConductionNL/S40/user-rate-limit-authen…
rubenvdlinde Aug 16, 2026
00c7a5c
Merge pull request #2525 from ConductionNL/fix/schema-content-differs…
rubenvdlinde Aug 16, 2026
e8f39ad
Merge pull request #2527 from ConductionNL/spec/consolidate-permissio…
rubenvdlinde Aug 16, 2026
417febe
test(gates): close gate-25 and gate-26, cut gate-7 from 8 findings to 3
rubenvdlinde Aug 16, 2026
e4cfe02
test(gates): finish the contract-test refinements for gate-25
rubenvdlinde Aug 16, 2026
d710752
Merge pull request #2539 from ConductionNL/fix/green-openregister
rubenvdlinde Aug 16, 2026
1c89a02
Merge remote-tracking branch 'origin/development' into work/2523-rebase
rubenvdlinde Aug 16, 2026
f7303a9
fix(ci): adopt the canonical changed-files coverage guard
rubenvdlinde Aug 16, 2026
1749c1d
Merge pull request #2523 from ConductionNL/fix/sec-ctrl-2-drop-public…
rubenvdlinde Aug 16, 2026
d311ed2
Merge branch 'development' into fix/mcp-output-schema-payload
rubenvdlinde Aug 17, 2026
6a86562
fix(phpcs): clear 20 PHPCS errors
rubenvdlinde Aug 17, 2026
31b8b3b
fix(validation): an enum error must say what the allowed values ARE
Aug 17, 2026
784fd4d
test(security): pin the cross-tenant name disclosure (SEC-CTRL-2 step 2)
rubenvdlinde Aug 17, 2026
a63abe6
fix(security): scope object-name resolution to the caller's organisat…
rubenvdlinde Aug 17, 2026
d34b788
style: satisfy phpcs named-parameters and phpmd on the scoped name re…
rubenvdlinde Aug 17, 2026
ba46f53
test: pin the partial-map contract the six internal callers depend on
rubenvdlinde Aug 17, 2026
969d97c
docs: record SEC-CTRL-2 as closed, and what it does NOT close
rubenvdlinde Aug 17, 2026
5d846be
fix(phpstan): drop nullsafe on a non-nullable IUserSession and an alw…
rubenvdlinde Aug 17, 2026
65b5dfe
test(security): cover every arm of the name-visibility decision; fix …
rubenvdlinde Aug 17, 2026
9692192
chore(deps): add composer cooldown to dependabot.yml
rubenvdlinde Aug 17, 2026
08d3801
Merge pull request #2541 from ConductionNL/fix/sec-ctrl-2-step2-tenan…
rubenvdlinde Aug 17, 2026
6dd5940
chore(deps): add composer cooldown to dependabot.yml (#2542)
rubenvdlinde Aug 17, 2026
ac0fc86
fix(contract): publish patchObject() and correct updateObject()'s doc…
rubenvdlinde Aug 17, 2026
00054eb
test(contract): pin the replace/merge distinction between the two wri…
rubenvdlinde Aug 17, 2026
d15ed66
fix(mcp): bind tool arguments by NAME, not by position
rubenvdlinde Aug 17, 2026
ce5e90d
docs(contract): declare the patchObject() surface shift for gate-83
rubenvdlinde Aug 17, 2026
7927b1a
Merge pull request #2543 from ConductionNL/fix/or-contract-patchobject
rubenvdlinde Aug 17, 2026
911ef16
docs(spec): gated custom actions, an mcp scope, and virtual app schemas
rubenvdlinde Aug 17, 2026
3a3c115
feat(rbac): extensible action vocabulary, gated by declaration
rubenvdlinde Aug 17, 2026
81fdc01
fix(mcp): strip OpenRegister dialect from published tool schemas
rubenvdlinde Aug 17, 2026
dad50fd
feat(rbac): the mcp scope describes an agent surface without conferri…
rubenvdlinde Aug 17, 2026
c27a0c8
feat(rbac): dispatch an event on every action decision, refusals incl…
rubenvdlinde Aug 17, 2026
da7e96b
feat(rbac): cache the grantable-rights index, invalidated by schema w…
rubenvdlinde Aug 17, 2026
a35202f
docs(spec): virtual-schema investigation, and the hazards the build r…
rubenvdlinde Aug 17, 2026
ae7c6b1
docs(openspec): archive declared-actions-and-mcp-scope
rubenvdlinde Aug 17, 2026
b44ef4e
fix(security): an mcp-only authorization block no longer reads as wor…
rubenvdlinde Aug 17, 2026
23d0109
fix(quality): close the four CI gates this branch broke
rubenvdlinde Aug 17, 2026
2af3898
fix(tests): drop coverage annotations that silently recorded ZERO cov…
rubenvdlinde Aug 17, 2026
7b3dc23
fix(gates): @spec tags on the methods gate-16 flagged
rubenvdlinde Aug 17, 2026
aa12006
feat(rbac): the grantable-rights index names the owning app
rubenvdlinde Aug 17, 2026
7620d5c
fix(gates): @spec on the last five methods gate-16 could flag
rubenvdlinde Aug 17, 2026
c13871c
feat(smart-picker): schema-scoped Smart Picker + search provider base…
rubenvdlinde Aug 17, 2026
81a8409
fix(mcp): suppress duplicate derived tool ids — and 14 real tools rea…
rubenvdlinde Aug 18, 2026
e7fc57e
feat(mcp): publish a tool's app, subject and action as FIELDS, not a …
rubenvdlinde Aug 18, 2026
566f190
fix(smart-picker): drop two phpstan-flagged dead-code offsets
rubenvdlinde Aug 18, 2026
ba4a0d2
fix(smart-picker): drop is_array() guard phpstan proves always-true
rubenvdlinde Aug 18, 2026
3a77ed4
Merge pull request #2545 from ConductionNL/feat/schema-scoped-smart-p…
rubenvdlinde Aug 18, 2026
3de558c
fix(objects): let a caller write a genuinely unowned object
rubenvdlinde Aug 18, 2026
35bf489
feat(reference): schema-scoped reference and search providers a leaf …
rubenvdlinde Aug 18, 2026
9bcdd61
merge: development into feat/schema-scoped-reference-and-search-provi…
rubenvdlinde Aug 18, 2026
2bc6653
feat(flows): fleet-wide flow list on CnIndexPage, toolbar-driven edit…
rubenvdlinde Aug 18, 2026
9f4c2af
fix(deps): paragonie/sodium_compat v2.5.0 -> v2.5.1 (PKSA-32g2-byr9-d…
rubenvdlinde Aug 18, 2026
cc8b84b
docs(openspec): change proposals — calendar-leaf-inbound flow-bpmn-in…
rubenvdlinde Aug 18, 2026
c6fe7c7
fix(i18n): internationalize the AVG processing-activity register (#2555)
rubenvdlinde Aug 18, 2026
9b0320b
test(e2e): flow editor consolidation coverage; fix(ci): format + @spec
rubenvdlinde Aug 18, 2026
175603c
fix(migration): Doctrine DBAL Table methods don't accept named args (…
rubenvdlinde Aug 18, 2026
7a77424
fix(transition): the flows surface works on BOTH library lines
rubenvdlinde Aug 18, 2026
7220520
fix(migration): dropColumn() inside postSchemaChange silently no-ops …
rubenvdlinde Aug 18, 2026
6df933f
Merge pull request #2553 from ConductionNL/feat/flow-editor-consolida…
rubenvdlinde Aug 18, 2026
d26674a
fix(l10n): restore 36-locale parity and formatting after #2553 (#2564)
rubenvdlinde Aug 18, 2026
8bd2598
fix(i18n): translate remaining Dutch UI strings in the AVG processing…
rubenvdlinde Aug 19, 2026
3b73d6b
fix(i18n): re-apply the AVG English strings now that all 36 locales h…
rubenvdlinde Aug 19, 2026
898f9ce
feat(flow): add optional applicationSlug field and filter to Flow (#2…
rubenvdlinde Aug 19, 2026
9c54391
fix(reference): two dead fallbacks phpstan called out, and the featur…
rubenvdlinde Aug 19, 2026
64974dc
Merge remote-tracking branch 'origin/development' into feat/declared-…
rubenvdlinde Aug 19, 2026
9060478
chore(deps): @conduction/nextcloud-vue ^2.6.2 — consolidated flow edi…
rubenvdlinde Aug 19, 2026
87c9ec0
chore(deps): lockfile to 2.6.3 — the exports-map fix; e2e global-setu…
rubenvdlinde Aug 19, 2026
70cfb3c
Merge pull request #2549 from ConductionNL/feat/schema-scoped-referen…
rubenvdlinde Aug 19, 2026
0e84d4c
Merge pull request #2547 from ConductionNL/feat/declared-actions-and-…
rubenvdlinde Aug 19, 2026
e6e9593
fix(e2e): finish the dual-path collapse — a removed const was still r…
rubenvdlinde Aug 19, 2026
2b12d3c
feat(flow): object-write bulk mode — one saveObjects() call per page,…
rubenvdlinde Aug 19, 2026
9d010c0
feat(tools): declare subject and action on the 25 OpenRegister tools
rubenvdlinde Aug 19, 2026
4c58a69
chore(deps): nc-vue ^2.7.0 — node-editor registry + configForm-driven…
Aug 19, 2026
4c0c7c7
refactor(tools): split the register and application tables at the rea…
rubenvdlinde Aug 19, 2026
1cfcae5
feat(mcp): #[McpTool] can declare subject and action — and TWO copy s…
rubenvdlinde Aug 19, 2026
a2dcec8
refactor(mcp): lift the taxonomy forwarding out of buildDescriptor()
rubenvdlinde Aug 19, 2026
ff7b5de
Merge pull request #2573 from ConductionNL/feat/flow-config-fields-an…
rubenvdlinde Aug 19, 2026
94017b6
Merge development (object-write bulk mode) into the nc-vue 2.7.0 bump
Aug 19, 2026
d421199
style(phpcs): clear the 21 standing errors in lib/
rubenvdlinde Aug 19, 2026
6e7b573
Merge pull request #2574 from ConductionNL/feat/tool-taxonomy-subject…
rubenvdlinde Aug 19, 2026
5c9c8d0
test(e2e): drive keyboard connect on the element that owns the handler
Aug 19, 2026
02049f3
test(e2e): suppress the first-open support dialog so the canvas is re…
Aug 19, 2026
d602c49
chore: merge development
rubenvdlinde Aug 19, 2026
a5f33b6
test(e2e): count the edge instead of asking whether a vertical line i…
Aug 19, 2026
3b27fc4
style: format with @nextcloud/prettier-config (tabWidth 4, bracketSam…
Aug 19, 2026
6b28ada
style(phpcs): use match so the inline-IF fix adds no statements
rubenvdlinde Aug 19, 2026
ddec988
style(phpcs): keep the sweep comment-only; record the one error it ca…
rubenvdlinde Aug 19, 2026
2b20abb
Merge pull request #2577 from ConductionNL/chore/phpcs-docblock-debt
rubenvdlinde Aug 19, 2026
def6689
chore(deps): nc-vue ^2.7.1 — the editor's edges are now readable by t…
Aug 19, 2026
f1c27e9
Merge pull request #2570 from ConductionNL/chore/ncvue-flow-editor-bump
rubenvdlinde Aug 19, 2026
16a2c8e
Merge branch 'development' into fix/unowned-anonymous-write
rubenvdlinde Aug 19, 2026
c3d5d6f
Merge branch 'development' into fix/mcp-output-schema-payload
rubenvdlinde Aug 19, 2026
a0cf305
Merge development into fix/phpcs-errors
Aug 19, 2026
4031439
Merge pull request #2529 from ConductionNL/fix/mcp-output-schema-payload
rubenvdlinde Aug 19, 2026
3554d24
style(phpcs): clear the one phpcs ERROR (inline IF not allowed)
Aug 19, 2026
d5ae938
fix(psalm): drop the stale UnusedParam baseline for SaveObject::$fail…
Aug 19, 2026
647c548
style(phpcs): use match, so no gate is traded for another
Aug 19, 2026
966bd88
Merge pull request #2540 from ConductionNL/fix/phpcs-errors
rubenvdlinde Aug 19, 2026
4c1b1b9
style(phpcs): a one-statement lookup, since every other form moves th…
Aug 19, 2026
1723788
Merge pull request #2548 from ConductionNL/fix/unowned-anonymous-write
rubenvdlinde Aug 19, 2026
bfcbb12
chore(docs): de-duplicate the rate-limit prose I doubled, and tag thr…
rubenvdlinde Aug 19, 2026
85b30e0
Merge pull request #2582 from ConductionNL/fix/phpcs-error-debt
rubenvdlinde Aug 19, 2026
f531c78
chore: merge development
rubenvdlinde Aug 19, 2026
3bc76ca
chore(docs): drop the KNOWN-debt note — the debt it describes is gone
rubenvdlinde Aug 19, 2026
b890522
Merge pull request #2586 from ConductionNL/chore/dedupe-ratelimit-prose
rubenvdlinde Aug 19, 2026
b8c61d8
chore(release): 1.1.5-unstable.20260819175458 [skip ci]
github-actions[bot] Aug 19, 2026
add7e08
fix(flow): preflight silently accepted every broken TRIGGER config
Aug 19, 2026
a7ff3e3
fix(credential-broker): surface real upstream failure reason, trim se…
rubenvdlinde Aug 19, 2026
2725141
Merge pull request #2588 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 19, 2026
8cb53bd
feat(flow): object-write can pass an item through unwritten (skipWhen)
Aug 19, 2026
cd9d33a
test(flow): pin skipWhen, and split writeBulk() to stay inside phpmd
Aug 19, 2026
dc4d491
Merge pull request #2589 from ConductionNL/fix/preflight-accepts-brok…
rubenvdlinde Aug 19, 2026
485eba2
chore(release): 1.1.5-unstable.20260819194233 [skip ci]
github-actions[bot] Aug 19, 2026
c42481b
verify: development into skipWhen
Aug 19, 2026
ba66ca8
Merge pull request #2594 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 19, 2026
0d0b0a4
Merge pull request #2592 from ConductionNL/feat/object-write-skip-when
rubenvdlinde Aug 19, 2026
a1ba5ed
chore(deps): nc-vue ^2.8.0 — flow editor nodes are reachable again
Aug 20, 2026
a1006a8
Merge pull request #2598 from ConductionNL/chore/ncvue-2-8-0
rubenvdlinde Aug 20, 2026
d2a7fba
docs(openspec): add openspec/changes/confidentiality-classification-p…
rubenvdlinde Aug 20, 2026
b311b4a
docs(openspec): add openspec/changes/confidentiality-classification-p…
rubenvdlinde Aug 20, 2026
707eea9
docs(openspec): add openspec/changes/confidentiality-classification-p…
rubenvdlinde Aug 20, 2026
93c365d
docs(openspec): add openspec/changes/confidentiality-classification-p…
rubenvdlinde Aug 20, 2026
591ca47
docs(openspec): add openspec/changes/confidentiality-classification-p…
rubenvdlinde Aug 20, 2026
3a45150
docs(openspec): add openspec/changes/aggregation-dialect-repair propo…
rubenvdlinde Aug 20, 2026
fa4b819
docs(openspec): add openspec/changes/aggregation-dialect-repair propo…
rubenvdlinde Aug 20, 2026
7c134a3
docs(openspec): add openspec/changes/aggregation-dialect-repair propo…
rubenvdlinde Aug 20, 2026
acba177
docs(openspec): add openspec/changes/aggregation-dialect-repair propo…
rubenvdlinde Aug 20, 2026
fe4fe33
docs(openspec): add openspec/changes/aggregation-dialect-repair propo…
rubenvdlinde Aug 20, 2026
d8aa86a
docs(openspec): add openspec/changes/aggregation-dialect-repair propo…
rubenvdlinde Aug 20, 2026
c86cce8
docs(openspec): add openspec/changes/aggregation-dialect-repair propo…
rubenvdlinde Aug 20, 2026
aeea4ea
docs(openspec): add openspec/changes/aggregation-dialect-repair propo…
rubenvdlinde Aug 20, 2026
c743c4c
docs(openspec): add openspec/changes/aggregation-dialect-repair propo…
rubenvdlinde Aug 20, 2026
8cf4615
Merge pull request #2600 from ConductionNL/docs/aggregation-dialect-r…
rubenvdlinde Aug 20, 2026
ba3fe8c
Merge pull request #2601 from ConductionNL/docs/confidentiality-primi…
rubenvdlinde Aug 20, 2026
39f5d09
chore(release): 1.1.5-unstable.20260820043953 [skip ci]
github-actions[bot] Aug 20, 2026
1fdb55c
Merge pull request #2603 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
012e298
chore(release): 1.1.5-unstable.20260820044859 [skip ci]
github-actions[bot] Aug 20, 2026
09b595a
Merge pull request #2604 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
837224e
chore(release): 1.1.5-unstable.20260820045712 [skip ci]
github-actions[bot] Aug 20, 2026
1802446
Merge pull request #2605 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
32813f1
chore(deps): take hydra-gates v1.8.1 — the contract v1.8.0 shipped br…
juanclaude-conduction Aug 20, 2026
f59e9b4
chore(release): 1.1.5-unstable.20260820050956 [skip ci]
github-actions[bot] Aug 20, 2026
1450140
Merge pull request #2607 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
1b11422
chore(release): 1.1.5-unstable.20260820052305 [skip ci]
github-actions[bot] Aug 20, 2026
e7ad057
Merge pull request #2606 from ConductionNL/chore/hydra-gates-v1.8.1
rubenvdlinde Aug 20, 2026
9522660
Merge pull request #2608 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
f61211b
chore(release): 1.1.5-unstable.20260820054528 [skip ci]
github-actions[bot] Aug 20, 2026
a38cbfc
Merge pull request #2610 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
e63025a
chore(release): 1.1.5-unstable.20260820060344 [skip ci]
github-actions[bot] Aug 20, 2026
3edf0f3
Merge pull request #2611 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
e746939
chore(release): 1.1.5-unstable.20260820081047 [skip ci]
github-actions[bot] Aug 20, 2026
1a6d2b6
Merge pull request #2612 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
5d6dbcc
chore(release): 1.1.5-unstable.20260820082231 [skip ci]
github-actions[bot] Aug 20, 2026
fc290c0
Merge pull request #2613 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
b18c0ae
chore(release): 1.1.5-unstable.20260820083617 [skip ci]
github-actions[bot] Aug 20, 2026
d523063
Merge pull request #2614 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
b1f921d
chore(release): 1.1.5-unstable.20260820085130 [skip ci]
github-actions[bot] Aug 20, 2026
733d1eb
Merge pull request #2615 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
41a5ba6
chore(release): 1.1.5-unstable.20260820090708 [skip ci]
github-actions[bot] Aug 20, 2026
6889189
Merge pull request #2616 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
37b610e
chore(release): 1.1.5-unstable.20260820092239 [skip ci]
github-actions[bot] Aug 20, 2026
9492236
Merge pull request #2617 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
494605b
chore(release): 1.1.5-unstable.20260820093628 [skip ci]
github-actions[bot] Aug 20, 2026
0170725
Merge pull request #2618 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
18a220e
chore(release): 1.1.5-unstable.20260820095029 [skip ci]
github-actions[bot] Aug 20, 2026
e0c8201
Merge pull request #2619 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
dac9bc0
chore(release): 1.1.5-unstable.20260820100544 [skip ci]
github-actions[bot] Aug 20, 2026
7b88108
Merge pull request #2620 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
edafbd5
chore(release): 1.1.5-unstable.20260820102058 [skip ci]
github-actions[bot] Aug 20, 2026
7ddfe23
chore(deps): take @conduction/nextcloud-vue 2.8.2 (was 2.8.0)
juanclaude-conduction Aug 20, 2026
ab0564f
Merge pull request #2621 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
1ae5c91
chore(release): 1.1.5-unstable.20260820103623 [skip ci]
github-actions[bot] Aug 20, 2026
06b7450
Merge pull request #2623 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
5d9443c
chore(release): 1.1.5-unstable.20260820105642 [skip ci]
github-actions[bot] Aug 20, 2026
a14db17
Merge pull request #2624 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
3138281
Merge pull request #2622 from ConductionNL/chore/nc-vue-2.8.2
rubenvdlinde Aug 20, 2026
3ea830f
chore(release): 1.1.5-unstable.20260820111522 [skip ci]
github-actions[bot] Aug 20, 2026
87320d7
Merge pull request #2626 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
97bb373
chore(release): 1.1.5-unstable.20260820113511 [skip ci]
github-actions[bot] Aug 20, 2026
53f9383
Merge pull request #2627 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
837249d
chore(release): 1.1.5-unstable.20260820115241 [skip ci]
github-actions[bot] Aug 20, 2026
8b39418
Merge pull request #2628 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
fbed7f6
chore(release): 1.1.5-unstable.20260820120253 [skip ci]
github-actions[bot] Aug 20, 2026
9eda408
Merge pull request #2629 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
48641b1
chore(release): 1.1.5-unstable.20260820121249 [skip ci]
github-actions[bot] Aug 20, 2026
23f88e5
Merge pull request #2630 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
164f799
chore(release): 1.1.5-unstable.20260820122257 [skip ci]
github-actions[bot] Aug 20, 2026
6afc0a2
Merge pull request #2631 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
b7c6673
chore(release): 1.1.5-unstable.20260820124137 [skip ci]
github-actions[bot] Aug 20, 2026
d3c68b2
Merge pull request #2632 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 2026
61f716b
chore(release): 1.1.5-unstable.20260820125943 [skip ci]
github-actions[bot] Aug 20, 2026
e4be76a
Merge pull request #2633 from ConductionNL/release/v1.1.5-unstable.20…
rubenvdlinde Aug 20, 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.
2 changes: 1 addition & 1 deletion .coverage-baseline
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.00
58.88
36 changes: 36 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# https://editorconfig.org

# SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later

root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = tab
insert_final_newline = true
trim_trailing_whitespace = true

[*.yml]
indent_size = 2
indent_style = space

[*.md]
trim_trailing_whitespace = false

[*.svg]
insert_final_newline = false

[package*.json]
indent_size = 2
indent_style = space

[build/psalm-baseline.xml]
indent_size = 2
indent_style = space

[config/*config.php]
indent_size = 2
indent_style = space
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
Loading