diff --git a/PATCHNOTES.md b/PATCHNOTES.md index c40c053..1e1403d 100644 --- a/PATCHNOTES.md +++ b/PATCHNOTES.md @@ -1,3 +1,11 @@ +# Patch Notes - v2.26.0 (2026-04-30) + +## πŸ“‚ Enhanced Drag & Drop: Path Insertion +- **New Feature:** VS Code Explorerλ‚˜ Antigravity νƒμƒ‰κΈ°μ—μ„œ 파일/폴더λ₯Ό λ“œλž˜κ·Έν•˜μ—¬ μ±„νŒ…μ°½μ— λ†“μœΌλ©΄, ν•΄λ‹Ή **경둜(Path)κ°€ μžλ™μœΌλ‘œ ν…μŠ€νŠΈ μ˜μ—­μ— μž…λ ₯**λ©λ‹ˆλ‹€. +- **Workflow:** OS 탐색기 λ“œλž˜κ·Έ μ‹œμ—λŠ” '파일 첨뢀', λ‚΄λΆ€ 탐색기 λ“œλž˜κ·Έ μ‹œμ—λŠ” '경둜 μž…λ ₯'으둜 λ™μž‘ν•˜μ—¬ μž‘μ—… νš¨μœ¨μ„ κ·ΉλŒ€ν™”ν–ˆμŠ΅λ‹ˆλ‹€. + +--- + # Patch Notes - v2.25.0 (2026-04-30) ## πŸš€ UX Optimization & Stability (Kodari Approved) diff --git a/package.json b/package.json index de0e243..968de04 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "g1nation", "displayName": "G1nation", "description": "100% local AI coding agent for VS Code. Create files, edit code, run commands, and work offline with Ollama or LM Studio.", - "version": "2.25.0", + "version": "2.26.0", "publisher": "connectailab", "license": "MIT", "icon": "assets/icon.png", diff --git a/src/sidebarProvider.ts b/src/sidebarProvider.ts index e4514a6..0255ac1 100644 --- a/src/sidebarProvider.ts +++ b/src/sidebarProvider.ts @@ -1786,14 +1786,33 @@ export class SidebarChatProvider implements vscode.WebviewViewProvider, BridgeIn document.body.addEventListener('drop', e => { const dt = e.dataTransfer; const files = dt.files; + const textData = dt.getData('text/plain'); - // ⭐ Kodari PD κ°€μ΄λ“œ 반영: Input μš”μ†Œμ˜ μƒνƒœλ₯Ό λ“œλ‘­λœ 파일둜 κ°•μ œ 동기화 + // 1. OS 파일 λ“œλž˜κ·Έ 처리 (κΈ°μ‘΄ 첨뢀 둜직) if (files && files.length > 0) { - fileInput.files = files; // Input의 files 속성 μ—…λ°μ΄νŠΈ + fileInput.files = files; console.log(\`βœ… [DnD] Input μƒνƒœ 동기화 성곡: \${files[0].name} μ™Έ \${files.length - 1}개\`); - } + processFiles(files); + } - processFiles(files); + // 2. VS Code / Antigravity Explorer 경둜 처리 (ν…μŠ€νŠΈ μž…λ ₯ 둜직) + // 파일 객체가 μ—†κ±°λ‚˜, 경둜 정보λ₯Ό ν…μŠ€νŠΈλ‘œλ„ λ„£κ³  싢을 λ•Œ μž‘λ™ + if (textData && textData.trim().length > 0) { + const currentVal = input.value; + const spacer = currentVal.length > 0 && !currentVal.endsWith('\n') ? '\n' : ''; + input.value = currentVal + spacer + textData.trim(); + + // Textarea 높이 및 μƒνƒœ 동기화 + input.style.height = 'auto'; + input.style.height = input.scrollHeight + 'px'; + setDraftActive(true); + + // μ‹œκ°μ  ν”Όλ“œλ°± + if (!files || files.length === 0) { + showToast('πŸ“‚ κ²½λ‘œκ°€ μž…λ ₯λ˜μ—ˆμŠ΅λ‹ˆλ‹€.', 'success'); + Sound.success(); + } + } }, false); function send() {