@ycodium-ai/plugin-im 0.2.3244 → 0.2.3250

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
@@ -138,12 +138,12 @@ messages → API receive”. Each column is validated, and a row with problems d
138
138
  connect. Streaming replies are off by default (the app's passive stream reply has not
139
139
  been verified on a real WeCom client). With it on, WeCom refreshes the reply as the agent
140
140
  writes; if the client never refreshes the stream, the final reply is sent as text.
141
+ Team goals finish the initial placeholder when accepted; the lead's replies arrive as
142
+ new messages.
141
143
 
142
- Known limits with Streaming replies on: the "Got it, working on it" placeholder is
143
- not closed when a turn cannot start because the project has no default model, or
144
- when handling the message throws; and a message queued for a team goal has its
145
- placeholder closed right away, so it gets no 5-second fallback confirmation. The
146
- reply itself still arrives as text in all three cases.
144
+ If a message cannot be saved before dispatch, the bot replies that there is no need to
145
+ send it again and that it will be handled automatically the next time the machine starts
146
+ (a WeCom App streaming placeholder is finished first).
147
147
 
148
148
  The default is one message per finished turn. A single turn can produce dozens
149
149
  of assistant messages, mostly commentary between tool calls.
@@ -260,7 +260,7 @@ is sent to the chat. `chat_type` (1 single, 2 group) comes from the last inbound
260
260
  conversation and is left out when none has arrived since the plugin started, as plain text does.
261
261
  A picture goes as `image` only when it is PNG, JPEG or GIF within 10 MB (`imageMimeTypes`).
262
262
 
263
- Chat commands: `/stop`, `/continue`, `/status`, `/new`, `/sessions`, `/resume`, `/model`,
263
+ Chat commands: `/stop`, `/continue`, `/status`, `/new`, `/sessions`, `/resume`, `/history [count]`, `/model`,
264
264
  `/plan`, `/repo`, `/group`, `/team`, `/thread`, `/help`, `/panel`. In a chat with no project
265
265
  `/sessions`, `/resume` and the team commands answer with the project picker. `/sessions` and `/resume` only list and
266
266
  switch threads this plugin opened, since the host lets a plugin send only into
@@ -268,6 +268,8 @@ its own threads. `/continue` calls `threads.turnQueue.resume` for the chat's thr
268
268
  when its queue is paused (a `/stop` or a failure pauses it), which is how WeCom
269
269
  resumes a paused queue from the chat; it is not `/resume`, which already switches threads.
270
270
 
271
+ `/history [count]` previews the current session's recent user and assistant messages in private chats only (default 3, maximum 5), oldest first. It does not start a turn or change the session. Images and files appear as placeholders; long text is split for the platform, with a notice when the preview text is incomplete. Type the command in the chat; panels and native command menus do not list it. With the reply language set to Chinese, `会话历史 [数量]` works too.
272
+
271
273
  On Lark, Telegram, and the WeCom smart bot, `/panel` sends a command panel, and `/help` stays text and ends with a pointer to it. WeCom App does not implement the panel surface, so `/panel` answers with the text list and `/help` does not mention `/panel`. Lark cards and Telegram inline keyboards show all command buttons. The WeCom smart bot uses a template card from `src/wecomPanel.ts`; its main menu is limited to six buttons. Commands that do not fit are listed in `/help` and can be typed into the chat. Commands that take an argument (a thread, a project, a model) open a second view on the same message with a Back button. These lists let you reach every option by paging: Lark and Telegram show eight items per page, and WeCom shows three, leaving room for Back, Previous, and Next. A tap on the WeCom card updates that same card; when the update cannot be applied, `src/panelController.ts` posts a new card and the old one stops accepting taps. A busy placeholder is not drawn on that card: it stays as it is until the next interactive view. Telegram buttons carry only a short `pn:<version>:<index>` token (`callback_data` is capped at 64 bytes); the action stays in memory and a tap on an older keyboard version counts as expired. Each card keeps its own view stack in memory (`src/panelController.ts`), so after a restart an old card only answers that it has expired. A tap runs the same handler as the typed command and waits in the same per-chat queue as typed messages. Another platform opts in by implementing the optional `panel` surface on its adapter (`src/adapter.ts`).
272
274
 
273
275
  `/team` uses the chat's selected project. It reads the roster from the `team` plugin and
package/assets/ui.js CHANGED
@@ -61,7 +61,7 @@ var Vn=window.__ycodiumPluginHost.react;var{Activity:Zn,Children:et,Component:nt
61
61
  color: inherit;
62
62
  font: inherit;
63
63
  text-align: start;
64
- cursor: pointer;
64
+ cursor: var(--control-cursor, pointer);
65
65
  }
66
66
  .im-settings .im-status {
67
67
  display: inline-flex;