Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,28 @@ jobs:

- name: Test MCP
run: bun run --cwd mcp test

openclaw:
name: OpenClaw
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.1

- name: Install dependencies
run: bun install --frozen-lockfile

- name: Build OpenClaw dependencies
run: |
bun run --cwd packages/protocol build
bun run --cwd packages/oauth-core build
bun run --cwd packages/bot-api-types build
bun run --cwd sdk build

- name: Check OpenClaw
run: bun run --cwd openclaw check
6 changes: 3 additions & 3 deletions openclaw/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ the plugin version for your OpenClaw release line:

| OpenClaw line | Inline plugin | Exact install |
| --- | --- | --- |
| `2026.8.x` (`>=2026.8.2`) | `0.0.66` | `openclaw plugins install @inline-openclaw/inline --force --accept-capabilities` |
| `2026.8.x` (`>=2026.8.2`) | `0.0.67` | `openclaw plugins install @inline-openclaw/inline --force --accept-capabilities` |
| `2026.7.x` (`>=2026.7.1`) | `0.0.63` | `openclaw plugins install @inline-openclaw/inline@0.0.63 --force` |
| `2026.6.x` (`>=2026.6.11`, including extended-stable `2026.6.34`) | `0.0.63` | `openclaw plugins install @inline-openclaw/inline@0.0.63 --force` |

Expand All @@ -50,12 +50,12 @@ alias for older host APIs.

| Plugin version | OpenClaw host | Inline realtime SDK | Status | Notes |
| --- | --- | --- | --- | --- |
| `0.0.66` | `>=2026.8.2 <2026.9.0` | `0.0.17` | Current | Bounds direct account probes so SDK cleanup completes before the host deadline. |
| `0.0.67` | `>=2026.8.2 <2026.9.0` | `0.0.17` | Current | Keeps the manifest compatible with ClawHub's metadata transport without changing the channel schema. |
| `0.0.66` | `>=2026.8.2 <2026.9.0` | `0.0.17` | Previous | Bounds direct account probes so SDK cleanup completes before the host deadline. |
| `0.0.65` | `>=2026.8.2 <2026.9.0` | `0.0.17` | Previous | Makes chat-triggered updates noninteractive by explicitly accepting the trusted Inline capability surface. |
| `0.0.64` | `>=2026.8.2 <2026.9.0` | `0.0.17` | Previous | Supports the stable 2026.8 plugin SDK and preserves DM/group reply-thread routing. |
| `0.0.63` | `>=2026.6.11 || >=2026.7.1-0` | `0.0.16` | Previous | Applies live-safe settings writes without restarting the Inline channel before it can answer. |
| `0.0.62` | `>=2026.6.11 || >=2026.7.1-0` | `0.0.16` | Previous | Keeps the thread-only Following control out of direct-message agent settings, where the server does not support it. |
| `0.0.61` | `>=2026.6.11 || >=2026.7.1-0` | `0.0.16` | Previous | Bounds model discovery through provider authentication so agent settings return a fallback instead of hanging indefinitely. |

From npm:

Expand Down
2 changes: 1 addition & 1 deletion openclaw/docs/openclaw-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Need a bot token first? See `docs/create-inline-bot.md`.

Choose the Inline plugin version that matches the installed OpenClaw line:

- OpenClaw `2026.8.x` (`>=2026.8.2`): Inline plugin `0.0.66` — `openclaw plugins install @inline-openclaw/inline --force --accept-capabilities`
- OpenClaw `2026.8.x` (`>=2026.8.2`): Inline plugin `0.0.67` — `openclaw plugins install @inline-openclaw/inline --force --accept-capabilities`
- OpenClaw `2026.7.x` (`>=2026.7.1`): Inline plugin `0.0.63` — `openclaw plugins install @inline-openclaw/inline@0.0.63 --force`
- OpenClaw `2026.6.x` (`>=2026.6.11`, including extended-stable `2026.6.34`): Inline plugin `0.0.63` — `openclaw plugins install @inline-openclaw/inline@0.0.63 --force`

Expand Down
1 change: 0 additions & 1 deletion openclaw/openclaw.plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
"channelConfigs": {
"inline": {
"schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"additionalProperties": true,
"properties": {
Expand Down
2 changes: 1 addition & 1 deletion openclaw/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@inline-openclaw/inline",
"version": "0.0.66",
"version": "0.0.67",
"license": "Apache-2.0",
"repository": {
"type": "git",
Expand Down
17 changes: 17 additions & 0 deletions openclaw/src/manifest.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,20 @@ function collectRefs(value: unknown, path: string[] = []): string[] {
)
}

function collectDollarPrefixedKeys(value: unknown, path: string[] = []): string[] {
if (!value || typeof value !== "object") {
return []
}
if (Array.isArray(value)) {
return value.flatMap((entry, index) => collectDollarPrefixedKeys(entry, [...path, String(index)]))
}
return Object.entries(value as Record<string, unknown>).flatMap(([key, entry]) => {
const entryPath = [...path, key]
const own = key.startsWith("$") ? [entryPath.join(".")] : []
return own.concat(collectDollarPrefixedKeys(entry, entryPath))
})
}

describe("plugin manifest", () => {
it("openclaw.plugin.json declares the inline plugin + channel", async () => {
const manifestPath = path.resolve(__dirname, "..", "openclaw.plugin.json")
Expand Down Expand Up @@ -61,6 +75,9 @@ describe("plugin manifest", () => {
]),
)
expect(json.channelEnvVars).toBeUndefined()
// ClawHub transports manifest metadata through Convex, which rejects
// dollar-prefixed object keys before the package scanner can run.
expect(collectDollarPrefixedKeys(json)).toEqual([])
const schema = json.channelConfigs?.inline?.schema
const streaming = schema?.properties?.streaming as
| {
Expand Down
Loading