After moving languages to a lazy-loaded API, the /api/languages response only
included languages with compilers, dropping cmake. IDE/tree mode editors for
CMakeLists.txt then crashed in Editor.changeLanguage. Tree state from shared
links could also reference languages no longer configured locally, crashing
MultifileService.getDefaultMainSourceFilename.
- handleLanguages now always includes cmake when configured, mirroring the
filterLanguages "always keep cmake for IDE mode" behaviour.
- Editor.changeLanguage no longer unwraps the cmake option, degrading
gracefully if it is still missing.
- Tree validates compilerLanguageId against the available languages and falls
back to defaultLanguage / c++ when the shared id is unknown.
- getDefaultMainSourceFilename guards against a missing language entry as a
safety net.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>