From 0b969483a602b6cba6a4a2554b2a4477dfbd7e4c Mon Sep 17 00:00:00 2001 From: Jiayuan Zhang Date: Wed, 29 Apr 2026 13:48:35 +0200 Subject: [PATCH 1/8] fix(quick-create): block submit while image uploads are in progress (#1864) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Without this guard, submitting during an active upload causes stripBlobUrls to silently remove the in-flight blob image from the markdown, so the agent never sees the pasted screenshot. Now the Create button disables and shows "Uploading…" until all file uploads resolve. --- packages/views/modals/quick-create-issue.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/views/modals/quick-create-issue.tsx b/packages/views/modals/quick-create-issue.tsx index 0bfb4db93e..57b20161bc 100644 --- a/packages/views/modals/quick-create-issue.tsx +++ b/packages/views/modals/quick-create-issue.tsx @@ -135,7 +135,7 @@ export function AgentCreatePanel({ // Image paste/drop support: route uploads through the same helper Advanced // uses, so users can paste screenshots straight into the prompt and the // agent receives them as embedded markdown image URLs in the prompt. - const { uploadWithToast } = useFileUpload(api); + const { uploadWithToast, uploading } = useFileUpload(api); const handleUploadFile = useCallback( (file: File) => uploadWithToast(file), [uploadWithToast], @@ -154,7 +154,7 @@ export function AgentCreatePanel({ const submit = async () => { const md = editorRef.current?.getMarkdown()?.trim() ?? ""; - if (!md || !agentId || submitting || versionBlocked) return; + if (!md || !agentId || submitting || versionBlocked || uploading) return; setSubmitting(true); setError(null); try { @@ -348,14 +348,14 @@ export function AgentCreatePanel({ From 7dfa72465c8ff0ad2552f95a20d0a67e6aa60f12 Mon Sep 17 00:00:00 2001 From: Jiayuan Zhang Date: Wed, 29 Apr 2026 13:48:44 +0200 Subject: [PATCH 2/8] feat(quick-create): add file upload button to Quick Capture dialog (#1866) The agent-mode Quick Capture dialog already supported image paste and drag-drop through the ContentEditor, but lacked a visible file attachment button. This made the feature undiscoverable. Add a FileUploadButton (paperclip icon) to the footer, matching the pattern already used by the manual create panel and comment input. --- packages/views/modals/quick-create-issue.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/views/modals/quick-create-issue.tsx b/packages/views/modals/quick-create-issue.tsx index 57b20161bc..b01904fadd 100644 --- a/packages/views/modals/quick-create-issue.tsx +++ b/packages/views/modals/quick-create-issue.tsx @@ -37,6 +37,7 @@ import { useFileDropZone, FileDropOverlay, } from "../editor"; +import { FileUploadButton } from "@multica/ui/components/common/file-upload-button"; // AgentCreatePanel — agent-mode body of the create-issue dialog. Renders // only the inner content; the surrounding `` AND `` @@ -334,7 +335,13 @@ export function AgentCreatePanel({ {/* Footer */}
- ⌘↵ to submit +
+ editorRef.current?.uploadFile(file)} + /> + ⌘↵ to submit +