Commit Graph

31 Commits

Author SHA1 Message Date
CD
7982263fcd fix: pass step_type through response file for diff_review routing 2026-03-10 15:02:24 +09:00
CD
048ffd90a3 feat: auto_resolved sync + expired card update + DOM step_index 2026-03-10 13:52:27 +09:00
CD
1f63f60280 feat: proto-based RPC approval for Run commands via Discord
Decoded HandleCascadeUserInteractionRequest protobuf schema from AG's
extension.js (message #162, base64 FileDescriptor 78KB).

Working payload (variant PROTO-0):
  cascadeId + interaction.{trajectoryId, stepIndex, runCommand.confirm}

Changes:
- extension.ts: Added Strategy 0-PROTO with decoded proto RPC call
- extension.ts: Fixed processResponseFile to call tryApprovalStrategies()
  instead of direct clickTrigger (was bypassing all strategies)
- extension.ts: Fixed false positive Run detection (sessionStalled reset
  when step_probe confirms no WAITING)
- extension.ts: Moved lastPendingStepIndex to module scope
- extension.ts: Added activeTrajectoryId tracking from session init
- bot.py: Added MERGE detection + Discord message edit for command updates
- bot.py: Added _sent_commands tracking for merge detection

Proto RE methodology:
1. Found schema exports in AG extension.js
2. Located fileDesc() with base64 protobuf descriptor
3. Decoded 58KB raw proto, found message names
4. Extracted CascadeRunCommandInteraction.confirm field
5. Tested camelCase JSON via ConnectRPC = SUCCESS
2026-03-10 07:45:10 +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
0c3d6cdb6d fix(bridge): step structure discovery + approval watcher + AI text relay
- plannerResponse.response = user-facing text field (confirmed)
- step.runCommand.commandLine = command (not toolCall.argumentsJson)
- Add response watcher: bridge/response/ → ResolveOutstandingSteps RPC
- Fix AI text: use modifiedResponse/response, last-wins, dedup
- Fix flooding: slice(-delta) to skip old steps on reload
- Bot: 404 cache invalidation for deleted Discord channels
2026-03-08 02:29:17 +09:00
CD
befa5d7c26 feat: start scanner loops, remove debug enum, enable chat response relay to Discord 2026-03-07 17:29:23 +09:00
CD
0bd525a54c feat: Discord slash commands /stop /auto /send with guild sync 2026-03-07 15:20:10 +09:00
CD
02e9e4d424 fix: bot text confirmation on relay + rename @bridge to @gravity + channel dedup 2026-03-07 15:15:56 +09:00
CD
af14e5fbc7 fix: _get_channel fetches existing channels before creating (prevents duplicates) 2026-03-07 15:10:43 +09:00
CD
c8c9920dd0 feat: auto-create Discord channel when new project registration detected 2026-03-07 14:59:15 +09:00
CD
d227ba57f7 fix: only log registration count when it changes (stop 3s spam) 2026-03-07 14:53:44 +09:00
CD
35ee916440 feat: chat capture (@bridge participant, onDidChangeTextDocument), !stop command, chat snapshot scanner 2026-03-07 14:45:44 +09:00
CD
d44b4c2f77 feat: full artifact content in Discord (split into chunks) + full task content display 2026-03-07 14:36:18 +09:00
CD
046c58879c fix: periodic register reload in approval scanner + direct project_name access 2026-03-07 14:31:14 +09:00
CD
98bb037c81 feat: session connect command + auto-registration + bridge/register protocol 2026-03-07 14:15:53 +09:00
CD
2c56fc7607 feat: multi-project routing — project_name in bridge, per-project channels, extension filtering 2026-03-07 14:07:40 +09:00
CD
51cfd57930 fix: asyncio.Lock on channel create + PROJECT_NAME in .env.example 2026-03-07 13:37:22 +09:00
CD
efaf29a6d2 refactor: single project channel - guild.fetch_channels API + project_channel singleton 2026-03-07 13:24:42 +09:00
CD
7c081e70b5 fix: channel duplication root fix - ready gate + conv_id-first + Discord API search + hash pre-init 2026-03-07 13:09:05 +09:00
CD
de6f1c7ffd feat(phase4): !auto on/off 명령어 - Discord에서 Antigravity 자동승인 토글 2026-03-07 13:01:07 +09:00
CD
8b3d723650 fix: 채널 중복 완전 근절 - reconnect 시 이름 dedup + 자동 삭제 + project name 최소 5자 2026-03-07 12:55:41 +09:00
CD
ce2336c3d6 fix: 승인 메시지 중복 전송 수정 - in-memory sent tracking 2026-03-07 12:20:39 +09:00
CD
51ece61a61 fix: 채널 중복 완전 해결 - Discord 캐시 대신 자체 dict로 이름 검색 2026-03-07 12:02:03 +09:00
CD
b2622e9052 fix: 채널 중복 생성 근본 수정 - 글로벌 락 + 이름 기반 검색 + API 새로고침 2026-03-07 11:56:10 +09:00
CD
e32be6b2f3 refactor: 전면 재설계 - 시작 시 채널 스팸 제거, content hash 중복 방지, 단일 이벤트 경로 2026-03-07 11:42:11 +09:00
CD
a76208e4e6 fix: task embed 편집, metadata 중복 제거, closed- 채널 복원 2026-03-07 11:24:04 +09:00
CD
5d95185ecd feat(phase2): 승인/거부 버튼 + bridge 프로토콜 + 테이블 변환 수정 + 중복 메시지 해결 2026-03-07 11:12:56 +09:00
CD
02c757f703 fix(bridge): 채널 중복 생성 race condition 수정 + AG- 접두사 + metadata 모니터링 2026-03-07 10:58:10 +09:00
CD
ba8454c2e1 feat(bridge): 동적 채널 관리 - gravity-{프로젝트명} 채널 자동 생성/아카이브 2026-03-07 10:36:06 +09:00
CD
ea5001f243 feat(bridge): Watcher, Parser, Bot, Main 핵심 컴포넌트 구현 #task-215 #task-216 #task-217 #task-218 2026-03-07 10:21:00 +09:00