From 4b3781c9cc42513f2ce4baf805fc090129e8c57a Mon Sep 17 00:00:00 2001 From: Nyk <0xnykcd@googlemail.com> Date: Wed, 4 Mar 2026 22:24:42 +0700 Subject: [PATCH 1/3] feat: add task URL deep-linking and agent task links --- src/components/panels/agent-detail-tabs.tsx | 6 ++- src/components/panels/task-board-panel.tsx | 60 +++++++++++++++++++-- 2 files changed, 62 insertions(+), 4 deletions(-) diff --git a/src/components/panels/agent-detail-tabs.tsx b/src/components/panels/agent-detail-tabs.tsx index 1714fc9..ea42600 100644 --- a/src/components/panels/agent-detail-tabs.tsx +++ b/src/components/panels/agent-detail-tabs.tsx @@ -1,6 +1,7 @@ 'use client' import { useState, useEffect } from 'react' +import Link from 'next/link' interface Agent { id: number @@ -665,7 +666,10 @@ export function TasksTab({ agent }: { agent: Agent }) {
{task.description}
)} diff --git a/src/components/panels/task-board-panel.tsx b/src/components/panels/task-board-panel.tsx index 355b6ce..1dda867 100644 --- a/src/components/panels/task-board-panel.tsx +++ b/src/components/panels/task-board-panel.tsx @@ -1,6 +1,7 @@ 'use client' import { useState, useEffect, useCallback, useRef } from 'react' +import { usePathname, useRouter, useSearchParams } from 'next/navigation' import { useMissionControl } from '@/store' import { useSmartPoll } from '@/lib/use-smart-poll' import { useFocusTrap } from '@/lib/use-focus-trap' @@ -67,6 +68,9 @@ const priorityColors: Record{task.description}
)} diff --git a/src/components/panels/task-board-panel.tsx b/src/components/panels/task-board-panel.tsx index 1dda867..760c9db 100644 --- a/src/components/panels/task-board-panel.tsx +++ b/src/components/panels/task-board-panel.tsx @@ -24,6 +24,11 @@ interface Task { tags?: string[] metadata?: any aegisApproved?: boolean + project_id?: number + project_ticket_no?: number + project_name?: string + project_prefix?: string + ticket_ref?: string } interface Agent { @@ -50,6 +55,14 @@ interface Comment { replies?: Comment[] } +interface Project { + id: number + name: string + slug: string + ticket_prefix: string + status: 'active' | 'archived' +} + const statusColumns = [ { key: 'inbox', title: 'Inbox', color: 'bg-secondary text-foreground' }, { key: 'assigned', title: 'Assigned', color: 'bg-blue-500/20 text-blue-400' }, @@ -72,11 +85,14 @@ export function TaskBoardPanel() { const pathname = usePathname() const searchParams = useSearchParams() const [agents, setAgents] = useState