Intent of claudeCustomizationTestUtils.ts ×1
All 55 exact tests in this concept. Every test is marked by where it enters the hierarchy.
-
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/55 tests-
platform/55 tests-
agentHost/55 tests-
test/55 tests-
node/55 tests-
customizations/55 tests-
claudeCommandSlashCompletion.test|title=Claude .claude/5 tests-
commands → slash completion (end-to-end) a flat .claude/1 test-
commands/1 test
-
-
commands → slash completion (end-to-end) user-scope .claude/1 test -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeCommandSlashCompletion.test|title=Claude .claude/commands → slash completion (end-to-end) a command the live SDK did not load is dropped post-materialize|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeCommandSlashCompletion.test|title=Claude .claude/commands → slash completion (end-to-end) a skill wins over a same-named command (no duplicate completion)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeCommandSlashCompletion.test|title=Claude .claude/commands → slash completion (end-to-end) the command survives the live SDK filter once a session materializes|occurrence=1
-
-
claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery ClaudeCustomizationWatcher fires for a root-level CLAUDE.md /1 test -
claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery mapDiscoveredCustomizations maps rules into per-scope Directory containers rooted at `.claude/1 test -
scan/30 tests-
claudeAgentSkillScan.test|title=claudeAgentSkillScan a `.claude/1 test -
claudeNativePluginScan.test|title=claudeNativePluginScan resolves a marketplace-cache plugin (id → <marketplace>/1 test -
claudeNativePluginScan.test|title=claudeNativePluginScan resolves an Open-Plugins-format plugin (.plugin/1 test -
claudeNativePluginScan.test|title=claudeNativePluginScan surfaces bundled components (skills /1 test -
claudeNativePluginScan.test|title=claudeNativePluginScan treats string[] /1 test -
claudeRuleScan.test|title=claudeRuleScan .claude/1 test -
claudeRuleScan.test|title=claudeRuleScan recurses into .claude/1 test -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeAgentSkillScan.test|title=claudeAgentSkillScan Agent Plugin directories are excluded across compatible manifest shapes|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeAgentSkillScan.test|title=claudeAgentSkillScan a skill wins over a same-named command (spec §3 priority)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeAgentSkillScan.test|title=claudeAgentSkillScan project scope shadows user scope on name clash|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeAgentSkillScan.test|title=claudeAgentSkillScan scans agents, skills, and commands (commands folded into skills) with real URIs|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeHookScan.test|title=claudeHookScan a scope with disableAllHooks contributes nothing|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeHookScan.test|title=claudeHookScan a settings file shared by workspace and user scope (cwd === userHome) is surfaced once|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeHookScan.test|title=claudeHookScan a settings file without a hooks block yields no entry|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeHookScan.test|title=claudeHookScan reads settings.local.json (project scope) ahead of user settings|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeHookScan.test|title=claudeHookScan surfaces one hook entry per settings file that declares hooks, with the real settings URI|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeHookScan.test|title=claudeHookScan with no workspace (undefined cwd) only the user settings file is read|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeMcpScan.test|title=claudeMcpScan ignores array-valued MCP entries|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeMcpScan.test|title=claudeMcpScan scans MCP servers from settings.json with real URIs, ignoring unrelated settings keys|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeMcpScan.test|title=claudeMcpScan scans a flat .mcp.json server map|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeMcpScan.test|title=claudeMcpScan settings.json without an mcpServers block yields no servers|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeNativePluginScan.test|title=claudeNativePluginScan breaks an mtime tie by numeric version order (`0.0.10` beats `0.0.9`)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeNativePluginScan.test|title=claudeNativePluginScan fail-soft: an enabled plugin with no resolvable root is skipped, not thrown|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeNativePluginScan.test|title=claudeNativePluginScan local `false` disables a project-enabled plugin (precedence user < project < local)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeNativePluginScan.test|title=claudeNativePluginScan no enabledPlugins block yields no plugins|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeNativePluginScan.test|title=claudeNativePluginScan picks the newest-mtime version dir when several are cached|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeNativePluginScan.test|title=claudeNativePluginScan rejects ids whose segments could traverse outside the plugin roots|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeNativePluginScan.test|title=claudeNativePluginScan resolves an in-place @skills-dir plugin, preferring the workspace scope|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeNativePluginScan.test|title=claudeNativePluginScan with no workspace, only the user-home settings are read (skills-dir skips the workspace candidate)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/scan/claudeRuleScan.test|title=claudeRuleScan CLAUDE.md memory files (project + user) become always-on rules with the file name|occurrence=1
-
-
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery ClaudeCustomizationWatcher fires once (debounced) for changes under watched roots and ignores unrelated edits|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery ClaudeCustomizationWatcher ignores SDK runtime churn under `.claude` (transcripts, history, tasks, ...)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery buildDiscoveredCustomizations SDK-only commands surface read-only in the Built-in container, not among editable disk skills|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery buildDiscoveredCustomizations a surfaced plugin's components do not also leak as standalone SDK fallbacks (bare + namespaced names suppressed)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery buildDiscoveredCustomizations hooks survive the post-materialize SDK filter (no SDK counterpart)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery buildDiscoveredCustomizations post-materialize filter keeps SDK-known disk entries, hides unknown, adds non-editable fallback|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery buildDiscoveredCustomizations post-materialize keeps native plugins the live session loaded, hides the rest (matched by root path)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery buildDiscoveredCustomizations post-materialize matches a plugin by SDK `source` (id) even when the reported path is not the resolved root|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery buildDiscoveredCustomizations pre-materialize seeds curated built-in agents (claude-internal; general-purpose hidden; disk name wins)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery buildDiscoveredCustomizations pre-materialize shows all native plugins (no live session to filter against)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery buildDiscoveredCustomizations rules survive the post-materialize SDK filter (no SDK counterpart)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery mapDiscoveredCustomizations maps a native plugin into a top-level Plugin container carrying its bundled children|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery mapDiscoveredCustomizations maps discovered entries into per-scope Directory containers with real child URIs + top-level MCP|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery mapDiscoveredCustomizations maps hooks into per-scope Directory containers carrying the real settings-file URI|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery resolveClaudeAgentName claude-internal URI decodes the name (inverse of nonEditableUri)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery resolveClaudeAgentName file URI resolves the frontmatter name (not the filename)|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery resolveClaudeAgentName no selection → undefined|occurrence=1 -
mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/agentHost/test/node/customizations/claudeSessionCustomizationDiscovery.test|title=claudeSessionCustomizationDiscovery resolveClaudeAgentName unreadable file URI falls back to the basename (minus .md)|occurrence=1
-
-
-
-
-
-