Skip to content

fix(deps): root @nextcloud/l10n 3.x (app would not boot) + nc-vue 3.0.0-vue3.4 - #1136

Merged
rubenvdlinde merged 2 commits into
developmentfrom
chore/ncvue-vue3.4
Aug 3, 2026
Merged

fix(deps): root @nextcloud/l10n 3.x (app would not boot) + nc-vue 3.0.0-vue3.4#1136
rubenvdlinde merged 2 commits into
developmentfrom
chore/ncvue-vue3.4

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Two dependency corrections. The first is a hard boot failure on development.

1. @nextcloud/l10n ^2.0.1^3.4.1

nc-vue bundles @nextcloud/dialogs and @nextcloud/password-confirmation into its dist (dist/esm/node_modules/@nextcloud/…). That bundled code calls getGettextBuilder().detectLanguage() at module init. detectLanguage exists on @nextcloud/l10n 3.x and does not exist on 2.2.0 — which is what ^2.0.1 resolves to at the app root.

Result:

TypeError: (0 , rs.$)(...).detectLanguage is not a function

…and the Vue app never mounts. The Nextcloud shell renders, the app does not — 0 data-testid nodes, no navigation.

The nested copies under node_modules/@nextcloud/{dialogs,files,vue,password-confirmation}/ are already 3.4.1. Only the root was behind, and the root is what webpack resolves the bundled code against.

Controls run before concluding

check result
npm ci from the committed lockfile, clean rebuild still broken
openbuild on the same instance mounts fine (8 nav items, 0 errors) — instance is healthy
wiped the container's js/ (9 stale chunks) and redeployed still broken
reverted the nc-vue pin to vue3.2 still broken — so not the nc-vue bump
bumped root l10n to 3.4.1 boots: 0 console errors, 27 nav entries

2. @conduction/nextcloud-vue 3.0.0-vue3.23.0.0-vue3.4

Picks up the ADR-079 admin-settings link-out (nextcloud-vue#593).

Verified the feature is genuinely in the published tarball rather than trusting a green Release run: vue3.2 ships 0 files containing showAdminSettingsLink and 9 containing the removed cnOpenAdminSettings; vue3.4 ships the new API.

Live verification

After rebuild + clean redeploy, the settings foldout now reads:

⚙ Settings
   ⚙ Personal settings
   🛡 Admin settings  →  /settings/admin/openconnector

/settings/admin/openconnector returns 401 for an anonymous caller — the platform authorizes it server-side, which is the whole point of ADR-079 §3. No duplicate Settings child. 24 nav entries, 0 console errors.

This is the first time the ADR-079 link has rendered in any app.

Checks

eslint clean. Hydra gate failure set identical to origin/development (15 = 15, compared by name).

….0-vue3.4

Two dependency corrections; the first is a HARD BOOT FAILURE.

1. @nextcloud/l10n ^2.0.1 -> ^3.4.1

   nc-vue BUNDLES @nextcloud/dialogs and @nextcloud/password-confirmation into
   its dist (dist/esm/node_modules/@nextcloud/...). That bundled code calls
   `getGettextBuilder().detectLanguage()` at MODULE INIT. detectLanguage exists
   on @nextcloud/l10n 3.x and does NOT exist on 2.2.0, which is what ^2.0.1
   resolved to at the app root.

   Result: 'TypeError: (0, rs.$)(...).detectLanguage is not a function' and the
   Vue app never mounts — the Nextcloud shell renders, the app does not. The
   nested copies under node_modules/@nextcloud/{dialogs,files,vue}/ are already
   3.4.1; only the root was behind, and the root is what webpack resolves the
   bundled code against.

   Reproduced across three consecutive clean builds (including a full `npm ci`
   from the committed lockfile) and ruled out against controls: openbuild on the
   same instance mounted fine, a stale-chunk wipe changed nothing, and reverting
   the nc-vue pin did NOT fix it. Bumping the root l10n did: 0 console errors,
   27 nav entries.

2. @conduction/nextcloud-vue 3.0.0-vue3.2 -> 3.0.0-vue3.4

   Picks up the ADR-079 admin-settings link-out. Verified it is genuinely in the
   published tarball rather than trusting a green Release run: vue3.2 ships 0
   files containing showAdminSettingsLink and 9 containing the removed
   cnOpenAdminSettings; vue3.4 ships the new API.

Live-verified after rebuild + clean redeploy — the settings foldout now reads:

    Settings
      Personal settings
      Admin settings  -> /settings/admin/openconnector   (401 for anon)

no duplicate 'Settings' child, 24 nav entries, 0 console errors. That is the
first time the ADR-079 link has rendered in any app.

eslint clean; gate failure set identical to origin/development (15 = 15).
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/openconnector @ 1355dae

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
build
composer ✅ 153/153
npm ✅ 692/692
PHPUnit ⏭️
Newman
Playwright

Quality workflow — 2026-08-03 22:28 UTC

Download the full PDF report from the workflow artifacts.

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/openconnector @ e35f41c

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
build
composer ✅ 153/153
npm ✅ 692/692
PHPUnit ⏭️
Newman
Playwright

Quality workflow — 2026-08-03 22:51 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit 5daa448 into development Aug 3, 2026
30 checks passed
@rubenvdlinde
rubenvdlinde deleted the chore/ncvue-vue3.4 branch August 5, 2026 17:22
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