diff --git a/CHANGELOG.md b/CHANGELOG.md
index 73eca1d..141b1bf 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,14 @@ pin and a line to read before you move.
## [Unreleased]
+### Changed
+
+- **The GitHub mark is restored.** The sidebar, settings, command center and timeline cards use
+ an inline Octicons SVG instead of a Lucide icon name, so removing Lucide's brand icons cannot
+ break the plugin. The mark inherits the host's color in light and dark themes.
+- **Requires Paseo 0.13.0-beta.1 or newer.** Inline SVG icons need the 0.13 icon API; the SDK and
+ its client/protocol type dependencies now target 0.13.0.
+
## [1.0.1] — 2026-09-12
### Changed
diff --git a/CLAUDE.md b/CLAUDE.md
index 828e6e5..166e7ec 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -469,7 +469,7 @@ row that fails validation still renders as nothing rather than throwing.
Still `props.navigation.openAgent({ agentId })`, run in the client bundle because the server half
lives beside the daemon, which on a remote host is a different machine from the one the user is
-looking at. The plugin now requires Paseo `>=0.8.0` outright, so the pre-navigation-prop fallback
+looking at. The plugin now requires Paseo `>=0.13.0-beta.1` outright, so the pre-navigation-prop fallback
this section used to describe is gone: every client that can run this bundle at all received the
`navigation` prop with it.
diff --git a/README.md b/README.md
index a627008..9d78862 100644
--- a/README.md
+++ b/README.md
@@ -43,9 +43,9 @@ command to run and a button to copy it, rather than an error.
## Install
-Requires Paseo **0.8.0 or newer** on the daemon *and* on the app, plus the
+Requires Paseo **0.13.0-beta.1 or newer** on the daemon *and* on the app, plus the
[`gh` CLI](https://cli.github.com/) authenticated on the daemon machine — the plugin shells out to
-it and never handles a token itself.
+it and never handles a token itself. Inline SVG icons require the 0.13 icon API.
```bash
paseo plugin add alysnnix/paseo-github-integration
diff --git a/client/board/use-board-overlays.tsx b/client/board/use-board-overlays.tsx
index b7e16dc..fac8752 100644
--- a/client/board/use-board-overlays.tsx
+++ b/client/board/use-board-overlays.tsx
@@ -228,7 +228,7 @@ export function useBoardOverlays(
* `navigateToAgent` against the host rendering the surface.
*
* The prop is still typed optional because hosts before 0.7.0-beta.3 passed
- * nothing. This plugin now requires Paseo >=0.8.0, and each app checks that
+ * nothing. This plugin now requires Paseo >=0.13.0-beta.1, and each app checks that
* against its *own* version before it evaluates this bundle, so every client
* that can run this code passes it. The `undefined` branch therefore only
* leaves the notice standing — which already names the workspace the work went
diff --git a/client/icons/github.ts b/client/icons/github.ts
new file mode 100644
index 0000000..83729c9
--- /dev/null
+++ b/client/icons/github.ts
@@ -0,0 +1,33 @@
+import type { PluginSvgIcon } from "@getpaseo/plugin/client";
+
+/**
+ * GitHub's Octicons mark-github-16, with currentColor for the host's theme.
+ * Inline SVG keeps the brand mark independent of Lucide's removed brand icons.
+ * Source: https://github.com/primer/octicons/blob/main/icons/mark-github-16.svg
+ *
+ * MIT License
+ * Copyright (c) 2026 GitHub Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+export const githubIcon: PluginSvgIcon = {
+ svg: ``,
+};
diff --git a/client/timeline.tsx b/client/timeline.tsx
index fd0683b..6094314 100644
--- a/client/timeline.tsx
+++ b/client/timeline.tsx
@@ -14,6 +14,7 @@ import { useMemo } from "react";
import { Pressable, Text, View } from "react-native";
import type { BoardTimelineItem } from "../shared/board";
+import { githubIcon } from "./icons/github";
import { openExternalUrl } from "./web";
/**
@@ -81,7 +82,7 @@ export function BoardTimelineCard({
onPress={() => openExternalUrl(url)}
>
-
+
{repository} #{number}
diff --git a/index.client.tsx b/index.client.tsx
index 47036ea..50955ec 100644
--- a/index.client.tsx
+++ b/index.client.tsx
@@ -1,6 +1,7 @@
import type { PluginClientContext } from "@getpaseo/plugin/client";
import { GitHubBoard } from "./client/board/github-board";
+import { githubIcon } from "./client/icons/github";
import { BoardSettingsScreen } from "./client/settings/settings-screen";
import { BoardTimelineCard } from "./client/timeline";
import { BoardTimelineItemSchema } from "./shared/board";
@@ -26,13 +27,13 @@ export default function contribute(client: PluginClientContext) {
client.addSidebarItem({
id: "board",
title: "GitHub",
- icon: "GitPullRequest",
+ icon: githubIcon,
surface: "board",
});
client.addSettingsScreen({
id: "board",
title: "GitHub board",
- icon: "GitPullRequest",
+ icon: githubIcon,
Component: BoardSettingsScreen,
});
client.addCommandCenterItem({
@@ -48,7 +49,7 @@ export default function contribute(client: PluginClientContext) {
client.addCommandCenterItem({
id: "open-board",
title: "Open GitHub board",
- icon: "GitPullRequest",
+ icon: githubIcon,
keywords: ["github", "issues", "pull requests", "prs", "discussions"],
context: "global",
onSelect(context) {
diff --git a/package-lock.json b/package-lock.json
index 722cb84..9467a69 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,18 +1,18 @@
{
"name": "paseo-github-integration",
- "version": "0.5.0",
+ "version": "1.0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "paseo-github-integration",
- "version": "0.5.0",
+ "version": "1.0.1",
"dependencies": {
- "@getpaseo/plugin": "0.8.0-beta.1"
+ "@getpaseo/plugin": "0.13.0"
},
"devDependencies": {
- "@getpaseo/client": "0.8.0-beta.1",
- "@getpaseo/protocol": "0.8.0-beta.1",
+ "@getpaseo/client": "0.13.0",
+ "@getpaseo/protocol": "0.13.0",
"@tanstack/react-query": "^5.102.8",
"@types/node": "^26.5.0",
"@types/react": "~19.2.0",
@@ -522,27 +522,29 @@
}
},
"node_modules/@getpaseo/client": {
- "version": "0.8.0-beta.1",
- "resolved": "https://registry.npmjs.org/@getpaseo/client/-/client-0.8.0-beta.1.tgz",
- "integrity": "sha512-+JHqeg4eCWYa3TqMNN1FLaDWpoXM6PrPArOpzfV/Qm+2Mhw/bA07QS+zjMzDpVz7QZ+z6eN/96qAbQ1eFOD6Zg==",
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@getpaseo/client/-/client-0.13.0.tgz",
+ "integrity": "sha512-379gl/OHIowATqKBZugupxX6HaOPWQhkOeVnlMQNWnZ5oKbyfCTEPGSkzA8Kotvv1Uue2u+j8z2WnLXyZ9ChYQ==",
"dependencies": {
- "@getpaseo/protocol": "0.8.0-beta.1",
- "@getpaseo/relay": "0.8.0-beta.1",
+ "@getpaseo/protocol": "0.13.0",
+ "@getpaseo/relay": "0.13.0",
+ "ws": "^8.20.0",
"zod": "^4.4.3"
}
},
"node_modules/@getpaseo/plugin": {
- "version": "0.8.0-beta.1",
- "resolved": "https://registry.npmjs.org/@getpaseo/plugin/-/plugin-0.8.0-beta.1.tgz",
- "integrity": "sha512-7/4cAfd3+GNB8rEYytFbp+Z8x/QfXlLIGMa8pcdn2YgrQUuO8Hjc3L9CGan3IoAYva/ttQn9biCOvvVWcDmMoQ==",
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@getpaseo/plugin/-/plugin-0.13.0.tgz",
+ "integrity": "sha512-8aGH0lf5kF9yjaM0dVsm8Awu5eB2jHhmbX9ljgf6+jttNWX3XRbRNeylg3whPoKORGrJNlpuLx3XvJMC5KSCaQ==",
"dependencies": {
"@agentclientprotocol/sdk": "^1.4.0",
+ "i18next": "^26.3.0",
"use-sync-external-store": "^1.6.0"
},
"peerDependencies": {
- "@getpaseo/client": "0.8.0-beta.1",
- "@getpaseo/protocol": "0.8.0-beta.1",
- "react": "~19.1.0",
+ "@getpaseo/client": "0.13.0",
+ "@getpaseo/protocol": "0.13.0",
+ "react": ">=19.1.0 <20",
"react-native": ">=0.81.5",
"zod": "^4.4.3"
},
@@ -553,19 +555,22 @@
}
},
"node_modules/@getpaseo/protocol": {
- "version": "0.8.0-beta.1",
- "resolved": "https://registry.npmjs.org/@getpaseo/protocol/-/protocol-0.8.0-beta.1.tgz",
- "integrity": "sha512-7GQfNTe8cGgWPQDvY4F6CwEe75HdtPB7d+XQ+SZYRWM4IGkQhgXPM6hGFaDqut9LAweKNYllttA2FaDAJmmo+g==",
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@getpaseo/protocol/-/protocol-0.13.0.tgz",
+ "integrity": "sha512-g5Hp6QP5hV7KTCrSRBVye2+qhptwnhhLXRn6PHaS1L8PgmeRh5LvrE8PZq3HRq8B1WxflVDuV2WRB2Z3FNcvJA==",
"dependencies": {
"semver": "^7.8.5",
"zod": "^4.4.3"
}
},
"node_modules/@getpaseo/relay": {
- "version": "0.8.0-beta.1",
- "resolved": "https://registry.npmjs.org/@getpaseo/relay/-/relay-0.8.0-beta.1.tgz",
- "integrity": "sha512-aZGmgbQEU/DgPCW/zOdKce//nWiuMU1N5ikMG1q0z2acRQNPwdAok9fQO3iuNIcTENF/32azpWqgsr/qeMp5gA==",
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@getpaseo/relay/-/relay-0.13.0.tgz",
+ "integrity": "sha512-Yd/RR+2hStTEtmkutwE21drjVmgz+RnQWyjmoh1++dPysp2oNsrimurnbfN0yoBJ5xXWlyuvn8Sr7CziTpkv7Q==",
"dependencies": {
+ "@noble/ciphers": "^2.4.0",
+ "@noble/curves": "^2.4.0",
+ "@noble/hashes": "^2.4.0",
"base64-js": "^1.5.1",
"tweetnacl": "^1.0.3",
"ws": "^8.14.2"
@@ -774,6 +779,45 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "node_modules/@noble/ciphers": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-2.4.0.tgz",
+ "integrity": "sha512-AnjFn0Jv92laAkvMrghlFZq4qQCIN/4DxFV/eooqtC2YTjB7kBeLMS2T9KJX4Dn+ZVXLOwK0lSgqDtx9gvxtiw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 20.19.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@noble/curves": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.4.0.tgz",
+ "integrity": "sha512-P4/62zrgfH33CneE3Dn4WhJVA22YUU0eR51wKIan4NVRvwsA0YnPTwWGpNbpuacSujmSFLvyzpyuR30+fbq2Ew==",
+ "license": "MIT",
+ "dependencies": {
+ "@noble/hashes": "2.4.0"
+ },
+ "engines": {
+ "node": ">= 20.19.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@noble/hashes": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.4.0.tgz",
+ "integrity": "sha512-X5XaVWZIBCT7HHZGm5I7ZQXDwLG+bGXuSrMQAW+7Zvl87h1kmc1ZB1VSRJcpUfoUrGQp4Fkoxm5kZ+Ms+aW+eA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 20.19.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
"node_modules/@oxc-project/types": {
"version": "0.149.0",
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.149.0.tgz",
@@ -1779,7 +1823,7 @@
"version": "19.2.18",
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz",
"integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==",
- "devOptional": true,
+ "dev": true,
"license": "MIT",
"dependencies": {
"csstype": "^3.2.2"
@@ -2760,7 +2804,7 @@
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
- "devOptional": true,
+ "dev": true,
"license": "MIT"
},
"node_modules/debug": {
@@ -3060,6 +3104,7 @@
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
"hasInstallScript": true,
"license": "MIT",
"optional": true,
@@ -3201,6 +3246,34 @@
"node": ">= 14"
}
},
+ "node_modules/i18next": {
+ "version": "26.5.11",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-26.5.11.tgz",
+ "integrity": "sha512-Wc0klBPKxqZ2tL2qdAnF8xvvnWgr1IMGSY2ikTiAvaFVbz7xiFARtkoU4RidBDw1SyziGROp0qxu6qnJ7l2Wug==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://www.locize.com/i18next"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.locize.com"
+ }
+ ],
+ "license": "MIT",
+ "peerDependencies": {
+ "typescript": "^5 || ^6 || ^7"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
"node_modules/imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
@@ -5506,7 +5579,7 @@
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz",
"integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==",
- "dev": true,
+ "devOptional": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc"
@@ -5874,9 +5947,9 @@
}
},
"node_modules/ws": {
- "version": "8.21.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz",
- "integrity": "sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==",
+ "version": "8.22.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.22.0.tgz",
+ "integrity": "sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
diff --git a/package.json b/package.json
index bfc655b..f1e8f28 100644
--- a/package.json
+++ b/package.json
@@ -9,11 +9,11 @@
"test": "vitest run"
},
"dependencies": {
- "@getpaseo/plugin": "0.8.0-beta.1"
+ "@getpaseo/plugin": "0.13.0"
},
"devDependencies": {
- "@getpaseo/client": "0.8.0-beta.1",
- "@getpaseo/protocol": "0.8.0-beta.1",
+ "@getpaseo/client": "0.13.0",
+ "@getpaseo/protocol": "0.13.0",
"@tanstack/react-query": "^5.102.8",
"@types/node": "^26.5.0",
"@types/react": "~19.2.0",
diff --git a/paseo-plugin.json b/paseo-plugin.json
index 4a875a5..d0e54cc 100644
--- a/paseo-plugin.json
+++ b/paseo-plugin.json
@@ -1,4 +1,4 @@
{
"id": "github-integration",
- "requirements": { "paseo": ">=0.8.0" }
+ "requirements": { "paseo": ">=0.13.0-beta.1" }
}