mirror of
https://github.com/mattermost/mattermost.git
synced 2026-09-24 16:05:00 +08:00
Add operation tracking fields to bridge client calls (#35514)
* Add operation tracking fields to bridge client CompletionRequest calls Populate UserID, Operation, and OperationSubType on CompletionRequest for recaps (SummarizePosts) and message rewrite (RewriteMessage) so token usage logs show correct values instead of defaults. Also bumps mattermost-plugin-ai v1.8.1 → v1.12.0 which adds the Operation/OperationSubType fields to the bridgeclient struct. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Address PR feedback: normalize rewrite action and use session-derived userID - post.go: Add normalizeRewriteAction() that validates action against a whitelist of known RewriteAction values, mapping unknown values to "unknown" before assigning to OperationSubType. - summarization.go: Use sessionUserID (derived from rctx.Session().UserId) instead of the userID parameter for tracking, ensuring operation tracking always uses the authenticated session user. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Mattermost Build <build@mattermost.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
Mattermost Build
parent
24f726fa37
commit
e5f4b982e5
@@ -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
|
||||
|
||||
@@ -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",
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
@@ -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=
|
||||
|
||||
Reference in New Issue
Block a user