Skip to content

Double AI-companion hex still live on 14 apps: nc-vue locked below 2.7.0 #404

Description

@rubenvdlinde

The double hex is still live on 14 of 17 apps

The companion singleton fix shipped in nc-vue 2.7.0. Measured on the running instance this morning:

page nc-vue .cn-ai-floating-button result
/apps/openconnector/ 2.7.1 1 hermiq's standalone stood down correctly
/apps/openbuild/ 2.6.3 2, both visible at 52×60, offset 8 px the reported double hex

The two on the openbuild page are not duplicates of one mount — they are two different mounts:

button.cn-ai-floating-button → div.cn-ai-companion → div#content-vue.app-openbuild   ← host app's bundle
button.cn-ai-floating-button → div.cn-ai-companion → div#hermiq-companion-root       ← hermiq's init script

window.__cnAiCompanionPrimary was claimed, and both still rendered display:flex / visibility:visible / opacity:1 long past the 1200 ms LEGACY_SIBLING_DELAY. So the negotiation works between two 2.7.x instances and fails when the host app's copy predates it.

Who is affected — read from development, not from local checkouts

package-lock.json on development:

version apps
2.3.0 opencatalogi, docudesk, pipelinq, decidesk, nldesign, larpingapp, softwarecatalog, procest, shillinq, doriath, launchpad, scholiq
2.4.0 portaliq
2.6.3 openbuild
≥ 2.7.0 openregister (2.8.0), openconnector (2.8.0), hermiq (2.7.0)

14 apps below 2.7.0. The caret ranges (^2.3.0) already permit 2.8.0 — as with hydra-gates, it is the lockfile doing the pinning, not the constraint.

⚠️ The npm vue3 dist-tag still points at 2.3.0 while latest is 2.8.0, which makes 2.3.0 look deliberate. It is not a compatibility boundary: npm view shows the two releases declare identical peer dependencies, vue: ^3.5.0 included. The tag is simply stale and worth moving or retiring.

Validated, not assumed

On a clean clone of openbuild@development:

npm install @conduction/nextcloud-vue@2.8.0   → exit 0, lock 2.6.3 → 2.8.0
npm run build                                  → exit 0 (webpack, 3 warnings, no errors)
grep __cnAiCompanionPrimary js/                → present in openbuild-main.js and openbuild-builder.js

So the bump installs, compiles, and ships the guard.

Why this is filed rather than merged

Bumping a UI library five minor versions across 14 apps is a visible change, and the only gate is each app's own e2e suite. That is a fleet-wide UI decision, not a lockfile bump, so it should not land unattended overnight.

The recipe is ready and can be executed per-app on approval — same shape as the hydra-gates v1.8.1 rollout that landed this morning.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

triageAwaiting triage

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions