From 4b3e4d6195d755ca267711a3418bdb4245a9b9b3 Mon Sep 17 00:00:00 2001 From: Markov Date: Tue, 24 Feb 2026 13:32:31 +0100 Subject: [PATCH] =?UTF-8?q?refactor:=20remove=20slug=20params=20from=20API?= =?UTF-8?q?=20calls=20=E2=80=94=20Tracker=20resolves=20actor=20from=20auth?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/tools/tasks.ts | 8 ++++---- src/tracker/client.ts | 23 +++++++++++------------ 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/tools/tasks.ts b/src/tools/tasks.ts index d3af824..99eb140 100644 --- a/src/tools/tasks.ts +++ b/src/tools/tasks.ts @@ -90,7 +90,7 @@ export function createTaskTools(ctx: ToolContext): ToolDefinition[] { parameters: UpdateTaskParams, async execute(_id: string, params: any) { const { task_id, ...fields } = params; - await ctx.trackerClient.updateTask(task_id, fields, ctx.agentSlug); + await ctx.trackerClient.updateTask(task_id, fields); return ok(`Task ${task_id} updated`); }, }, @@ -101,7 +101,7 @@ export function createTaskTools(ctx: ToolContext): ToolDefinition[] { parameters: TakeTaskParams, async execute(_id: string, params: any) { ctx.selfAssignedTasks.add(params.task_id); - await ctx.trackerClient.takeTask(params.task_id, ctx.agentSlug); + await ctx.trackerClient.takeTask(params.task_id); return ok(`Task ${params.task_id} taken by ${ctx.agentSlug}`); }, }, @@ -111,7 +111,7 @@ export function createTaskTools(ctx: ToolContext): ToolDefinition[] { description: 'Reject an assigned task with a reason. Task returns to backlog.', parameters: RejectTaskParams, async execute(_id: string, params: any) { - await ctx.trackerClient.rejectTask(params.task_id, ctx.agentSlug, params.reason); + await ctx.trackerClient.rejectTask(params.task_id, params.reason); return ok(`Task ${params.task_id} rejected: ${params.reason}`); }, }, @@ -121,7 +121,7 @@ export function createTaskTools(ctx: ToolContext): ToolDefinition[] { description: 'Subscribe to task notifications (become a watcher).', parameters: WatchTaskParams, async execute(_id: string, params: any) { - await ctx.trackerClient.watchTask(params.task_id, ctx.agentSlug); + await ctx.trackerClient.watchTask(params.task_id); return ok(`Now watching task ${params.task_id}`); }, }, diff --git a/src/tracker/client.ts b/src/tracker/client.ts index 3781255..787cac2 100644 --- a/src/tracker/client.ts +++ b/src/tracker/client.ts @@ -62,28 +62,27 @@ export class TrackerClient { return this.request('POST', `/api/v1/tasks?project_slug=${encodeURIComponent(projectSlug)}`, task); } - async updateTask(taskId: string, fields: Record, actor?: string): Promise { - this.log.info({ taskId, fields, actor }, 'Updating task'); - const qs = actor ? `?actor=${encodeURIComponent(actor)}` : ''; - await this.request('PATCH', `/api/v1/tasks/${taskId}${qs}`, fields); + async updateTask(taskId: string, fields: Record): Promise { + this.log.info({ taskId, fields }, 'Updating task'); + await this.request('PATCH', `/api/v1/tasks/${taskId}`, fields); } async deleteTask(taskId: string): Promise { await this.request('DELETE', `/api/v1/tasks/${taskId}`); } - async takeTask(taskId: string, slug: string): Promise { - this.log.info({ taskId, slug }, 'Taking task'); - await this.request('POST', `/api/v1/tasks/${taskId}/take?slug=${encodeURIComponent(slug)}`); + async takeTask(taskId: string): Promise { + this.log.info({ taskId }, 'Taking task'); + await this.request('POST', `/api/v1/tasks/${taskId}/take`); } - async rejectTask(taskId: string, slug: string, reason?: string): Promise { - this.log.info({ taskId, slug, reason }, 'Rejecting task'); - await this.request('POST', `/api/v1/tasks/${taskId}/reject`, { slug, reason }); + async rejectTask(taskId: string, reason?: string): Promise { + this.log.info({ taskId, reason }, 'Rejecting task'); + await this.request('POST', `/api/v1/tasks/${taskId}/reject`, { reason }); } - async watchTask(taskId: string, slug: string): Promise { - await this.request('POST', `/api/v1/tasks/${taskId}/watch?slug=${encodeURIComponent(slug)}`); + async watchTask(taskId: string): Promise { + await this.request('POST', `/api/v1/tasks/${taskId}/watch`); } // --- Steps (checklist inside task) ---