diff --git a/frontend/src/components/git/ForgejoIssueDetailDialog.tsx b/frontend/src/components/git/ForgejoIssueDetailDialog.tsx
index 3de8484..92d0e97 100644
--- a/frontend/src/components/git/ForgejoIssueDetailDialog.tsx
+++ b/frontend/src/components/git/ForgejoIssueDetailDialog.tsx
@@ -2,7 +2,7 @@
import { useEffect, useMemo, useState } from "react";
-import { ExternalLink, Loader2, MessageSquarePlus, Pencil, UserPlus, XCircle } from "lucide-react";
+import { ExternalLink, Loader2, MessageSquarePlus, Pencil, Terminal, UserPlus, XCircle } from "lucide-react";
import {
Dialog,
@@ -131,6 +131,25 @@ export function ForgejoIssueDetailDialog({
onRefresh?.();
};
+ const handleDispatchToClaudeCode = async () => {
+ const parts: string[] = [
+ `You have been assigned a Forgejo issue.\n`,
+ `**Issue**: #${active.forgejo_issue_number} ${active.title}`,
+ `**Repository**: ${repositoryName}`,
+ `**State**: ${active.state}`,
+ ];
+ if (body.trim()) {
+ parts.push(`\n**Description**:\n${body.trim()}`);
+ }
+ parts.push(`\n---\nPlease review this issue and begin working on it.`);
+ const prompt = parts.join("\n");
+ try {
+ await navigator.clipboard.writeText(prompt);
+ } catch {
+ // clipboard unavailable — silently ignore
+ }
+ };
+
const handleEditSuccess = (updated: {
title: string;
body: string | null;
@@ -213,6 +232,16 @@ export function ForgejoIssueDetailDialog({
Assign Agent
+