1008
*/
1009
async getSessionCustomizations(): Promise<readonly Customization[]> {
1011
>
const userHome = this._environmentService.userHome;
1012
>
const [discovered, rules, mcpServers, hooks, nativePlugins] = await Promise.all([
1013
>
scanClaudeDiskCustomizations(this.workingDirectory, userHome, this._fileService),
1014
>
scanClaudeRules(this.workingDirectory, userHome, this._fileService),
1015
>
scanClaudeMcpServers(this.workingDirectory, userHome, this._fileService),
1016
>
scanClaudeHooks(this.workingDirectory, userHome, this._fileService),
1017
>
scanClaudeNativePlugins(this.workingDirectory, userHome, this._fileService, this._logService),
1018
>
]);
1019
>
1020
>
// Post-materialize, the live SDK snapshot filters the disk set down to
1021
>
// what the session actually loaded (and surfaces SDK-only items as
1022
>
// non-editable). Pre-materialize there is no Query, so the full disk
1023
>
// set is shown. A transient SDK read failure leaves `sdk` undefined,
1024
>
// falling back to the unfiltered disk set rather than blanking the UI.
1025
>
let sdk: ISdkResolvedCustomizations | undefined;
1026
>
if (this._pipeline) {
1027
try {
1028
sdk = await this._pipeline.snapshotResolvedCustomizations();