diff --git a/server/channels/app/post.go b/server/channels/app/post.go index 8463d6febfa..2875518662c 100644 --- a/server/channels/app/post.go +++ b/server/channels/app/post.go @@ -3232,6 +3232,9 @@ func (a *App) RewriteMessage( {Role: "system", Message: systemPrompt}, {Role: "user", Message: userPrompt}, }, + UserID: rctx.Session().UserId, + Operation: "message_rewrite", + OperationSubType: normalizeRewriteAction(action), } completion, err := client.AgentCompletion(agentID, completionRequest) @@ -3347,6 +3350,23 @@ func (a *App) buildThreadContextForRewrite(rctx request.CTX, rootID string) (str return contextBuilder.String(), nil } +// normalizeRewriteAction maps a RewriteAction to a known subtype string for +// operation tracking. Unknown actions are mapped to "unknown". +func normalizeRewriteAction(action model.RewriteAction) string { + switch action { + case model.RewriteActionCustom, + model.RewriteActionShorten, + model.RewriteActionElaborate, + model.RewriteActionImproveWriting, + model.RewriteActionFixSpelling, + model.RewriteActionSimplify, + model.RewriteActionSummarize: + return string(action) + default: + return "unknown" + } +} + // getRewritePromptForAction returns the appropriate prompt and system prompt for the given rewrite action func getRewritePromptForAction(action model.RewriteAction, message string, customPrompt string, threadContext string) string { var actionPrompt string diff --git a/server/channels/app/summarization.go b/server/channels/app/summarization.go index b0d1936d8f7..178e4cbb789 100644 --- a/server/channels/app/summarization.go +++ b/server/channels/app/summarization.go @@ -86,6 +86,9 @@ Your response must be compacted valid JSON only, with no additional text, format {Role: "user", Message: userPrompt}, }, JSONOutputFormat: summarizePostsJSONSchema, + UserID: sessionUserID, + Operation: "recaps", + OperationSubType: "summarize_channel", } rctx.Logger().Debug("Calling AI agent for post summarization", diff --git a/server/go.mod b/server/go.mod index 86fc2cc7008..927032204e7 100644 --- a/server/go.mod +++ b/server/go.mod @@ -43,7 +43,7 @@ require ( github.com/mattermost/gosaml2 v0.10.0 github.com/mattermost/ldap v0.0.0-20231116144001-0f480c025956 github.com/mattermost/logr/v2 v2.0.22 - github.com/mattermost/mattermost-plugin-ai v1.8.1 + github.com/mattermost/mattermost-plugin-ai v1.12.0 github.com/mattermost/mattermost/server/public v0.1.22-0.20251105210629-8bf4a00724e2 github.com/mattermost/morph v1.1.0 github.com/mattermost/rsc v0.0.0-20160330161541-bbaefb05eaa0 diff --git a/server/go.sum b/server/go.sum index a05c34ad1a5..c65c88fb3b9 100644 --- a/server/go.sum +++ b/server/go.sum @@ -409,6 +409,8 @@ github.com/mattermost/logr/v2 v2.0.22 h1:npFkXlkAWR9J8payh8ftPcCZvLbHSI125mAM5/r github.com/mattermost/logr/v2 v2.0.22/go.mod h1:0sUKpO+XNMZApeumaid7PYaUZPBIydfuWZ0dqixXo+s= github.com/mattermost/mattermost-plugin-ai v1.8.1 h1:qymxDayy3vJPhm59XA8q0oLR8uobPgx0SOB7IMG9ZMM= github.com/mattermost/mattermost-plugin-ai v1.8.1/go.mod h1:Uco4K7ypsrZWcD256ezvgZDqolJfHYiExN2lYiHmVDo= +github.com/mattermost/mattermost-plugin-ai v1.12.0 h1:cwRE2jjlqN5W42O9Xp0ncyHk7HL/ayMeypuINPX0WJ0= +github.com/mattermost/mattermost-plugin-ai v1.12.0/go.mod h1:L/I/IpdWNGbxRfUduCstCYbhyX59OEftxcpDHtCT4EI= github.com/mattermost/mattermost/server/public v0.1.22-0.20251105210629-8bf4a00724e2 h1:RJtCnj9nF/wb0Fb+O0qAPgUoWP5CTTDnHzHD5ciGlJ8= github.com/mattermost/mattermost/server/public v0.1.22-0.20251105210629-8bf4a00724e2/go.mod h1:X0RG3lk0XK0SFSH67JS/xporlz3TxItHEPlFIrsQIa8= github.com/mattermost/morph v1.1.0 h1:Q9vrJbeM3s2jfweGheq12EFIzdNp9a/6IovcbvOQ6Cw=