Commit Graph

87 Commits

Author SHA1 Message Date
Variet Worker
2d9fe964f6 fix(bridge): v0.3.12 approval state management — sawRunningAfterPending gate + approval-flow.md system doc
- processResponseFile: set sawRunningAfterPending=true instead of removing resets
  (prevents infinite pending loop AND known-issues L479 auto_resolve regression)
- Hoist sawRunningAfterPending to module level for cross-function access
- Add recentPendingSteps memory dedup Map (60s TTL) for file-deletion resilience
- Create docs/approval-flow.md: complete system flow guide with state diagram
- Update known-issues.md: 2 new entries (state reset fix, memory dedup)
2026-03-16 11:11:50 +09:00
Variet Worker
37c0aae41c fix(bot): multi-project signal freeze — cache-only _get_channel + per-tick scanner cap
Root cause: When 3+ projects generated pending simultaneously, Bot's
pending_approval_scanner made 20-40 Discord API calls in one tick
(sequential await), triggering Discord 429 rate limits which blocked
the entire scanner for 10-30s, freezing ALL signal delivery.

Two fixes:
1. _get_channel(): Replace guild.fetch_channels() (API call) with
   discord.utils.get(guild.channels) (in-memory cache). Eliminates
   redundant API calls + Lock contention when multiple projects arrive.
2. pending_approval_scanner: Per-tick caps (5 new + 5 status) prevent
   one tick from monopolizing Discord API quota. Excess items are
   naturally processed in subsequent 3-second ticks.
2026-03-16 07:06:51 +09:00
CD
c9f44afcf1 fix(bridge): system audit + 5-file bug fix — PATS Deny trigger removal, auto_resolved chat dedup, UUID filenames, IP rate limit leak, bot.py deque 2026-03-15 23:01:20 +09:00
CD
429cae47b7 docs: session end — known-issues + devlog + VSIX v0.3.11 deployed 2026-03-15 18:53:00 +09:00
CD
6739f8f30c fix(bridge): v0.3.11 approval flow architecture fix — eliminate double-fire auto-approve, strip 30+ failed RPC strategies, add project_name DEDUP guard
- Remove Extension-side auto-approve (was double-firing with Bot auto-approve)
- Strip failed strategies 0A-1 from tryApprovalStrategies (~150 lines)
- Keep only Strategy 0-PROTO (proto RPC) + Strategy 2 (clickTrigger)
- Add bot.py AUTO-RESOLVED logging for diagnostics
- Update known-issues with 3 new entries
- Clean deployment: v0.3.8→v0.3.10→v0.3.11
2026-03-15 17:11:38 +09:00
CD
f96203646e fix(bridge): 4 race condition fixes for approval lifecycle 2026-03-15 10:44:31 +09:00
CD
40e3cd550f fix(bridge): 5 bug fixes for approval signal drop and Discord relay
- DEDUP: add conversation_id guard to prevent cross-session step_index collision
- step_probe: suppress pending when projectName=default (empty window)
- watchCommandsDir: add 3s polling fallback (fs.watch silent fail on Windows)
- auto toggle: write chat_snapshot confirmation back to Discord
- bot on_message: add message ID dedup for Gateway event replay
2026-03-15 08:18:26 +09:00
Variet Worker
9036f1cefc docs: devlog #005 + known-issues — rate limit 구조적 수정 기록 2026-03-12 23:06:15 +09:00
Variet Worker
5a4ac1bf9b docs: devlog #004 + known-issues — Collector multi-project polling bug 2026-03-12 20:54:23 +09:00
Variet Worker
6d8c6f182c fix(extension): HTML 패치 안전성 강화 — pre-patch backup + 구조 검증 + 자동 복원 2026-03-12 17:55:42 +09:00
Variet Worker
a9feee6faa fix(extension): workbench.html 0-byte 파괴 방지 — pre-read/pre-write 안전 가드 추가 2026-03-12 17:05:29 +09:00
Variet Worker
52c9526fdb fix(bridge): 429 Rate Limit 무한 루프 방지 — 지수 백오프 + Collector 폴링 보호 + rate limit 완화 2026-03-12 00:50:29 +09:00
Variet Worker
3fcf4f7037 docs: 세션 종료 — AGENT.md 검증 규칙 + known-issues 3건 + devlog
AGENT.md:
- NEVER #8-9: 실제 E2E 테스트 없이 '구현 완료' 금지
- ALWAYS #7-8: 실행 검증 필수, '구현'과 '검증' 구분 보고

known-issues 3건:
- Collector 동기→aiohttp 전환 기록
- Extension fs.watch response 감지 누락 (미해결)
- rejectAgentStep 미등록 (미해결)
2026-03-12 00:00:30 +09:00
Variet Worker
1696a2976b fix(config,extension): BRAIN_PATH 빈문자열 버그 + 크로스프로젝트 DEDUP MERGE 수정
- config.py: os.getenv BRAIN_PATH 빈값 시 CWD 해석 → or 패턴으로 수정
- extension.ts: writePendingApproval DEDUP에 project_name 가드 3곳 추가
- extension.ts: HTTP /pending file_permission dedup에도 project_name 가드
- known-issues: 2건 추가 (BRAIN_PATH, DEDUP MERGE)
- devlog: 2026-03-11 생성
2026-03-11 09:36:55 +09:00
Variet Worker
71aa80d144 fix(extension): v0.3.9 — SDK JS 파일 VSIX 포함 수정 + start_bot.bat conda Python 우선 2026-03-11 00:01:26 +09:00
CD
a0d46f1ff3 fix(extension): SDK LS 대소문자 매칭 버그 수정 — fixLSConnection() 추가 (멀티프로젝트 신호 누락 해결) 2026-03-10 22:51:02 +09:00
CD
4d780ec5e7 docs: devlog 013 + known-issues (Reload Window stale session, RUNNING 우선 선택, IDLE 채널) 2026-03-10 22:21:32 +09:00
CD
6179c4d242 fix(bridge): RUNNING 세션 우선 선택 + IDLE 채널 자동 생성 제거
- extension: bestSession 선택에 2단계 비교 (RUNNING > IDLE, then modTime)
- extension: [SESSION-FILTER] 진단 로그 + [projectName] 로그 접두사
- bot: pending_approval_scanner의 IDLE 프로젝트 자동 채널 생성 제거
- known-issues: 2개 항목 추가 (IDLE 고착, 채널 증식)
2026-03-10 21:56:46 +09:00
CD
5a3217d31a fix(extension): 크로스 프로젝트 response watcher 우회 수정 + file_permission write 도구 3-button 매핑
- response watcher: pending 삭제 후 response data의 project_name으로 fallback 필터
- processResponseFile: sessionId를 pending에서 우선 사용 (activeSessionId 대신)
- logToFile: [projectName] 접두사 추가 (공유 로그 구분)
- file_permission 리스트에 replace_file_content, write_to_file, multi_replace_file_content 추가
- UserResponse에 project_name 필드 추가 + bot.py 4곳 전파
- known-issues: 2건 추가, devlog 012
2026-03-10 21:02:06 +09:00
CD
08c5cb461b docs: devlog 011 + known-issues (workspace URI 세션 격리) 2026-03-10 19:33:39 +09:00
CD
c9524fc8a8 fix(extension): v0.3.7 — file_permission 3-button 주입 + active_project.lock 제거
- writePendingApproval()에서 step_type=file_permission일 때 자동 3-button 주입
- active_project.lock 메커니즘 제거 (멀티 프로젝트 동시 사용 지원)
- step_probe auto-resolve에 project_name 필터 추가
- known-issues 2건 추가
2026-03-10 18:48:51 +09:00
CD
93439d2f1c docs: devlog index 002+003, known-issues update (verbosity + file_permission), Vikunja #276 #277 done 2026-03-10 13:46:43 +09:00
CD
aab1cfba27 fix(bridge): approval ENOENT race condition + multi-choice button grouping #task-276 #task-277 2026-03-10 06:32:20 +09:00
CD
373c0f7ddc fix(bridge): approval flow robustness — pending cleanup, MERGE dedup, false positive filter, auto_resolve, 30min timeout 2026-03-10 00:41:39 +09:00
CD
18b3734c02 fix(bridge): approval flow tuning — dedup + text cleanup + stall fallback removal + safe reject #task-256 2026-03-09 22:31:44 +09:00
CD
08077e8afa fix(bridge): CSP script-src 'unsafe-inline' patch for renderer v3 execution #task-264 2026-03-09 20:35:38 +09:00
CD
da31740cc2 docs: V8 CachedData diagnosis + cache clearing for renderer v3 #task-264 2026-03-09 20:03:35 +09:00
CD
5971a524ea fix(bridge): workbench.html inline v3 script injection + both-HTML loop patch #task-264 2026-03-09 19:38:06 +09:00
CD
23bd8f4613 docs: add approval strategy decision chain to known-issues (handoff clarity) 2026-03-09 18:28:45 +09:00
CD
32bf5ae416 feat(bridge): renderer v3 deep DOM traversal (iframe/webview/shadow) #task-255
- deepFindButtons(): traverse iframe contentDocument, webview.executeJavaScript, shadow DOMs
- dumpDOMStructure(): startup diagnostic dump of all iframes/webviews/buttons
- 3-phase trigger-click: deep DOM → webview execJS → iframe direct
- known-issues: webview iframe isolation confirmed, v3 solution documented
2026-03-09 18:06:01 +09:00
CD
5e64860c3f docs: update devlog index + known-issues with renderer DOM click status 2026-03-09 15:12:12 +09:00
CD
4497e966b9 feat(bridge): renderer DOM click approval + command discovery diagnostic
- CMD-DISCOVERY: enumerate all antigravity.* commands at activation (72) and during WAITING state (119)
- APPROVAL-CMD-CHECK: re-check commands inside tryApprovalStrategies for dynamic registration
- Confirmed: ALL 7 SDK approval commands NOT REGISTERED in current AG build
- Confirmed: sendChatActionMessage, executeCascadeAction also NOT REGISTERED
- Replaced failed keyboard simulation (Strategy 2) with renderer DOM click approach:
  - Added clickTrigger variable + GET /trigger-click HTTP endpoint
  - Renderer polls /trigger-click every 1s, clicks Run/Accept button via DOM
- Updated known-issues.md with comprehensive findings
- Added devlog entry 20260309-002
2026-03-09 15:09:13 +09:00
CD
3b1bb9246e feat(bridge): step-type-specific approval commands + SDK research
- tryApprovalStrategies: terminalCommand.run > terminalCommand.accept > command.accept > acceptAgentStep
- Step probe: immediate on first stall (5s), 775-limit detection with dynamic fallback
- NOTIFY filter: skip <50 chars, TASK dedup by taskName+taskStatus
- BTN-DUMP diagnostic removed from renderer
- Focus: agentPanel.focus + agentSidePanel.focus (verified SDK commands)
- known-issues: add step-type command mismatch finding
2026-03-09 09:19:36 +09:00
CD
027135e2b5 fix(bridge): response file race condition + Run button regex + known issues
- Fix: processResponseFile no longer deletes response files for DOM observer
  approvals, allowing renderer pollResponse to find and serve them via HTTP
- Fix: Run button regex ^Run$ → ^Run to match 'Run Alt+⏎' button text
- Fix: BTN-DUMP diagnostic added to generateApprovalObserverScript (source)
- Doc: 2 new known issues (race condition, renderer script 3-location confusion)
- Doc: devlog entry #19
2026-03-08 22:58:17 +09:00
CD
810fbcc114 feat(bridge): 승인 감지 최적화 — latestToolCallStep 즉시 감지 + DOM scan 확장
- latestToolCallStep RPC 기반 즉시 감지 (30초 stall → 5초 poll)
- DOM scan 범위: findPanel() → document.body 확장
- Accept all/Reject all 리뷰 바 패턴 추가
- Stall detection을 100초 fallback으로 약화
- extractToolCommand/extractToolDescription 헬퍼 추가
- known-issues 5건 신규 추가
- start/services workflow: Python 전체 경로 + services.md 로딩

#task-258 #task-262
2026-03-08 20:21:11 +09:00
CD
8ed1ece87a fix(bridge): renderer script debugging — async fetch, install path fix, product.json checksums
- Replace sync XHR tryPing() with async fetch tryPingAsync() for port discovery
- Add ag-sdk JS file to product.json checksums in updateProductChecksums()
- Revert to inline script approach for jetski HTML (vscode-file:// blocks custom .js)
- Remove old external script tag cleanup, add inline markers
- Update known-issues with 3 new findings
- Add devlog entry #16
2026-03-08 19:51:27 +09:00
CD
43f023c87e fix(bridge): v0.3.5 — inline script + deterministic port + auto-checksum
- vscode-file:// refuses custom .js files → inline script into HTML
- Random port → deterministic port from project name hash (gravity_control=34332)
- Hardcoded port in renderer script for immediate discovery
- Auto-update product.json SHA256 checksums after HTML modification
- Bump version 0.2.0 → 0.3.5
2026-03-08 18:37:09 +09:00