fix(server): apply get_agent_activity limit to projected entries
The MCP get_agent_activity tool sliced the raw timeline before passing to the curator, so `limit: 5` could land mid-message and return a trailing fragment of streamed assistant text. Now goes through the existing projection pipeline so the limit counts whole projected entries — assistant deltas merged, tool calls collapsed by callId, reasoning chunks merged. Same bug fixed in the wait_for_agent timeout's "Recent activity" preview, which used the same raw slice. Consolidates the merge logic: activity-curator no longer ships its own collapseTimeline, it delegates to projectTimelineRows. One source of truth for "what is a complete message". Drops the meaningless `provider` parameter that was threaded through the projection module — merge logic never branched on it. The wire schema keeps `provider` per entry; session stamps it once at the emit boundary. Adds `reasoning_merge` to the projection kind enum (additive wire change).
This commit is contained in:
@@ -2390,7 +2390,7 @@ export const AgentTimelineEntryPayloadSchema = z.object({
|
||||
seqStart: z.number().int().nonnegative(),
|
||||
seqEnd: z.number().int().nonnegative(),
|
||||
sourceSeqRanges: z.array(AgentTimelineSeqRangeSchema),
|
||||
collapsed: z.array(z.enum(["assistant_merge", "tool_lifecycle"])),
|
||||
collapsed: z.array(z.enum(["assistant_merge", "reasoning_merge", "tool_lifecycle"])),
|
||||
});
|
||||
|
||||
export const FetchAgentTimelineResponseMessageSchema = z.object({
|
||||
|
||||
Reference in New Issue
Block a user