openclaw/extensions
Omar Shahine 9bebf7ac43
fix(imessage): bold approval prompt labels in poll mode (#116221)
* fix(imessage): bold approval prompt labels in poll mode

#113193 added bold headers and labels to the approval reaction prompt, but
iMessage only shows that copy when tapbacks own the controls. On any
poll-capable bridge the details message is built from `manualFallbackPayload`,
the legacy unstyled builder, so every label (`Title:`, `Tool:`, `Host:`,
`CWD:`, `Full id:`, ...) reaches Messages as flat text. Native polls are the
default on a bridge-v2 host, so in practice #85954 still reproduced after it
was closed.

Add `nativeControlsPayload` to `ApprovalReactionPendingContent`: the same rich
copy as `reactionPayload` minus the tapback hint, for channels whose native
controls already own the decision surface. iMessage poll mode now renders it,
so both control paths deliver identical styled copy.

`imsg poll send --question` has no attributed-body channel, so the poll
question keeps the marker-free rendering of that same text; otherwise the
balloon would show literal asterisks.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011Byq7UrC7ZpMHxoFXcddsa

* refactor(plugin-sdk): carry native-controls prompt copy as text

The iMessage poll path reads exactly one thing from the native-controls
payload: its text. Replace the ReplyPayload field with nativeControlsText so
buildApprovalReactionPendingContent stops running the metadata/session-key
builder for fields no caller reads, and the '?? ""' sentinel goes away.

Relative to main the SDK change stays additive: neither field exists in any
release; nativeControlsPayload only ever existed on this branch.

* refactor(plugin-sdk): expose native-controls prompt text as a builder, not a type field

ClawSweeper flagged that requiring a new member on the shipped
ApprovalReactionPendingContent type is source-incompatible for external
producers that hand-construct it. The hint-free copy does not need to ride
the type at all: export buildApprovalNativeControlsPromptText and let the
iMessage handler call it at payload-build time.

ApprovalReactionPendingContent is now byte-identical to the shipped shape;
the SDK change is a single additive function export. Signal/WhatsApp test
fixtures revert to their original form.

---------

Co-authored-by: Omar Shahine <10343873+omarshahine@users.noreply.github.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-30 09:23:47 -07:00
..
acpx chore: update dependencies across workspace (#115677) 2026-07-29 05:16:42 -04:00
active-memory refactor: remove 3,543 lines of redundant runtime and tests (#115961) 2026-07-29 11:43:41 -04:00
admin-http-rpc
alibaba fix(test): stop asserting exact video deadline budgets (#115883) 2026-07-29 20:45:44 +08:00
amazon-bedrock chore: update dependencies across workspace (#115677) 2026-07-29 05:16:42 -04:00
amazon-bedrock-mantle chore: update dependencies across workspace (#115677) 2026-07-29 05:16:42 -04:00
anthropic fix(ui): deduplicate gateway-native session hosts 2026-07-30 15:22:37 +08:00
anthropic-vertex chore: update dependencies across workspace (#115677) 2026-07-29 05:16:42 -04:00
arcee refactor: remove duplicate runtime and plugin paths (#115483) 2026-07-28 22:06:04 -04:00
azure-speech fix(azure-speech): keep valid voices from malformed catalogs (#115067) 2026-07-30 03:20:22 +08:00
baseten refactor: remove duplicate runtime and plugin paths (#115483) 2026-07-28 22:06:04 -04:00
beam fix(beam): prevent mirror retries from stalling on slow responses (#116174) 2026-07-30 11:33:22 +08:00
bonjour
brave build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006) 2026-07-26 01:29:55 -04:00
browser chore(test): run browser copilot E2E in CI (#116407) 2026-07-30 23:20:34 +08:00
buzz fix(beam): prevent mirror retries from stalling on slow responses (#116174) 2026-07-30 11:33:22 +08:00
byteplus refactor(providers): unify lifecycle-safe manifest registration (#114381) 2026-07-27 03:20:02 -04:00
canvas fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
cerebras refactor: remove duplicate runtime and plugin paths (#115483) 2026-07-28 22:06:04 -04:00
chutes build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006) 2026-07-26 01:29:55 -04:00
clawrouter refactor(providers): unify lifecycle-safe manifest registration (#114381) 2026-07-27 03:20:02 -04:00
clickclack fix: satisfy ClickClack lint checks (#115484) 2026-07-30 15:42:18 +01:00
cloudflare-ai-gateway build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006) 2026-07-26 01:29:55 -04:00
codex Merge pull request #116285 from openclaw/fix/control-ui-session-dedupe 2026-07-30 22:53:53 +08:00
cohere refactor: remove duplicate provider and runtime code (#115529) 2026-07-29 00:04:52 -04:00
comfy test(comfy): evaluate live guards after setup (#116388) 2026-07-30 19:58:35 +08:00
copilot feat(plugins): allow per-turn tool narrowing in prompt hooks (#114151) 2026-07-30 03:28:45 +08:00
copilot-proxy
crabbox
cua-computer fix(deps): remediate tar and Hono advisories (#115029) 2026-07-28 16:48:04 +08:00
deepgram fix(agents): honor run abort signal in image and pdf tools (#112644) 2026-07-25 05:17:09 -07:00
deepinfra fix(memory-host-sdk): resolve stable execPath for worker fork to survive Homebrew Node upgrades (#99318) 2026-07-29 06:49:02 -04:00
deepseek refactor: remove duplicate runtime and plugin paths (#115483) 2026-07-28 22:06:04 -04:00
device-pair
diagnostics-otel fix(diagnostics-otel): agent turns split into one-span traces instead of a trace tree (#116246) 2026-07-30 20:41:41 +10:00
diagnostics-prometheus build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006) 2026-07-26 01:29:55 -04:00
diffs fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
diffs-language-pack build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006) 2026-07-26 01:29:55 -04:00
discord test(discord): align progress timing expectations (#116377) 2026-07-30 19:11:01 +08:00
document-extract
duckduckgo
elevenlabs refactor: deduplicate extension normalization primitives (#115650) 2026-07-29 04:10:06 -04:00
exa fix(exa): reject invalid UTF-8 search responses (#111736) 2026-07-29 05:58:02 -04:00
fal refactor: remove 3,527 lines of runtime and test duplication (#115626) 2026-07-29 02:21:20 -04:00
featherless refactor: remove duplicate provider and runtime code (#115529) 2026-07-29 00:04:52 -04:00
feishu fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
file-transfer fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
firecrawl fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
fireworks refactor: remove duplicate provider and runtime code (#115529) 2026-07-29 00:04:52 -04:00
fish-audio feat: add Fish Audio S2.1 and local MLX speech (#115790) 2026-07-29 05:15:33 -04:00
github-copilot feat(plugins): catch code-mode drift between catalogs shipping the same model (#115183) 2026-07-28 08:52:21 -04:00
gmi refactor: remove duplicate runtime and plugin paths (#115483) 2026-07-28 22:06:04 -04:00
google fix(test): isolate Google embedding batch timeout (#116161) 2026-07-30 10:11:29 +08:00
google-meet fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
googlechat fix(channels): mark durable webhook acceptance on Zalo, Google Chat, SMS, Feishu, Nextcloud Talk, and Synology Chat (#115586) 2026-07-30 01:07:08 +08:00
gradium build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006) 2026-07-26 01:29:55 -04:00
groq refactor(providers): unify lifecycle-safe manifest registration (#114381) 2026-07-27 03:20:02 -04:00
huggingface refactor: remove duplicate provider and runtime code (#115529) 2026-07-29 00:04:52 -04:00
image-generation-core
imessage fix(imessage): bold approval prompt labels in poll mode (#116221) 2026-07-30 09:23:47 -07:00
inworld build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006) 2026-07-26 01:29:55 -04:00
irc refactor(channels): share ingress retention defaults (#115824) 2026-07-29 06:24:30 -04:00
kilocode refactor: remove duplicate provider and runtime code (#115529) 2026-07-29 00:04:52 -04:00
kimi-coding fix(memory-host-sdk): resolve stable execPath for worker fork to survive Homebrew Node upgrades (#99318) 2026-07-29 06:49:02 -04:00
line refactor(channels): share ingress retention defaults (#115824) 2026-07-29 06:24:30 -04:00
linux-canvas refactor: deduplicate extension normalization primitives (#115650) 2026-07-29 04:10:06 -04:00
linux-node
litellm refactor: remove duplicate provider and runtime code (#115529) 2026-07-29 00:04:52 -04:00
llama-cpp improve(ui): verify llama.cpp model setup 2026-07-30 23:41:58 +08:00
llm-task fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
lmstudio refactor: deduplicate extension normalization primitives (#115650) 2026-07-29 04:10:06 -04:00
lobster fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
logbook refactor(sqlite): enforce one database connection boundary (#113418) 2026-07-24 15:15:17 -07:00
longcat refactor: remove duplicate runtime and plugin paths (#115483) 2026-07-28 22:06:04 -04:00
matrix fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
mattermost fix(channels): resolve tool progress against the caller's stream mode 2026-07-30 13:36:21 +09:00
media-understanding-core
memory-core fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
memory-lancedb fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
memory-wiki fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
meta refactor: remove duplicate provider and runtime code (#115529) 2026-07-29 00:04:52 -04:00
microsoft test: consolidate OpenClaw test state fixtures (#113576) 2026-07-25 05:30:52 -07:00
microsoft-foundry fix(microsoft-foundry): preserve GPT token limits (#115542) 2026-07-29 00:14:31 -04:00
migrate-claude
migrate-hermes refactor: deduplicate extension normalization primitives (#115650) 2026-07-29 04:10:06 -04:00
minimax refactor: remove 3,543 lines of redundant runtime and tests (#115961) 2026-07-29 11:43:41 -04:00
mistral refactor: remove duplicate runtime and plugin paths (#115483) 2026-07-28 22:06:04 -04:00
moonshot feat: per-model code-mode capability flags with an "auto" master-switch tier (#114695) 2026-07-27 16:47:41 -04:00
msteams fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
mxc fix(agents): apply_patch destroys an existing file when a patch creates that path (#114911) 2026-07-29 20:17:54 +08:00
nextcloud-talk fix(channels): mark durable webhook acceptance on Zalo, Google Chat, SMS, Feishu, Nextcloud Talk, and Synology Chat (#115586) 2026-07-30 01:07:08 +08:00
nostr refactor(channels): share ingress retention defaults (#115824) 2026-07-29 06:24:30 -04:00
novita refactor: remove duplicate runtime and plugin paths (#115483) 2026-07-28 22:06:04 -04:00
nvidia refactor: remove duplicate runtime and plugin paths (#115483) 2026-07-28 22:06:04 -04:00
oc-path fix(cli): preserve machine-readable stdout (#113654) 2026-07-27 05:44:16 -04:00
ollama fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
onepassword chore: update dependencies across workspace (#115677) 2026-07-29 05:16:42 -04:00
open-prose
openai test(openai): cover out-of-order named mark acks 2026-07-30 16:29:29 +08:00
opencode perf(catalog): cadence-proof provider caches and parallelize the Claude scan (#115259) 2026-07-28 11:37:37 -04:00
opencode-go feat(plugins): catch code-mode drift between catalogs shipping the same model (#115183) 2026-07-28 08:52:21 -04:00
openrouter refactor: remove 3,543 lines of redundant runtime and tests (#115961) 2026-07-29 11:43:41 -04:00
openshell fix(agents): apply_patch destroys an existing file when a patch creates that path (#114911) 2026-07-29 20:17:54 +08:00
parallel build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006) 2026-07-26 01:29:55 -04:00
perplexity build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006) 2026-07-26 01:29:55 -04:00
pixverse refactor: remove 3,543 lines of redundant runtime and tests (#115961) 2026-07-29 11:43:41 -04:00
policy refactor: deduplicate extension normalization primitives (#115650) 2026-07-29 04:10:06 -04:00
qa-channel fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
qa-lab fix(qa): prevent Slack cleanup from stalling profile runs (#116361) 2026-07-30 19:05:49 +08:00
qianfan refactor: remove duplicate provider and runtime code (#115529) 2026-07-29 00:04:52 -04:00
qqbot fix(qqbot): use Gateway timezone for reminders (#116294) 2026-07-30 16:32:18 +08:00
qwen fix(test): stop asserting exact video deadline budgets (#115883) 2026-07-29 20:45:44 +08:00
raft refactor(channels): fix account resolution and setup isolation (#114395) 2026-07-27 03:49:37 -04:00
reef test(reef): remove false-green live guard smoke (#116393) 2026-07-30 20:16:28 +08:00
runway refactor(media): consolidate generated media byte limits (#113556) 2026-07-25 15:39:49 +08:00
searxng fix(searxng): avoid duplicating search endpoint (#113661) 2026-07-29 06:15:51 -04:00
senseaudio
sglang fix: make gateway nodes and local inference reliable under stress (#115185) 2026-07-28 08:41:14 -04:00
signal fix(channels): ack mentions in groups that do not require them 2026-07-30 17:58:46 +09:00
slack fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
sms fix(sms): isolate validated webhook quotas per sender (#104862) 2026-07-30 01:23:24 +08:00
stepfun build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006) 2026-07-26 01:29:55 -04:00
synology-chat fix(channels): mark durable webhook acceptance on Zalo, Google Chat, SMS, Feishu, Nextcloud Talk, and Synology Chat (#115586) 2026-07-30 01:07:08 +08:00
synthetic refactor: remove duplicate provider and runtime code (#115529) 2026-07-29 00:04:52 -04:00
talk-voice
tavily fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
teams-meetings fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
telegram fix(agents): compare shell tool names case-insensitively and stop re-parsing tool labels 2026-07-30 19:52:08 +09:00
tencent refactor: remove duplicate provider and runtime code (#115529) 2026-07-29 00:04:52 -04:00
test-support
thread-ownership
tlon fix(tlon): stop SSE reconnects after client close (#108168) 2026-07-29 12:49:11 -04:00
together refactor: remove duplicate runtime and plugin paths (#115483) 2026-07-28 22:06:04 -04:00
tokenjuice build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006) 2026-07-26 01:29:55 -04:00
tts-local-cli
twitch refactor(channels): share ingress retention defaults (#115824) 2026-07-29 06:24:30 -04:00
vault refactor: deduplicate extension normalization primitives (#115650) 2026-07-29 04:10:06 -04:00
venice refactor: remove duplicate runtime and plugin paths (#115483) 2026-07-28 22:06:04 -04:00
vercel-ai-gateway refactor(providers): derive simple providers from manifests (#114331) 2026-07-27 01:29:53 -04:00
video-generation-core
vllm fix: make gateway nodes and local inference reliable under stress (#115185) 2026-07-28 08:41:14 -04:00
voice-call fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
volcengine feat(plugins): catch code-mode drift between catalogs shipping the same model (#115183) 2026-07-28 08:52:21 -04:00
voyage
vydra fix(test): stop collecting Vydra test helpers (#116139) 2026-07-30 10:19:42 +08:00
web-readability
webhooks
whatsapp fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
workboard fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
xai fix(plugin-sdk): ship documented public typings (#116345) 2026-07-30 18:20:07 +08:00
xiaomi refactor: remove duplicate provider and runtime code (#115529) 2026-07-29 00:04:52 -04:00
zai feat: per-model code-mode capability flags with an "auto" master-switch tier (#114695) 2026-07-27 16:47:41 -04:00
zalo fix(channels): mark durable webhook acceptance on Zalo, Google Chat, SMS, Feishu, Nextcloud Talk, and Synology Chat (#115586) 2026-07-30 01:07:08 +08:00
zalouser fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
zoom-meetings fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
.npmignore
AGENTS.md
CLAUDE.md
music-generation-providers.live.test.ts test: isolate live test config reads (#114024) 2026-07-25 21:51:47 -07:00
tsconfig.package-boundary.base.json
tsconfig.package-boundary.paths.json fix(plugin-sdk): ship documented public typings (#116345) 2026-07-30 18:20:07 +08:00
video-generation-providers.live.test.ts test: isolate live test config reads (#114024) 2026-07-25 21:51:47 -07:00