Reviewer (PR #2106, elevated): if capability-registry.cjs fails to load, _hostBehaviors('claude') returned {} — silently routing a claude LOCAL install to the repo-shared settings.json instead of the gitignored settings.local.json (#338), skipping mergeClaudePermissions + the .gsd-source marker. The migration is what introduced that registry dependency (pre-PR the path had none). Add FALLBACK_HOST_BEHAVIORS (keyed by runtime id — a data lookup, not a runtime==='claude' branch) mirroring the reference host's #338-privacy-critical keys (settingsFileByScope, permissionsSchema, sourceMarkerFile), consulted only when the registry (or the descriptor) is unavailable. Behavior degrades CLOSED, never open; the live descriptor stays the source of truth. Normal (registry-present) output is unchanged (golden parity preserved). Pinned by tests via a registry-injected _resolveHostBehaviors helper. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
478 KiB
Executable File
478 KiB
Executable File