From bed032f937d6eef79e4d6dda647f02143886f575 Mon Sep 17 00:00:00 2001
From: Bohan Jiang <52446949+Bohan-J@users.noreply.github.com>
Date: Wed, 27 May 2026 17:21:46 +0800
Subject: [PATCH] fix(issues): move local-directory hint out of the comment
composer (#3363)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The "Agent will work in-place at …" banner used to render directly above
the comment input, which made it read like an input adornment. Move it
to the top of the Activity section (below the "Activity" heading, above
the live agent card) so it reads as section context instead of composer
chrome. Update the component's JSDoc and tweak the margin (mb-2 → mt-3)
to match the new placement.
MUL-2752
---
packages/views/issues/components/issue-detail.tsx | 3 ++-
.../projects/components/local-directory-hint.tsx | 12 ++++++------
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/packages/views/issues/components/issue-detail.tsx b/packages/views/issues/components/issue-detail.tsx
index 8d82b26fb..088c6005d 100644
--- a/packages/views/issues/components/issue-detail.tsx
+++ b/packages/views/issues/components/issue-detail.tsx
@@ -1951,6 +1951,8 @@ export function IssueDetail({ issueId, onDelete, onDone, defaultSidebarOpen = tr
+
+
{/* Agent live output — sticky banner in the activity section,
keyed by issue id so switching issues remounts the card and
clears any in-flight task state from the previous issue.
@@ -2024,7 +2026,6 @@ export function IssueDetail({ issueId, onDelete, onDone, defaultSidebarOpen = tr
{/* Bottom comment input — no avatar, full width */}
-
{/* key={id}: web's /issues/[id] route doesn't remount on
issueId change, so without an explicit key the editor
keeps the previous issue's in-memory content and the
diff --git a/packages/views/projects/components/local-directory-hint.tsx b/packages/views/projects/components/local-directory-hint.tsx
index e4daa7a61..e33f75da4 100644
--- a/packages/views/projects/components/local-directory-hint.tsx
+++ b/packages/views/projects/components/local-directory-hint.tsx
@@ -9,14 +9,14 @@ import { useLocalDaemonStatus } from "../../platform";
import { useT } from "../../i18n";
/**
- * Banner shown above the chat / comment composer when the issue's project
- * is pinned to a `local_directory` resource on **this** daemon. Tells the
- * user "starting an agent here will use {label} ({path}) in-place" so they
- * notice they are not getting an isolated git worktree.
+ * Banner shown at the top of the issue's Activity section when the
+ * project is pinned to a `local_directory` resource on **this** daemon.
+ * Tells the user "starting an agent here will use {label} ({path}) in-
+ * place" so they notice they are not getting an isolated git worktree.
*
* Rendered only on desktop: web has no daemon to compare against, so the
* "this machine" check would always fail. Web users will see local_directory
- * resources read-only in the sidebar but no chat-input hint.
+ * resources read-only in the sidebar but no Activity-section hint.
*
* SSR-safe: the underlying hook reads `window.daemonAPI` defensively, so
* server renders return null.
@@ -48,7 +48,7 @@ export function LocalDirectoryHint({
if (matches.length === 0) return null;
return (
-
+
{matches.map((resource) => {
const ref = resource.resource_ref;
const label = (ref.label || resource.label || ref.local_path).trim() ||