惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
小众软件
小众软件
博客园_首页
T
Tailwind CSS Blog
美团技术团队
博客园 - 叶小钗
Microsoft Security Blog
Microsoft Security Blog
有赞技术团队
有赞技术团队
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
Microsoft Azure Blog
Microsoft Azure Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
MongoDB | Blog
MongoDB | Blog
The Cloudflare Blog
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
Blog — PlanetScale
Blog — PlanetScale
IT之家
IT之家
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Y
Y Combinator Blog

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
docs(imessage): document bluebubbles deprecation · opencl...
vincentkoc · 2026-05-08 · via Recent Commits to openclaw:main
Original file line numberDiff line numberDiff line change

@@ -16,7 +16,6 @@ Docs: https://docs.openclaw.ai

1616

- Discord/voice: make `openclaw channels capabilities --channel discord --target channel:<id>` and `channels status --probe` audit voice-channel permissions, including auto-join targets, so missing Connect/Speak/Read Message History permissions show up before `/vc join`.

1717

- Channels CLI: make `openclaw channels list` channel-only — drop the `Auth providers (OAuth + API keys)` block (use `openclaw models auth list`), drop the per-provider usage/quota fetch and the `--no-usage` flag (use `openclaw status` or `openclaw models list`), add `--all` to surface bundled-unconfigured, catalog-not-installed, and catalog-installed-but-unconfigured channels, and render explicit `installed` / `configured` / `enabled` tags per row plus an `origin` + `installed` field in JSON. Fixes WeCom-class catalog channels disappearing from `--all` when installed on disk but not yet configured. (#78456) Thanks @sliverp.

1818

- CLI/cron: add computed `status` field to `cron list --json` and `cron show <id> --json` output, mirroring the human-readable status column (disabled/running/ok/error/skipped/idle) so external tooling can determine job state without re-deriving it from raw state fields. (#78701) Thanks @aweiker.

19-

- Channels/iMessage: remove the bundled BlueBubbles channel surface and docs, make `imsg` the supported iMessage setup path, and report non-macOS default `imsg` configs with remote-Mac wrapper guidance.

2019

- Discord/voice: make voice capture less choppy by extending the default post-speech silence grace to 2.5s, add `voice.captureSilenceGraceMs` for noisy Discord sessions, and tighten the spoken-output prompt around live STT fragments. Thanks @vincentkoc.

2120

- Discord/streaming: default Discord replies to progress draft previews so tool/work activity appears in one edited Discord message unless `channels.discord.streaming.mode` is set to `off`.

2221

- OpenAI: support `openai/chat-latest` as an explicit direct API-key model override for trying the moving ChatGPT Instant API alias without changing the stable default model.

@@ -147,6 +146,10 @@ Docs: https://docs.openclaw.ai

147146

- Config/Nix: keep startup-derived plugin enablement, gateway auth tokens, control UI origins, and owner-display secrets runtime-only instead of rewriting `openclaw.json`; in Nix mode, config writers, mutating `openclaw update`, plugin lifecycle mutators, and doctor repair/token-generation now refuse with agent-first nix-openclaw guidance. (#78047) Thanks @joshp123.

148147

- Agents/context engine: invalidate cached assembled context views when source history shrinks or assembly fails, preventing stale pre-reset history from being reused. Fixes #77968. (#78163) Thanks @brokemac79 and @ChrisBot2026.

149148
149+

### Breaking

150+
151+

- Channels/iMessage: remove the bundled BlueBubbles channel surface and deprecate BlueBubbles-backed iMessage setup in OpenClaw. Existing `channels.bluebubbles` configs must migrate to `channels.imessage` using `imsg` on a signed-in Mac or an SSH wrapper, and non-macOS default `imsg` configs now report remote-Mac wrapper guidance.

152+
150153

### Fixes

151154
152155

- Docs/Docker: document a local Compose override for Docker Desktop DNS failures in the shared-network `openclaw-cli` sidecar, keeping the default compose setup hardened while unblocking `openclaw plugins install` when users opt in. Fixes #79018. Thanks @Jason-Vaughan.

Original file line numberDiff line numberDiff line change

@@ -10,6 +10,10 @@ title: "iMessage"

1010

For OpenClaw iMessage deployments, use `imsg` on a signed-in macOS Messages host. If your Gateway runs on Linux or Windows, point `channels.imessage.cliPath` at an SSH wrapper that runs `imsg` on the Mac.

1111

</Note>

1212
13+

<Warning>

14+

BlueBubbles is deprecated and no longer ships as a bundled OpenClaw channel. Migrate `channels.bluebubbles` configs to `channels.imessage`; OpenClaw now supports iMessage through `imsg` only. If you still need a BlueBubbles-backed bridge, publish or install it as a third-party plugin outside core.

15+

</Warning>

16+
1317

Status: native external CLI integration. Gateway spawns `imsg rpc` and communicates over JSON-RPC on stdio (no separate daemon/port).

1418
1519

<CardGroup cols={3}>

Original file line numberDiff line numberDiff line change

@@ -52,6 +52,10 @@

5252

]

5353

},

5454

"redirects": [

55+

{

56+

"source": "/channels/bluebubbles",

57+

"destination": "/channels/imessage"

58+

},

5559

{

5660

"source": "/install/migrating-matrix",

5761

"destination": "/channels/matrix-migration"

Original file line numberDiff line numberDiff line change

@@ -585,6 +585,8 @@ When Mattermost native commands are enabled:

585585
586586

OpenClaw spawns `imsg rpc` (JSON-RPC over stdio). No daemon or port required. This is the preferred path for new OpenClaw iMessage setups when the host can grant Messages database and Automation permissions.

587587
588+

BlueBubbles is deprecated and no longer ships as a bundled OpenClaw channel. Migrate `channels.bluebubbles` configs to `channels.imessage`; third-party BlueBubbles bridges belong outside core.

589+
588590

If the Gateway is not running on the signed-in Messages Mac, keep `channels.imessage.enabled=true` and set `channels.imessage.cliPath` to an SSH wrapper that runs `imsg "$@"` on that Mac. The default local `imsg` path is macOS-only.

589591
590592

```json5

Original file line numberDiff line numberDiff line change

@@ -60,6 +60,13 @@ const rules = [

6060

close: true,

6161

message: thirdPartyExtensionMessage,

6262

},

63+

{

64+

label: "r: bluebubbles",

65+

close: true,

66+

commentTriggers: ["bluebubbles", "blue bubbles"],

67+

message:

68+

"BlueBubbles is deprecated and no longer ships as a bundled OpenClaw channel. Use iMessage via `imsg` instead: https://docs.openclaw.ai/channels/imessage. If this needs to stay BlueBubbles-backed, publish it as a third-party plugin on ClawHub instead of adding it back to core.",

69+

},

6370

{

6471

label: "r: moltbook",

6572

close: true,

@@ -104,6 +111,10 @@ export const managedLabelSpecs = {

104111

color: "5319E7",

105112

description: "Auto-close: third-party plugins/capabilities belong on ClawHub.",

106113

},

114+

"r: bluebubbles": {

115+

color: "D93F0B",

116+

description: "Auto-close: BlueBubbles is deprecated; use iMessage via imsg or ClawHub.",

117+

},

107118

"r: moltbook": {

108119

color: "B60205",

109120

description: "Auto-close and lock: Moltbook is off-topic for OpenClaw.",

Original file line numberDiff line numberDiff line change

@@ -230,6 +230,7 @@ describe("barnacle-auto-response", () => {

230230

expect(managedLabelSpecs["r: support"].description).toContain("support requests");

231231

expect(managedLabelSpecs["r: false-positive"].description).toContain("false positive");

232232

expect(managedLabelSpecs["r: third-party-extension"].description).toContain("ClawHub");

233+

expect(managedLabelSpecs["r: bluebubbles"].description).toContain("deprecated");

233234

expect(managedLabelSpecs["r: too-many-prs"].description).toContain("twenty active PRs");

234235

expect(managedLabelSpecs[PROOF_SUPPLIED_LABEL].color).toBe("C2E0C6");

235236

expect(managedLabelSpecs[PROOF_SUFFICIENT_LABEL].color).toBe("0E8A16");

@@ -817,6 +818,29 @@ describe("barnacle-auto-response", () => {

817818

expect(calls.update).toContainEqual(expect.objectContaining({ state: "closed" }));

818819

});

819820
821+

it("closes manually labeled BlueBubbles requests with imsg migration guidance", async () => {

822+

const { calls, github } = barnacleGithub([]);

823+
824+

await runBarnacleAutoResponse({

825+

github,

826+

context: barnacleIssueContext({}, ["r: bluebubbles"], {

827+

action: "labeled",

828+

label: { name: "r: bluebubbles" },

829+

sender: { login: "maintainer", type: "User" },

830+

}),

831+

core: {

832+

info: () => undefined,

833+

},

834+

});

835+
836+

expect(calls.createComment).toContainEqual(

837+

expect.objectContaining({

838+

body: expect.stringContaining("/channels/imessage"),

839+

}),

840+

);

841+

expect(calls.update).toContainEqual(expect.objectContaining({ state: "closed" }));

842+

});

843+
820844

it("keeps bot-applied candidate labels passive", async () => {

821845

const { calls, github } = barnacleGithub([file("extensions/example/openclaw.plugin.json")]);

822846