chore(deps): pin @conduction/nextcloud-vue to 2.2.0-vue3.9 - #779
Conversation
Follow-up to #778, which pinned 2.2.0-vue3.7. The vue3 dist-tag moved twice more while the fleet wave was running (vue3.7 -> vue3.8 -> vue3.9). The fleet converges on 2.2.0-vue3.9. Verified on npm 10.8.2, the version CI runs: - control (pin unchanged): 0-line diff - npm ci: exit 0 - installed off disk: one copy, 2.2.0-vue3.9, peer vue ^3.5.0 - build: exit 0, 3 warnings at 2.2.0-vue3.7 and at 2.2.0-vue3.9 - vitest: 32 files / 330 passed at both versions - bundle: 66,326,990 -> 66,333,000 bytes (+6,010, +0.01%) 2.2.0-vue3.9 is not pre-verified against our apps the way 2.2.0-vue3.7 was, so the run above is the verification. No regression.
Quality Report — ConductionNL/procest @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-vue3-compile | ✅ | ||||
| test-l10n | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 552/552 | |||
| PHPUnit | ✅ | ||||
| Newman | ⏭️ | ||||
| Playwright | ❌ | ||||
| Hydra gates | ✅ |
Quality workflow — 2026-08-10 11:40 UTC
Download the full PDF report from the workflow artifacts.
🔴 Do not merge —
|
Add (Item|Case Type) assertion failures |
totals | |
|---|---|---|
development @ 2.2.0-vue3.7 (push run, job 93422694823) |
0 | 3 failed, 2 flaky, 82 passed |
this PR @ 2.2.0-vue3.9 (job from run 31381437178) |
9 | 5 failed, 82 passed |
The assertion does not appear anywhere in the 3.7 baseline log. It appears 9 times here. The remaining 3 failures (pdok-via-openconnector ×3) are pre-existing and present in both.
Likely cause
2.2.0-vue3.9 includes 2701fc0 — fix(CnIndexPage): clarified dropped-param warning, locked in null/0/false handling — and bb912e2, which corrected an over-promised list-refresh in the same component's docs. An add-control that previously rendered by omission would disappear if showAdd (or the actionToggles that sugar it) is now evaluated strictly rather than truthy-by-default. That matches the symptom exactly: the control is absent rather than disabled.
Status
Left open and unmerged. procest stays on 2.2.0-vue3.7, which is green for these tests.
The other seven repos in this wave took 2.2.0-vue3.9 with their E2E green, so this looks specific to how procest's case-type admin page drives CnIndexPage — worth a fix in nc-vue or in procest's page config before this pin lands.
Quality Report — ConductionNL/procest @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-vue3-compile | ✅ | ||||
| test-l10n | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 552/552 | |||
| PHPUnit | ✅ | ||||
| Newman | ⏭️ | ||||
| Playwright | ❌ | ||||
| Hydra gates | ✅ |
Quality workflow — 2026-08-10 12:24 UTC
Download the full PDF report from the workflow artifacts.
✅ Unblocking this — the add-control failure was flake, not a
|
| run | result | add-control test |
|---|---|---|
| original (11:08Z) | 5 failed / 82 passed (36.0m) | ✘ Test timeout of 300000ms exceeded (5.2m) |
| rerun (12:22Z) | 3 failed / 84 passed (19.9m) | ✓ passed in 4.4s |
The 3 remaining failures are exactly the pre-existing pdok-via-openconnector trio, identical to #778's baseline (3 failed / 84 passed). The two case-type failures are gone.
4.4 seconds versus 5.2 minutes is the tell. The original failures were Test timeout of 300000ms exceeded against a 15-second assertion — the expect never completed. A v-if evaluating false fails in milliseconds with "element not found"; it does not hang for five minutes. The whole job also ran 36.0m vs 19.9m on rerun, so that runner was simply wedged.
The showAdd theory is also refuted at source
Independently of the rerun, from the published tarballs (nextcloud-vue#623):
- Whole-package diff of
2.2.0-vue3.7vs2.2.0-vue3.9(3713 files each) → 22 differing paths, 6 non-.map. - Compiled
CnIndexPage.vue3.jsdiffers by exactly one comment node — nothing functional. showAddis{ type: Boolean, default: true }in both,CnActionsBar'sv-if="showAdd"untouched,CnPageRendererbyte-identical.
So omission was never tightened. Mounting CnIndexPage the way CaseTypeList does — no showAdd — renders Add Case Type on current feat/vue-3; that contract is now pinned by a test with planted true positives (nextcloud-vue#624).
One note on the hand-off that sent this down the wrong path: the commit subject is …lock in null/0/false **token intent** — resolveRowToken, the {field} navigate-param grammar. Shortened to "null/0/false handling" it reads as generic falsy handling, which is how showAdd became the suspect.
Recommendation: pin 2.2.0-vue3.10, not 2.2.0-vue3.9
vue3.10 published since this PR opened and contains a fix you want: useObjectStore's fetch-by-id no longer console.errors an expected 404 (nextcloud-vue#624). That was the half of #612 that missed the single-object path — the one that emits Error fetching <type>/<id>: Proxy(Object). If any procest e2e asserts "no console errors" on a not-found path, vue3.9 still trips it.
Baseline caveat worth keeping in the record either way: #778's own E2E job was red (3 failed / 84 passed), so "3.7 green" was never true at job level — both runs carry the same pre-existing pdok trio.
✅ Retracting the regression claim above — it was wrong, and the re-run proves itMy earlier comment said What the re-run showedThe E2E job was re-run on this exact commit, no code change:
Both case-type tests pass on the re-run. A Where my reasoning went wrong
What the failures actually areThe three remaining failures are the pre-existing The two admin/case-type timeouts that appeared on the first attempt are the known flake this repo already tracks as Worth folding into #719: either re-budget those two timeouts or fix the For the recordIndependent verification against the published tarballs confirms it: |
What
Hard-pins
@conduction/nextcloud-vueto exactly2.2.0-vue3.9(from2.2.0-vue3.7), the currentvue3dist-tag head.Follow-up to #778. The tag moved twice more while the fleet wave was running —
vue3.7→vue3.8→vue3.9— because every merge to nc-vue'sfeat/vue-3cuts a publish. The fleet converges on2.2.0-vue3.9.No caret, no range:
^2.2.0does not match a prerelease, andlatest/betaare the retired Vue 2 lineage.Lockfile control (npm 10.8.2)
Generated with npm 10.8.2, the version CI runs (node 20.20.2) — not npm 11, whose lockfile rewrites broke 11 checks on opencatalogi in this same wave.
Verification
npm ciunder npm 10.8.2: exit 0.2.2.0-vue3.9, peervue ^3.5.0.2.2.0-vue3.9resolves;3.0.0/3.0.0-vue3.0return E404.2.2.0-vue3.9is not pre-verified against our apps the way2.2.0-vue3.7was, so this run is the verification:vue3.7)vue3.9)npm ci(npm 10.8.2)npm run buildnpm run test:unit(vitest)js/)Bundle delta: +6,010 B (+0.01%). No regression.