Source Control Hides Some Submodules Arbitrarily
- Dominant language
- TypeScript
- Stars
- 193k
- Forks
- 42.4k
- PR merge metrics
- PR metrics pending
Description
Type: Bug
1. have a number of different top-level repos/worktrees open (16 in my case - 2 standalone repos + 15 checked-out worktrees of one of them)
2. check the tree displayed in the Source Control pane
VS Code version: Code 1.130.0 (1b6a188127eeaf9194f945eb6eb89a657e93c54c, 2026-07-22T14:55:04Z)
OS version: Linux x64 7.0.0-110030-tuxedo
Modes:
System Info
|Item|Value|
|---|---|
|CPUs|13th Gen Intel(R) Core(TM) i9-13900HX (32 x 1280)|
|GPU Status|2d_canvas: enabled
GPU0: VENDOR= 0x10de, DEVICE=0x28e0, DRIVER_VENDOR=Mesa, DRIVER_VERSION=26.1.6
GPU1: VENDOR= 0x8086, DEVICE=0xa788, DRIVER_VENDOR=Mesa, DRIVER_VERSION=26.1.6 *ACTIVE*
Machine model name:
Machine model version:
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
trees_in_viz: disabled_off
video_decode: enabled
video_encode: disabled_software
vulkan: disabled_off
webgl: enabled
webgpu: enabled
webgpu_on_vk_via_gl_interop: enabled
webnn: disabled_off|
|Load (avg)|3, 2, 1|
|Memory (System)|62.50GB (41.48GB free)|
|Process Argv|--extensions-dir=/home/felixs/.var/app/com.visualstudio.code/data/vscode/extensions --reuse-window --crash-reporter-id 4e60ce98-cba0-4cab-9462-ea5598d9fa4d|
|Screen Reader|no|
|VM|0%|
|DESKTOP_SESSION|plasmax11|
|XDG_CURRENT_DESKTOP|KDE|
|XDG_SESSION_DESKTOP|KDE|
|XDG_SESSION_TYPE|x11|
Extensions (31)
Name|Identifier|Author|Version
---|---|---|---
Goto definition alias|antfu.goto-alias|antfu|1.0.0
Iconify IntelliSense|antfu.iconify|antfu|1.0.0
Multiple cursor case preserve|cardinal90.multi-cursor-case-preserve|Cardinal90|1.0.5
todotxt-mode|davraamides.todotxt-mode|davraamides|1.4.33
ESLint|dbaeumer.vscode-eslint|dbaeumer|3.0.34
GitHub Actions|github.vscode-github-actions|github|0.32.3
GraphQL: Syntax Highlighting|graphql.vscode-graphql-syntax|GraphQL|1.3.10
Markdown Checkbox Preview|gsejas.markdown-checkbox-preview|GSejas|1.0.9
YAML ❤️ JSON|hilleer.yaml-plus-json|hilleer|1.17.0
ENV|irongeek.vscode-env|IronGeek|0.1.0
Edit CSV|janisdd.vscode-edit-csv|janisdd|0.11.9
PlantUML|jebbs.plantuml|jebbs|2.18.1
Simple JSON Table Editor|lucasyou.simple-json-table-editor|LucasYou|0.0.5
Bash IDE|mads-hartmann.bash-ide-vscode|mads-hartmann|1.43.0
Nuxt Jump to Server Routes|martinszeltins.nuxt-jump-to-server-routes|MartinsZeltins|1.1.0
Template String Converter|meganrogge.template-string-converter|meganrogge|0.6.1
Mistral Vibe VS Code|mistralai.mistral-vibe-code|mistralai|1.20.0
Duplicate action|mrmlnc.vscode-duplicate|mrmlnc|1.2.1
Atom Keymap|ms-vscode.atom-keybindings|ms-vscode|3.3.0
VS Code Speech|ms-vscode.vscode-speech|ms-vscode|0.16.0
Tinymist Typst|myriad-dreamin.tinymist|myriad-dreamin|0.15.2
Comark - Components in Markdown (previously MDC)|nuxt.mdc|Nuxt|0.6.2
YAML|redhat.vscode-yaml|redhat|1.24.0
Bash Beautify|shakram02.bash-beautify|shakram02|0.1.1
SpecMD - Conditional Markdown|shogohayashi.specmd|SHOGOHAYASHI|0.2.4
Svg Preview|simonsiefke.svg-preview|SimonSiefke|2.8.3
Markdown Table|takumii.markdowntable|TakumiI|0.13.0
Even Better TOML|tamasfe.even-better-toml|tamasfe|0.21.2
Shell Script Command Completion|tetradresearch.vscode-h2o|tetradresearch|0.3.1
Vue (Official)|vue.volar|Vue|3.3.11
Markdown All in One|yzhang.markdown-all-in-one|yzhang|3.6.3
A/B Experiments
```
vsliv368cf:30146710
binariesv615:30325510
nativeloc1:31344060
dwcopilot:31170013
dwoutputs:31242946
copilot_t_ci:31333650
e5gg6876:31282496
pythonrdcb7:31342333
6518g693:31463988
aj953862:31281341
4f60g487:31327383
envsactivate1:31551504
cloudbuttont:31379625
3efgi100_wstrepl:31403338
ec5jj548:31422691
cp_cls_t_966_ss:31526232
4je02754:31466945
8hhj4413:31478653
cp_cls_c_1081:31454833
conptydll_true:31498968
e9c30283:31461165
46204921:31447328
ei9d7968:31496641
chat:31457767
h08i8180_copy:31475368
ddid_c:31478207
hmra_i5g22:31518061
7df3h592:31512476
cp_cls_t_1082:31535311
logging_enabled_new:31498466
db5d2638:31499441
jb_cp_cls_t_632:31543129
56dj4588:31512888
32d76977:31512328
ha629193:31508444
a1ije391_t:31540920
jbcp_cls_pctr_t:31531130
61138546:31518536
cp_intellij_t_nes:31548657
gf14b233:31526830
ahp-both-windows:31556933
ihg5j128:31534457
f412h606:31551416
7g2b5551:31542111
sandbox-ui-on-2:31543161
enable_editor_pane_layout:31569726
allow-none:31555437
36h42362:31564511
1h923230:31564177
1532g621_copy:31554320
d4c76da2:31557006
treatment-23-1:31555779
unuse_dynamic_mcp:31555281
5b8j3302:31564601
mangle-name-treatment:31572634
```
Extension Bisect told me it's likely a VSCode core issue.
Since it seems really arbitrary (to me) for which repos Code shows submodules and for which it doesn't, this bug may be hard to reproduce, so I'll include this screenshot for evidence. Each top-level repo in my setup contains the same 2 submodules `schema` and `expert`, but they show only for an arbitrary subset of repos (partially):
I'll also emphasize that submodules are properly `init`'ed and `update`'d in each repo.
Contributor guide
Assessment
This issue has not been assessed yet.