You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
codegraph callers usePermissions lists every .ts caller (14 of 14) but none of the .vue callers (0 of 5). For a composable called only from .ts files, every caller is found (34 of 34).
A .vue file that imports the composable explicitly (import { useSidebarState } from "~/composables/useSidebarState") is linked, so the gap is auto-imported calls from .vue<script setup> only.
Expected
.vue files that call an auto-imported composable appear as callers, the same as .ts files, so impact and the blast radius in codegraph_explore include the components that use it.
Why it matters
In a Nuxt app most components call composables at the top of <script setup> (about 75 components in ours), so the blast radius of a composable change misses the components.
This looks like a duplicate of #2340, already fixed on main by #2357 (8998697, merged 2026-10-05, after 1.6.2 was released on 10-03). It hasn't been released yet.
The trigger isn't the auto-import itself. A destructuring declaration at the top of <script setup> (const { hasPermission, loaded } = usePermissions()) dropped its initializer's call, so a plain const perms = usePermissions(), or the same call inside a function, was linked even on 1.6.2.
Thanks for the clear report! This is fixed on main by #2357. It links calls in a destructuring declaration at the top of <script setup>, like const { hasPermission, loaded } = usePermissions(), which was the shape dropping your .vue callers (as @JiaMingWang-CN worked out).
We rebuilt your setup as a Nuxt 4 fixture with an auto-imported composable. On current main, codegraph callers usePermissions lists every .vue and .ts caller, while the build just before #2357 misses the components. It was merged after 1.6.2, so it ships in the next release; re-index your project after upgrading.
Activity
JiaMingWang-CN commentedon Oct 22, 2026
This looks like a duplicate of #2340, already fixed on
mainby #2357 (8998697, merged 2026-10-05, after 1.6.2 was released on 10-03). It hasn't been released yet.The trigger isn't the auto-import itself. A destructuring declaration at the top of
<script setup>(const { hasPermission, loaded } = usePermissions()) dropped its initializer's call, so a plainconst perms = usePermissions(), or the same call inside a function, was linked even on 1.6.2.Minimal Nuxt 4 repro (
srcDir: 'app/',usePermissionsexported fromapp/composables/usePermissions.ts).codegraph callers usePermissions:PermGate.vuePermGateImported.vueimportsedge onlyimportsedge onlyPermGateJs.vueconst perms = usePermissions()pages/index.vuecomposables/useAdmin.ts.tscallerSo this can probably be closed once the next release ships.
colbymchenry commentedon Oct 22, 2026
Thanks for the clear report! This is fixed on
mainby #2357. It links calls in a destructuring declaration at the top of<script setup>, likeconst { hasPermission, loaded } = usePermissions(), which was the shape dropping your.vuecallers (as @JiaMingWang-CN worked out).We rebuilt your setup as a Nuxt 4 fixture with an auto-imported composable. On current
main,codegraph callers usePermissionslists every.vueand.tscaller, while the build just before #2357 misses the components. It was merged after 1.6.2, so it ships in the next release; re-index your project after upgrading.