From c7ff7dc2a6108acb13f5f983792d65c5073829a1 Mon Sep 17 00:00:00 2001
From: soryu <soryu@soryu.co>
Date: Sun, 18 Jan 2026 19:29:19 +0000
Subject: Add full task page navigation button to TaskTree rows
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add a hover-visible arrow icon (↗) to each task row in the TaskTree
component that links to the full task page (/tasks/{taskId}). The button:
- Appears on hover using opacity transition
- Stops event propagation to avoid triggering parent onSelect
- Matches existing hover styling patterns with the #75aafc color scheme

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---
 makima/frontend/src/components/mesh/TaskTree.tsx | 10 ++++++++++
 1 file changed, 10 insertions(+)

(limited to 'makima/frontend/src/components/mesh/TaskTree.tsx')

diff --git a/makima/frontend/src/components/mesh/TaskTree.tsx b/makima/frontend/src/components/mesh/TaskTree.tsx
index 46ae78d..296d3c6 100644
--- a/makima/frontend/src/components/mesh/TaskTree.tsx
+++ b/makima/frontend/src/components/mesh/TaskTree.tsx
@@ -165,6 +165,16 @@ function TreeNode({ task, isSupervisorTask, onSelect, depth, fetchSubtasks }: Tr
             P{task.priority}
           </span>
         )}
+
+        {/* Open in full page button */}
+        <a
+          href={`/tasks/${task.id}`}
+          onClick={(e) => e.stopPropagation()}
+          className="font-mono text-[10px] text-[#555] opacity-0 group-hover:opacity-100 hover:text-[#75aafc] transition-all"
+          title="Open task page"
+        >
+          ↗
+        </a>
       </div>
 
       {/* Children */}
-- 
cgit v1.2.3

