Unified · Split
Binary file not shown.
| @@ -92,11 +92,11 @@ export const CURATED_CODEX_PLUGINS: readonly CuratedCodexPlugin[] = [ · 91 unmodified lines | ||
| 92 | 92 | pluginName: "messages", |
| 93 | 93 | name: "Messages", |
| 94 | 94 | slug: "codex_messages", |
| 95 | − // Apple's own mark. The Messages app icon is not published anywhere | |
| 96 | − // hotlinkable — it is a system app, so it is absent from the App Store | |
| 97 | − // artwork API, and `messages.apple.com` resolves to this same Apple mark. | |
| 98 | − // It is the honest stand-in: this plugin drives Apple's Messages app. | |
| 99 | − publicIcon: "https://integrations.sh/logo/apple.com", | |
| 95 | + // Served by the app itself (`packages/app/public`), because the Messages | |
| 96 | + // app icon is published nowhere hotlinkable: it is a system app, absent | |
| 97 | + // from the App Store artwork API, and `messages.apple.com` resolves to | |
| 98 | + // the plain Apple mark. Root-relative, so local and cloud both serve it. | |
| 99 | + publicIcon: "/plugin-icons/messages.webp", | |
| 100 | 100 | requires: "computer-use-app", |
| 101 | 101 | server: "messages", |
| 102 | 102 | summary: |
| @@ -182,7 +182,7 @@ describe("scanCodexPlugins", () => { · 181 unmodified lines | ||
| 182 | 182 | expect(byId.get("codex-messages")?.setupUrl).toBe("https://openai.com/codex"); |
| 183 | 183 | expect(byId.get("codex-chrome")?.setupUrl).toContain("learn.chatgpt.com"); |
| 184 | 184 | expect(byId.get("codex-computer-use")?.fallbackIcon).toContain("computer-use-plugin-icon"); |
| 185 | − expect(byId.get("codex-messages")?.fallbackIcon).toContain("apple.com"); | |
| 185 | + expect(byId.get("codex-messages")?.fallbackIcon).toBe("/plugin-icons/messages.webp"); | |
| 186 | 186 | // Computer History has no published mark of its own, so it identifies its |
| 187 | 187 | // provider instead. |
| 188 | 188 | expect(byId.get("codex-computer-history")?.fallbackIcon).toContain("openai.com"); |