diff --git a/Sources/CodexBarCore/Providers/ProviderFetchPlan.swift b/Sources/CodexBarCore/Providers/ProviderFetchPlan.swift index a78dbe474e..b2845bd29a 100644 --- a/Sources/CodexBarCore/Providers/ProviderFetchPlan.swift +++ b/Sources/CodexBarCore/Providers/ProviderFetchPlan.swift @@ -175,7 +175,10 @@ public enum ProviderFetchError: LocalizedError, Sendable { public var errorDescription: String? { switch self { case let .noAvailableStrategy(provider): - "No available fetch strategy for \(provider.rawValue)." + if provider == .kiro { + return "Kiro usage requires the Kiro CLI. Install it from https://kiro.dev/docs/cli/ and run 'kiro-cli login' first." + } + return "No available fetch strategy for \(provider.rawValue)." } } } diff --git a/Tests/CodexBarTests/ProviderFetchErrorTests.swift b/Tests/CodexBarTests/ProviderFetchErrorTests.swift new file mode 100644 index 0000000000..22f84557fb --- /dev/null +++ b/Tests/CodexBarTests/ProviderFetchErrorTests.swift @@ -0,0 +1,12 @@ +import Testing +@testable import CodexBarCore + +struct ProviderFetchErrorTests { + @Test + func `missing kiro strategy explains cli requirement`() { + let message = ProviderFetchError.noAvailableStrategy(.kiro).localizedDescription + + #expect(message.contains("Kiro CLI")) + #expect(message.contains("kiro-cli login")) + } +}