diff --git a/supacode/Assets.xcassets/CommandIcons/Qwen.imageset/Contents.json b/supacode/Assets.xcassets/CommandIcons/Qwen.imageset/Contents.json new file mode 100644 index 00000000..12c40eb1 --- /dev/null +++ b/supacode/Assets.xcassets/CommandIcons/Qwen.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "Qwen.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/supacode/Assets.xcassets/CommandIcons/Qwen.imageset/Qwen.svg b/supacode/Assets.xcassets/CommandIcons/Qwen.imageset/Qwen.svg new file mode 100644 index 00000000..6232ae3e --- /dev/null +++ b/supacode/Assets.xcassets/CommandIcons/Qwen.imageset/Qwen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/supacode/Features/Terminal/Models/CommandIconMap.swift b/supacode/Features/Terminal/Models/CommandIconMap.swift index 665cb00c..f95472ee 100644 --- a/supacode/Features/Terminal/Models/CommandIconMap.swift +++ b/supacode/Features/Terminal/Models/CommandIconMap.swift @@ -44,6 +44,7 @@ enum CommandIconMap { "gemini": TabIconSource(systemSymbol: "sparkle", assetName: "Gemini"), "kimi": TabIconSource(systemSymbol: "sparkle", assetName: "Kimi"), "opencode": TabIconSource(systemSymbol: "sparkle", assetName: "OpenCode"), + "qwen": TabIconSource(systemSymbol: "sparkle", assetName: "Qwen"), "omp": TabIconSource(systemSymbol: "sparkle", assetName: "OMP"), "oh-my-pi": TabIconSource(systemSymbol: "sparkle", assetName: "OMP"), "pi": TabIconSource(systemSymbol: "sparkle", assetName: "Pi"), diff --git a/supacodeTests/CommandIconMapTests.swift b/supacodeTests/CommandIconMapTests.swift index 1a9cd28c..26647558 100644 --- a/supacodeTests/CommandIconMapTests.swift +++ b/supacodeTests/CommandIconMapTests.swift @@ -77,6 +77,7 @@ struct CommandIconMapTests { #expect(CommandIconMap.iconForFirstToken("cursor-agent")?.assetName == "Cursor") #expect(CommandIconMap.iconForFirstToken("cline")?.assetName == "Cline") #expect(CommandIconMap.iconForFirstToken("droid")?.assetName == "Droid") + #expect(CommandIconMap.iconForFirstToken("qwen")?.assetName == "Qwen") // Aider has no bundled brand asset — sparkle fallback only. #expect(CommandIconMap.iconForFirstToken("aider")?.systemSymbol == "sparkle") #expect(CommandIconMap.iconForFirstToken("aider")?.assetName == nil)