mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-04 16:00:24 +00:00
msteams: add message actions — pin, unpin, read, react, reactions (#53432)
* msteams: add pin/unpin, list-pins, and read message actions Wire up Graph API endpoints for message read, pin, unpin, and list-pins in the MS Teams extension, following the same patterns as edit/delete. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * msteams: address PR review comments for pin/unpin/read actions - Handle 204 No Content in postGraphJson (Graph mutations may return empty body) - Strip conversation:/user: prefixes in resolveConversationPath to avoid Graph 404s - Remove dead variable in channel pin branch - Rename unpin param from messageId to pinnedMessageId for semantic clarity - Accept both pinnedMessageId and messageId in unpin action handler for compat Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * msteams: resolve user targets + add User-Agent to Graph helpers - Resolve user:<aadId> targets to actual conversation IDs via conversation store before Graph API calls (fixes 404 for DM-context actions) - Add User-Agent header to postGraphJson/deleteGraphRequest for consistency with fetchGraphJson after rebase onto main Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * msteams: resolve DM targets to Graph chat IDs + expose pin IDs - Prefer cached graphChatId over Bot Framework conversation IDs for user targets; throw descriptive error when no Graph-compatible ID is available - Add `id` field to list-pins rows so default formatters surface the pinned resource ID needed for the unpin flow Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * msteams: add react and reactions (list) message actions * msteams: fix reaction count undercount and remove unpin messageId fallback * msteams: wire pinnedMessageId through CLI/tool schema, add channel pin beta warnings, add list-pins pagination * msteams: address PR #53432 remaining review feedback * fix(msteams): route channel actions via teamId/channelId path (#53432) * msteams: add unpin pinnedMessageId test coverage (#53432) * fix(msteams): keep graph routing scoped to graph actions * fix(msteams): align graph routing context types * msteams: route fetchGraphAbsoluteUrl through fetchWithSsrFGuard --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Brad Groux <3053586+BradGroux@users.noreply.github.com>
This commit is contained in:
@@ -400,6 +400,7 @@ export type ChannelThreadingContext = {
|
||||
|
||||
export type ChannelThreadingToolContext = {
|
||||
currentChannelId?: string;
|
||||
currentGraphChannelId?: string;
|
||||
currentChannelProvider?: ChannelId;
|
||||
currentThreadTs?: string;
|
||||
currentMessageId?: string | number;
|
||||
|
||||
@@ -15,7 +15,11 @@ export function registerMessagePinCommands(message: Command, helpers: MessageCli
|
||||
.withMessageBase(
|
||||
helpers.withRequiredMessageTarget(message.command("unpin").description("Unpin a message")),
|
||||
)
|
||||
.requiredOption("--message-id <id>", "Message id")
|
||||
.requiredOption("--message-id <id>", "Message id (or pinned message resource id for MSTeams)")
|
||||
.option(
|
||||
"--pinned-message-id <id>",
|
||||
"Pinned message resource id (MSTeams: from pin or list-pins, not the chat message id)",
|
||||
)
|
||||
.action(async (opts) => {
|
||||
await helpers.runMessageAction("unpin", opts);
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user