diff --git a/.agents/references/known-issues.md b/.agents/references/known-issues.md index 2449e76..f12c9f6 100644 --- a/.agents/references/known-issues.md +++ b/.agents/references/known-issues.md @@ -261,3 +261,26 @@ - **해결**: step probe 경로에서 reject 시 `tryApprovalStrategies` 호출 제거. reject은 로그만 남기고 파기적 동작 없음. DOM observer 경로만 실제 Reject 버튼 클릭 허용 - **주의**: `ResolveOutstandingSteps`는 이름과 달리 "해결"이 아닌 "취소". 승인에 절대 사용 금지 (이전 이슈 #55~59 참조) +### [2026-03-09] Pending 파일 무한 누적 — write_response 후 미삭제 +- **증상**: `bridge/pending/` 디렉토리에 79개 이상의 .json 파일이 쌓여 봇 시작 시 폭주 +- **원인**: `write_response()`가 pending 파일 status만 변경하고 삭제하지 않음. `get_pending_requests()`에 age filter 없음 +- **해결**: (1) `write_response()`에서 pending 파일 삭제, (2) `get_pending_requests()`에 5분 age filter, (3) 시작 시 `_cleanup_stale_pending()` 호출 +- **주의**: 봇 재시작 시 자동 정리. age filter는 expired 마킹 후 skip + +### [2026-03-09] Discord 승인 "Run" 표시 — DOM/step_probe 타이밍 불일치 +- **증상**: Discord에 상세 명령어 대신 "Run"만 표시 +- **원인**: DOM observer가 "Run" pending 생성(t=0) → 봇이 3초 후 전송 → step_probe MERGE가 10초 후 완료 → 이미 전송 후 +- **해결**: (1) step_probe가 기존 DOM pending에 MERGE (skip 대신 update), (2) 봇에서 짧은 명령어(≤15자) 4 cycles(12s) 대기, 매 cycle re-read하여 merge 즉시 전송 +- **주의**: MERGE 타이밍은 step_probe poll interval(5s) + stall detection 필요하므로 최소 10초. defer는 이보다 길어야 함 + +### [2026-03-09] DOM observer false positive — Proceed/Continue/Open 버튼 오감지 +- **증상**: 작업 전환 시(notify_user, task_boundary) 승인 요청 없는데도 Discord에 승인 요청 도착 +- **원인**: DOM observer가 AG UI의 PathsToReview "Proceed"/"Open" 버튼, 파일 Open 버튼 등을 승인 버튼으로 오인 +- **해결**: (1) HTTP POST /pending 핸들러에 false positive 필터 추가 (Proceed/Continue/Open/Close/OK 등), (2) "Run" 버튼은 `sessionStalled=true`일 때만 허용 +- **주의**: renderer 인라인 스크립트(HTML)는 extension.js 배포로 안 바뀜 → 서버사이드 필터가 필수. PATS 패턴 수정은 HTML 재패치 시에만 적용 + +### [2026-03-09] Discord ApprovalView timeout — 5분 후 버튼 무응답 +- **증상**: 시간이 지난 후 Discord 승인 버튼 클릭해도 반응 없음 +- **원인**: Discord.py View의 기본 timeout이 300초(5분)로 설정됨 +- **해결**: timeout을 1800초(30분)로 증가 +- **주의**: Discord View timeout은 서버 재시작 후만 적용. 기존 메시지의 View는 이미 만료됨 diff --git a/bot.py b/bot.py index 6754e74..01369a9 100644 --- a/bot.py +++ b/bot.py @@ -35,7 +35,7 @@ class ApprovalView(discord.ui.View): """Discord buttons for approving/rejecting Antigravity actions.""" def __init__(self, bridge: BridgeProtocol, request: ApprovalRequest): - super().__init__(timeout=300) + super().__init__(timeout=1800) # 30 minutes self.bridge = bridge self.request = request self.responded = False @@ -100,6 +100,7 @@ class GravityBot(commands.Bot): self.channel_to_project: dict[int, str] = {} # channel.id → project self.session_status_messages: dict[str, int] = {} # conv_id → msg_id self._sent_approval_ids: set[str] = set() + self._deferred_ids: dict[str, int] = {} # request_id → defer count self._ready_event = asyncio.Event() self._channel_lock = asyncio.Lock() self.bridge = BridgeProtocol() @@ -450,6 +451,25 @@ class GravityBot(commands.Bot): if req.discord_message_id != 0: continue + # Defer short-command pendings (e.g. "Run") by 4 cycles (~12s) + # to give step_probe time to merge detailed command info + # (step_probe MERGE happens ~10s after pending creation) + if len(req.command) <= 15: + if req.request_id not in self._deferred_ids: + self._deferred_ids[req.request_id] = 1 + continue # skip this cycle + elif self._deferred_ids[req.request_id] < 4: + self._deferred_ids[req.request_id] += 1 + # Re-read from file (step_probe may have merged) + fresh = self.bridge.read_pending_request(req.request_id) + if fresh and len(fresh.command) > 15: + req = fresh # use merged version — send now! + else: + continue # wait one more cycle + + # Clean up defer tracking + self._deferred_ids.pop(req.request_id, None) + # Learn project mapping from pending approval project = req.project_name or Config.PROJECT_NAME if req.conversation_id and req.conversation_id != '__global__': @@ -459,6 +479,33 @@ class GravityBot(commands.Bot): if channel: self._sent_approval_ids.add(req.request_id) await self._send_approval_request(channel, req) + + # ── Check for auto_resolved pendings (approved directly in AG) ── + for f in self.bridge.pending_dir.glob("*.json"): + try: + data = json.loads(f.read_text(encoding="utf-8-sig")) + if data.get("status") == "auto_resolved": + msg_id = data.get("discord_message_id", 0) + project = data.get("project_name", Config.PROJECT_NAME) + if msg_id: + channel = await self._get_channel(project) + if channel: + try: + msg = await channel.fetch_message(msg_id) + embed = discord.Embed( + title="✅ AG에서 직접 승인됨", + description=f"```\n{data.get('command', '')[:500]}\n```", + color=discord.Color.green(), + ) + embed.set_footer(text=f"ID: {data.get('request_id', '')}") + await msg.edit(embed=embed, view=None) + except discord.NotFound: + pass + f.unlink() + self._deferred_ids.pop(data.get("request_id", ""), None) + except (json.JSONDecodeError, OSError): + pass + except Exception as e: logger.error(f"Error scanning approvals: {e}") diff --git a/bridge.py b/bridge.py index 83408cf..ef655d8 100644 --- a/bridge.py +++ b/bridge.py @@ -68,15 +68,46 @@ class BridgeProtocol: for d in [self.pending_dir, self.response_dir, self.commands_dir]: d.mkdir(parents=True, exist_ok=True) + # Startup cleanup: purge stale pending files (> 5 min old) + self._cleanup_stale_pending() + logger.info(f"Bridge protocol initialized: {self.bridge_dir}") - def get_pending_requests(self) -> list[ApprovalRequest]: - """Read all pending approval requests.""" - requests = [] - fields = {f.name for f in ApprovalRequest.__dataclass_fields__.values()} + def _cleanup_stale_pending(self, max_age_seconds: int = 300): + """Remove pending files older than max_age_seconds on startup.""" + now = time.time() + cleaned = 0 for f in self.pending_dir.glob("*.json"): try: data = json.loads(f.read_text(encoding="utf-8-sig")) + ts = data.get("timestamp", 0) + if now - ts > max_age_seconds: + f.unlink() + cleaned += 1 + except (json.JSONDecodeError, OSError): + f.unlink() # corrupt file, remove + cleaned += 1 + if cleaned: + logger.info(f"Startup cleanup: removed {cleaned} stale pending files") + + def get_pending_requests(self) -> list[ApprovalRequest]: + """Read all pending approval requests. Skips files older than 5 minutes.""" + requests = [] + fields = {f.name for f in ApprovalRequest.__dataclass_fields__.values()} + now = time.time() + MAX_AGE = 300 # 5 minutes + for f in self.pending_dir.glob("*.json"): + try: + data = json.loads(f.read_text(encoding="utf-8-sig")) + ts = data.get("timestamp", 0) + if now - ts > MAX_AGE: + # Too old — mark expired and skip + data["status"] = "expired" + f.write_text( + json.dumps(data, ensure_ascii=False, indent=2), + encoding="utf-8", + ) + continue if data.get("status") == "pending": # Filter to known fields only filtered = {k: v for k, v in data.items() if k in fields} @@ -85,6 +116,19 @@ class BridgeProtocol: logger.warning(f"Bad pending request {f.name}: {e}") return requests + def read_pending_request(self, request_id: str) -> ApprovalRequest | None: + """Re-read a specific pending request (to get merged data).""" + f = self.pending_dir / f"{request_id}.json" + if not f.exists(): + return None + try: + data = json.loads(f.read_text(encoding="utf-8-sig")) + fields = {fn.name for fn in ApprovalRequest.__dataclass_fields__.values()} + filtered = {k: v for k, v in data.items() if k in fields} + return ApprovalRequest(**filtered) + except (json.JSONDecodeError, TypeError, OSError): + return None + def write_response(self, response: UserResponse): """Write a user response to the response directory.""" response.timestamp = time.time() @@ -97,17 +141,12 @@ class BridgeProtocol: ) logger.info(f"Response written: {filename} (approved={response.approved})") - # Mark pending request as processed + # Delete pending file after processing (prevents re-processing and accumulation) pending_file = self.pending_dir / filename if pending_file.exists(): try: - data = json.loads(pending_file.read_text(encoding="utf-8")) - data["status"] = "approved" if response.approved else "rejected" - pending_file.write_text( - json.dumps(data, ensure_ascii=False, indent=2), - encoding="utf-8" - ) - except (json.JSONDecodeError, OSError): + pending_file.unlink() + except OSError: pass def write_command(self, conversation_id: str, text: str, *, project_name: str = ""): diff --git a/docs/devlog/2026-03-09.md b/docs/devlog/2026-03-09.md index 58bfa1a..97bd705 100644 --- a/docs/devlog/2026-03-09.md +++ b/docs/devlog/2026-03-09.md @@ -13,3 +13,4 @@ | 009 | 21:33~22:28 | 승인 플로우 튜닝 — dedup + 텍스트 정제 + stall fallback 제거 + reject 안전화 | `18b3734` | ✅ | | 010 | 22:38~23:10 | E2E 검증 + Retry/Dismiss/Reject all 버튼 패턴 추가 + V8 캐시 삭제 | `4ba65f9` | ✅ | | 011 | 23:11~23:20 | agent_guide 템플릿 통합 — 워크플로우 교체 + 플레이스홀더 적용 + 중복 helper 정리 | `4ba65f9` | ✅ | +| 012 | 23:30~00:31 | 승인 플로우 안정화 — pending 누적/false positive/MERGE dedup/auto_resolve/timeout | `` | 🔧 | diff --git a/docs/devlog/entries/20260309-012.md b/docs/devlog/entries/20260309-012.md new file mode 100644 index 0000000..6100b65 --- /dev/null +++ b/docs/devlog/entries/20260309-012.md @@ -0,0 +1,16 @@ +# 승인 플로우 안정화 — pending 누적/MERGE dedup/false positive/auto_resolve + +- **시간**: 2026-03-09 23:30 ~ 2026-03-10 00:31 +- **Commit**: `72d718f` +- **Vikunja**: #276 → 미완료 (검증 필요) + +## 결정 사항 +- **MERGE vs. Skip**: step_probe가 DOM observer pending에 상세 명령어를 MERGE (이전: skip). DOM이 먼저 "Run" pending 생성 → step_probe가 10초 후 상세 정보로 UPDATE +- **봇 Deferred Sending**: 짧은 명령어(≤15자) 4 cycles(12s) 대기. 매 cycle re-read하여 MERGE 즉시 전송. MERGE 타이밍(~10s)보다 defer를 길게 설정 +- **False Positive 필터**: renderer HTML 인라인 스크립트는 extension.js 배포로 안 바뀜 → HTTP POST /pending 핸들러에 서버사이드 필터 추가. `sessionStalled` 플래그로 "Run" 버튼 게이팅 +- **auto_resolve**: delta>0 발생 시 pending을 "auto_resolved"로 마킹 → 봇이 Discord 메시지를 "✅ AG에서 직접 승인됨"으로 업데이트 + +## 미완료 +- AG 재시작 후 E2E 검증 필요 (Vikunja #276) +- error recovery (Retry) 감지 실제 동작 확인 필요 +- "Accept all" diff review bar 버튼 Discord 릴레이 미확인 diff --git a/extension/out/extension.js b/extension/out/extension.js index 15c4919..3aace34 100644 --- a/extension/out/extension.js +++ b/extension/out/extension.js @@ -425,6 +425,7 @@ let observerHttpServer = null; const pendingResponses = new Map(); // Click trigger: extension sets this, renderer polls and clicks button let clickTrigger = null; +let sessionStalled = false; // true when session is stalled waiting for approval // Deep inspect trigger: curl sets this, renderer picks it up and POSTs results back let deepInspectRequested = false; let deepInspectResult = null; @@ -459,6 +460,22 @@ function startObserverHttpBridge() { req.on('end', () => { try { const data = JSON.parse(body); + // ── Server-side false positive filter ── + const cmd = (data.command || '').trim(); + const FALSE_POSITIVE_RE = /^(Proceed|Continue|Open|Close|OK|Yes|No|Save|Undo|Redo|Back|Next|More|Less|Got it)$/i; + if (FALSE_POSITIVE_RE.test(cmd)) { + logToFile(`[HTTP] filtered false positive: "${cmd}"`); + res.writeHead(200, { 'Content-Type': 'application/json' }); + res.end(JSON.stringify({ ok: false, filtered: true })); + return; + } + // "Run" button → only accept if session is actually stalled (waiting for approval) + if (/^Run/i.test(cmd) && !sessionStalled) { + logToFile(`[HTTP] filtered "Run" — session not stalled`); + res.writeHead(200, { 'Content-Type': 'application/json' }); + res.end(JSON.stringify({ ok: false, filtered: true })); + return; + } const rid = data.request_id || Date.now().toString(); // Write pending file for Discord bot const pendingDir = path.join(bridgePath, 'pending'); @@ -889,8 +906,6 @@ function generateApprovalObserverScript(_port) { {re:/^Accept$/i, type:'agent_step'}, {re:/^Allow/i, type:'permission'}, {re:/^Approve/i, type:'agent_step'}, - {re:/^Continue$/i, type:'continue'}, - {re:/^Proceed$/i, type:'continue'}, {re:/^Retry$/i, type:'error_recovery'}, {re:/^Dismiss$/i, type:'error_recovery'}, ]; @@ -1393,6 +1408,29 @@ function setupMonitor() { logToFile(`[STALL-DBG] idle=${consecutiveIdleCount} modTime='${currentModTime}' changed=${modTimeChanged}`); } if (delta > 0) { + sessionStalled = false; + // Steps progressed — if we had a pending approval, it was handled in AG directly + if (!sawRunningAfterPending && lastPendingStepIndex >= 0) { + // Mark pending as auto_resolved so bot can update Discord message + try { + const pendingFiles = fs.readdirSync(path.join(bridgePath, 'pending')) + .filter((f) => f.endsWith('.json')); + for (const pf of pendingFiles) { + const pfPath = path.join(bridgePath, 'pending', pf); + const pd = JSON.parse(fs.readFileSync(pfPath, 'utf-8')); + if (pd.status === 'pending' && pd.step_index === lastPendingStepIndex) { + pd.status = 'auto_resolved'; + fs.writeFileSync(pfPath, JSON.stringify(pd, null, 2), 'utf-8'); + logToFile(`[AUTO-RESOLVE] step=${lastPendingStepIndex} progressed → marked ${pf}`); + break; + } + } + } + catch (e) { + logToFile(`[AUTO-RESOLVE] error: ${e.message}`); + } + lastPendingStepIndex = -1; + } consecutiveIdleCount = 0; sawRunningAfterPending = true; stallProbed = false; // allow re-probe on next stall @@ -1410,6 +1448,8 @@ function setupMonitor() { else { // lastModifiedTime frozen = real stall (approval waiting) consecutiveIdleCount++; + if (consecutiveIdleCount >= 1) + sessionStalled = true; } lastModTime = currentModTime; // ── Step probe: on stall, fetch latest step via cascadeId (retry until WAITING found) ── @@ -1490,6 +1530,57 @@ function setupMonitor() { // (stall fallback was generating false positives and is now redundant) } else if (!isRunning) { + // ── Error detection: probe when session transitions from RUNNING→idle ── + if (consecutiveIdleCount > 0 && !stallProbed) { + // Was running, now idle — possible error. Probe once. + try { + const stepsResp = await sdk.ls.rawRPC('GetCascadeTrajectorySteps', { + cascadeId: bestSessionId, + }); + if (stepsResp?.steps?.length > 0) { + const steps = stepsResp.steps; + // Check last 3 steps for error/failed status + for (let si = steps.length - 1; si >= Math.max(0, steps.length - 3); si--) { + const step = steps[si]; + const stepStatus = step?.status || ''; + const stepType = step?.type || ''; + if (stepStatus.includes('ERROR') || stepStatus.includes('FAILED')) { + const toolCall = step?.metadata?.toolCall; + const toolName = toolCall?.name || stepType.replace('CORTEX_STEP_TYPE_', '').toLowerCase(); + let command = `⚠️ Error: ${toolName}`; + if (toolCall?.argumentsJson) { + try { + const args = JSON.parse(toolCall.argumentsJson); + if (args.CommandLine) + command = `⚠️ Error: ${args.CommandLine.substring(0, 100)}`; + else if (args.TargetFile) + command = `⚠️ Error: ${args.TargetFile.split(/[\\/]/).pop()}`; + } + catch { } + } + const description = `Step #${si} ${stepStatus} — Retry?`; + logToFile(`[STEP-PROBE] ★ ERROR! step=${si} status=${stepStatus} type=${stepType}`); + if (si !== lastPendingStepIndex) { + stallProbed = true; + lastPendingStepIndex = si; + writePendingApproval({ + conversation_id: activeSessionId, + command, + description, + step_type: 'error_recovery', + step_index: si, + source: 'step_probe_error', + }); + } + break; + } + } + } + } + catch (e) { + logToFile(`[STEP-PROBE-ERR] error check: ${e.message}`); + } + } consecutiveIdleCount = 0; lastModTime = currentModTime; } @@ -1751,7 +1842,7 @@ function writePendingApproval(data) { if (!fs.existsSync(pendingDir)) { fs.mkdirSync(pendingDir, { recursive: true }); } - // ── Dedup: skip if DOM observer already created a pending for same action recently ── + // ── Dedup: if DOM observer already created a "Run"-only pending, MERGE detailed info into it ── const nowMs = Date.now(); const DEDUP_WINDOW_MS = 15_000; // 15 second dedup window try { @@ -1762,7 +1853,16 @@ function writePendingApproval(data) { if (existing.source === 'dom_observer' && existing.status === 'pending') { const age = nowMs - (existing.timestamp * 1000); if (age < DEDUP_WINDOW_MS && age >= 0) { - logToFile(`[DEDUP] skip step_probe pending — DOM observer pending exists: ${ef} (${Math.round(age / 1000)}s ago)`); + // MERGE: update DOM observer pending with detailed step_probe info + existing.command = data.command; + existing.description = data.description; + if (data.step_type) + existing.step_type = data.step_type; + if (data.step_index !== undefined) + existing.step_index = data.step_index; + existing.source = 'dom_observer+step_probe'; // mark as merged + fs.writeFileSync(efPath, JSON.stringify(existing, null, 2), 'utf-8'); + logToFile(`[DEDUP] MERGED step_probe info into DOM pending: ${ef} cmd="${data.command.substring(0, 60)}"`); return; } } diff --git a/extension/out/extension.js.map b/extension/out/extension.js.map index 055448f..b1d0355 100644 --- a/extension/out/extension.js.map +++ b/extension/out/extension.js.map @@ -1 +1 @@ -{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extension/src/extension.ts b/extension/src/extension.ts index e0d8562..a19cf4e 100644 --- a/extension/src/extension.ts +++ b/extension/src/extension.ts @@ -402,6 +402,7 @@ const pendingResponses = new Map(); // Click trigger: extension sets this, renderer polls and clicks button let clickTrigger: { action: 'approve' | 'reject'; timestamp: number } | null = null; +let sessionStalled = false; // true when session is stalled waiting for approval // Deep inspect trigger: curl sets this, renderer picks it up and POSTs results back let deepInspectRequested = false; @@ -437,6 +438,24 @@ function startObserverHttpBridge(): Promise { req.on('end', () => { try { const data = JSON.parse(body); + + // ── Server-side false positive filter ── + const cmd = (data.command || '').trim(); + const FALSE_POSITIVE_RE = /^(Proceed|Continue|Open|Close|OK|Yes|No|Save|Undo|Redo|Back|Next|More|Less|Got it)$/i; + if (FALSE_POSITIVE_RE.test(cmd)) { + logToFile(`[HTTP] filtered false positive: "${cmd}"`); + res.writeHead(200, { 'Content-Type': 'application/json' }); + res.end(JSON.stringify({ ok: false, filtered: true })); + return; + } + // "Run" button → only accept if session is actually stalled (waiting for approval) + if (/^Run/i.test(cmd) && !sessionStalled) { + logToFile(`[HTTP] filtered "Run" — session not stalled`); + res.writeHead(200, { 'Content-Type': 'application/json' }); + res.end(JSON.stringify({ ok: false, filtered: true })); + return; + } + const rid = data.request_id || Date.now().toString(); // Write pending file for Discord bot const pendingDir = path.join(bridgePath, 'pending'); @@ -866,8 +885,6 @@ function generateApprovalObserverScript(_port: number): string { {re:/^Accept$/i, type:'agent_step'}, {re:/^Allow/i, type:'permission'}, {re:/^Approve/i, type:'agent_step'}, - {re:/^Continue$/i, type:'continue'}, - {re:/^Proceed$/i, type:'continue'}, {re:/^Retry$/i, type:'error_recovery'}, {re:/^Dismiss$/i, type:'error_recovery'}, ]; @@ -1379,6 +1396,26 @@ function setupMonitor() { } if (delta > 0) { + sessionStalled = false; + // Steps progressed — if we had a pending approval, it was handled in AG directly + if (!sawRunningAfterPending && lastPendingStepIndex >= 0) { + // Mark pending as auto_resolved so bot can update Discord message + try { + const pendingFiles = fs.readdirSync(path.join(bridgePath, 'pending')) + .filter((f: string) => f.endsWith('.json')); + for (const pf of pendingFiles) { + const pfPath = path.join(bridgePath, 'pending', pf); + const pd = JSON.parse(fs.readFileSync(pfPath, 'utf-8')); + if (pd.status === 'pending' && pd.step_index === lastPendingStepIndex) { + pd.status = 'auto_resolved'; + fs.writeFileSync(pfPath, JSON.stringify(pd, null, 2), 'utf-8'); + logToFile(`[AUTO-RESOLVE] step=${lastPendingStepIndex} progressed → marked ${pf}`); + break; + } + } + } catch (e: any) { logToFile(`[AUTO-RESOLVE] error: ${e.message}`); } + lastPendingStepIndex = -1; + } consecutiveIdleCount = 0; sawRunningAfterPending = true; stallProbed = false; // allow re-probe on next stall @@ -1394,6 +1431,7 @@ function setupMonitor() { } else { // lastModifiedTime frozen = real stall (approval waiting) consecutiveIdleCount++; + if (consecutiveIdleCount >= 1) sessionStalled = true; } lastModTime = currentModTime; @@ -1474,6 +1512,53 @@ function setupMonitor() { // Stall fallback REMOVED — step probe is sole fallback source // (stall fallback was generating false positives and is now redundant) } else if (!isRunning) { + // ── Error detection: probe when session transitions from RUNNING→idle ── + if (consecutiveIdleCount > 0 && !stallProbed) { + // Was running, now idle — possible error. Probe once. + try { + const stepsResp = await sdk.ls.rawRPC('GetCascadeTrajectorySteps', { + cascadeId: bestSessionId, + }); + if (stepsResp?.steps?.length > 0) { + const steps = stepsResp.steps; + // Check last 3 steps for error/failed status + for (let si = steps.length - 1; si >= Math.max(0, steps.length - 3); si--) { + const step = steps[si]; + const stepStatus = step?.status || ''; + const stepType = step?.type || ''; + if (stepStatus.includes('ERROR') || stepStatus.includes('FAILED')) { + const toolCall = step?.metadata?.toolCall; + const toolName = toolCall?.name || stepType.replace('CORTEX_STEP_TYPE_', '').toLowerCase(); + let command = `⚠️ Error: ${toolName}`; + if (toolCall?.argumentsJson) { + try { + const args = JSON.parse(toolCall.argumentsJson); + if (args.CommandLine) command = `⚠️ Error: ${args.CommandLine.substring(0, 100)}`; + else if (args.TargetFile) command = `⚠️ Error: ${args.TargetFile.split(/[\\/]/).pop()}`; + } catch { } + } + const description = `Step #${si} ${stepStatus} — Retry?`; + logToFile(`[STEP-PROBE] ★ ERROR! step=${si} status=${stepStatus} type=${stepType}`); + if (si !== lastPendingStepIndex) { + stallProbed = true; + lastPendingStepIndex = si; + writePendingApproval({ + conversation_id: activeSessionId, + command, + description, + step_type: 'error_recovery', + step_index: si, + source: 'step_probe_error', + }); + } + break; + } + } + } + } catch (e: any) { + logToFile(`[STEP-PROBE-ERR] error check: ${e.message}`); + } + } consecutiveIdleCount = 0; lastModTime = currentModTime; } @@ -1728,7 +1813,7 @@ function writePendingApproval(data: { conversation_id: string; command: string; const pendingDir = path.join(bridgePath, 'pending'); if (!fs.existsSync(pendingDir)) { fs.mkdirSync(pendingDir, { recursive: true }); } - // ── Dedup: skip if DOM observer already created a pending for same action recently ── + // ── Dedup: if DOM observer already created a "Run"-only pending, MERGE detailed info into it ── const nowMs = Date.now(); const DEDUP_WINDOW_MS = 15_000; // 15 second dedup window try { @@ -1739,7 +1824,14 @@ function writePendingApproval(data: { conversation_id: string; command: string; if (existing.source === 'dom_observer' && existing.status === 'pending') { const age = nowMs - (existing.timestamp * 1000); if (age < DEDUP_WINDOW_MS && age >= 0) { - logToFile(`[DEDUP] skip step_probe pending — DOM observer pending exists: ${ef} (${Math.round(age/1000)}s ago)`); + // MERGE: update DOM observer pending with detailed step_probe info + existing.command = data.command; + existing.description = data.description; + if (data.step_type) existing.step_type = data.step_type; + if (data.step_index !== undefined) existing.step_index = data.step_index; + existing.source = 'dom_observer+step_probe'; // mark as merged + fs.writeFileSync(efPath, JSON.stringify(existing, null, 2), 'utf-8'); + logToFile(`[DEDUP] MERGED step_probe info into DOM pending: ${ef} cmd="${data.command.substring(0, 60)}"`); return; } }