You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
bug(managed-skills): provider declaring personalAgentSkills unsupported blocks every session spawn #1014
Registering a provider that declares personalAgentSkills: { supported: false } must not affect spawning sessions of OTHER providers. Managed-skill (TLDR/Goal/personal) health should be computed over providers that actually support personal agent skills.
Actual
After merging the grok integration (PR #844, main @ 5fda2f0), every session:spawn / session recovery fails in ~7ms with:
Error occurred in handler for 'session:spawn': Error: TLDR skill is unavailable or conflicts with an existing file. Review managed skill health in Settings.
at out/main/index.js:71896
The renderer flattens this to "Session failed to start. Check provider setup and retry." All providers (claude/codex/opencode) are affected; no agent can start.
Root cause chain
src/providers/registry.main.ts:153 — grok is the first registered provider to declare personalAgentSkills.supported === false.
src/main/agentCodeConventions/targets.ts:64-67 — every registered provider with supported: false is pushed into unsupportedProviders (no install-gating; applies on every machine).
src/main/agentCodeConventions/AgentCodeConventionsService.ts:3036 — customHealth(): any unsupported provider ⇒ TLDR skill health = 'unsupported'.
AgentCodeConventionsService.ts:833 — ensureProductSkill() requires 'active' and throws otherwise.
Pre-spawn reconcile (src/main/sessionManager.ts:2618) runs ensureTldrSkill() before every spawn, for every provider.
Latent design flaw exposed: the managed-skils layer assumed "all registered providers support personal skills". Grok is the legitimate first counter-example.
Secondary breakage from the same assumption: the unsupportedProviders.length > 0 gates at AgentCodeConventionsService.ts lines 1145/1400/1518/1807/2030/2159 also block enabling any personal/custom skill app-wide.
Evidence
Incident journal run 2026-09-19T04-09-36-635Z-main-23681-9e113a:
15× conventions.pre_spawn_reconcile.error (all "TLDR skill is unavailable...")
15× recover.failed with code: start-failed, durationMs ~7 (fails before any CLI launch), kinds: claude/opencode/codex
Why tests missed it
Every conventions test stubs resolveTargets with unsupportedProviders: []; no integration test boots the real registry together with the conventions service.
Fix direction
Compute product-skill health over supported targets only. Unsupported providers surface as informational per-provider rows in Settings (the customUnsupportedStatuses() mechanism) but do not block spawns or skill enablement. Keep 'unsupported' health only for the degenerate case of zero supported providers.
Activity