@inline-openclaw/inline 0.0.22 → 0.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -10,19 +10,28 @@ Create bot/token guide: `docs/create-inline-bot.md`.
10
10
  Supports:
11
11
 
12
12
  - Inline DMs (`ChatType=direct`)
13
- - Inline chats (including top-level thread-style chats) as conversations (`ChatType=group`)
13
+ - Inline chats as conversations (`ChatType=group`)
14
14
  - Message replies: OpenClaw `replyToId` is mapped to Inline `replyToMsgId` (message id).
15
+ - Optional native reply threads: enable `channels.inline.capabilities.replyThreads: true` to expose Inline reply-thread chats as OpenClaw threads.
15
16
  - Native media upload/send for images, videos, and documents from `mediaUrl` payloads.
16
17
  - Emoji reactions via message tool actions (`react`, `reactions`).
17
18
  - Reaction events on bot-authored messages are surfaced back to the agent as inbound context.
18
19
 
19
- Non-goals (for now):
20
+ By default, native reply threads stay off to preserve the old compatibility behavior. When disabled:
20
21
 
21
- - Subthreads: Inline “replyTo” is a message reply, not a thread identifier. We do not expose OpenClaw subthread mode yet (`capabilities.threads=false`).
22
+ - `replyToId` remains an Inline message reply only.
23
+ - `thread-reply` keeps the legacy compatibility path.
24
+ - `thread-create` keeps the legacy chat-creation alias behavior.
25
+
26
+ When enabled:
27
+
28
+ - inbound reply-thread messages use the parent chat as the base conversation target and the child reply-thread chat id as `MessageThreadId`
29
+ - outbound `thread-reply` sends into the child reply-thread chat
30
+ - `thread-create` creates a real Inline reply thread instead of a plain chat alias
22
31
 
23
32
  ## Install
24
33
 
25
- Requires OpenClaw `2026.2.9` or newer.
34
+ Requires OpenClaw `2026.3.28` or newer.
26
35
 
27
36
  From npm (once published):
28
37
 
@@ -40,9 +49,9 @@ openclaw plugins update inline
40
49
  From a local checkout (dev):
41
50
 
42
51
  ```sh
43
- cd /path/to/inline/packages/openclaw-inline
52
+ cd /path/to/inline/packages/openclaw
44
53
  bun run build
45
- openclaw plugins install --link /path/to/inline/packages/openclaw-inline
54
+ openclaw plugins install --link /path/to/inline/packages/openclaw
46
55
  ```
47
56
 
48
57
  ## Configure
@@ -90,6 +99,8 @@ channels:
90
99
  groupPolicy: "allowlist" # allowlist|open|disabled
91
100
  groupAllowFrom:
92
101
  - "inline:123" # or "user:123" or just "123"
102
+ capabilities:
103
+ replyThreads: false # optional, default false; enable native Inline reply-thread support
93
104
  requireMention: true # optional: default is false
94
105
  replyToBotWithoutMention: true # if true, replies to bot messages can bypass mention requirement
95
106
 
@@ -118,6 +129,26 @@ channels:
118
129
  allow: ["message"]
119
130
  ```
120
131
 
132
+ Per-account override:
133
+
134
+ ```yaml
135
+ channels:
136
+ inline:
137
+ capabilities:
138
+ replyThreads: false
139
+ accounts:
140
+ work:
141
+ token: "<INLINE_BOT_TOKEN>"
142
+ capabilities:
143
+ replyThreads: true
144
+ ```
145
+
146
+ Reply behavior summary:
147
+
148
+ - `replyToId` is always an Inline message id.
149
+ - Native reply threads are separate and use OpenClaw `threadId`.
150
+ - Keep `replyThreads` off if you only want classic message replies.
151
+
121
152
  If you set `dmPolicy: "open"`, set `allowFrom: ["*"]`.
122
153
 
123
154
  ## Outbound Target Semantics
@@ -151,6 +182,12 @@ Direct DM sends can also target `user:<id>`.
151
182
  - Pins: `pin`, `unpin`, `list-pins`
152
183
  - Space permissions: `permissions`
153
184
 
185
+ Native thread semantics are behind `channels.inline.capabilities.replyThreads`:
186
+
187
+ - disabled: `thread-reply` behaves like the old compatibility reply path
188
+ - enabled: `thread-reply` expects `threadId` to be the child reply-thread chat id, while `to` stays the parent chat id
189
+ - enabled: `thread-create` creates a real reply thread from a parent chat and optional `replyToId` anchor
190
+
154
191
  You can gate action groups from config:
155
192
 
156
193
  ```yaml