Compare commits

...

2 Commits

4 changed files with 16 additions and 8 deletions

View File

@@ -10,4 +10,6 @@
| 006 | 19:38~19:56 | V8 CachedData 진단 + 캐시 삭제 (renderer 미실행 근본 원인) | docs only | ✅ | | 006 | 19:38~19:56 | V8 CachedData 진단 + 캐시 삭제 (renderer 미실행 근본 원인) | docs only | ✅ |
| 007 | 20:04~20:28 | CSP script-src `'unsafe-inline'` 패치 (renderer 미실행 진짜 근본 원인) | `08077e8` | ✅ | | 007 | 20:04~20:28 | CSP script-src `'unsafe-inline'` 패치 (renderer 미실행 진짜 근본 원인) | `08077e8` | ✅ |
| 008 | 21:00~21:30 | **E2E 승인 플로우 성공 검증** — AG 재시작 후 renderer v3 실행 확인 + Discord 승인→명령 실행 | `520d36e` | ✅ | | 008 | 21:00~21:30 | **E2E 승인 플로우 성공 검증** — AG 재시작 후 renderer v3 실행 확인 + Discord 승인→명령 실행 | `520d36e` | ✅ |
| 009 | 21:33~22:28 | 승인 플로우 튜닝 — dedup + 텍스트 정제 + stall fallback 제거 + reject 안전화 | `18b3734` | 🔧 | | 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` | ✅ |

View File

@@ -885,15 +885,18 @@ function generateApprovalObserverScript(_port) {
var PATS=[ var PATS=[
{re:/^Run/i, type:'terminal_command'}, {re:/^Run/i, type:'terminal_command'},
{re:/^Accept all$/i, type:'diff_review'}, {re:/^Accept all$/i, type:'diff_review'},
{re:/^Reject all$/i, type:'diff_review'},
{re:/^Accept$/i, type:'agent_step'}, {re:/^Accept$/i, type:'agent_step'},
{re:/^Allow/i, type:'permission'}, {re:/^Allow/i, type:'permission'},
{re:/^Approve/i, type:'agent_step'}, {re:/^Approve/i, type:'agent_step'},
{re:/^Continue$/i, type:'continue'}, {re:/^Continue$/i, type:'continue'},
{re:/^Proceed$/i, type:'continue'}, {re:/^Proceed$/i, type:'continue'},
{re:/^Retry$/i, type:'error_recovery'},
{re:/^Dismiss$/i, type:'error_recovery'},
]; ];
// Reject button patterns for finding the counterpart // Reject button patterns for finding the counterpart
var REJECT_RE=[/^reject$/i,/^reject all$/i,/^cancel$/i,/^deny$/i,/^stop$/i,/^decline$/i]; var REJECT_RE=[/^reject$/i,/^reject all$/i,/^cancel$/i,/^deny$/i,/^stop$/i,/^decline$/i,/^dismiss$/i];
// ── Stable button fingerprint (no getBoundingClientRect — scroll-safe) ── // ── Stable button fingerprint (no getBoundingClientRect — scroll-safe) ──
function btnId(b,type){ function btnId(b,type){
@@ -1150,8 +1153,8 @@ function generateApprovalObserverScript(_port) {
if(!d.action)return; if(!d.action)return;
log('🔔 TRIGGER-CLICK received: action='+d.action); log('🔔 TRIGGER-CLICK received: action='+d.action);
var approveRe=[/^Run$/i,/^Run /i,/^Accept/i,/^Allow/i,/^Approve/i,/^Continue$/i,/^Proceed$/i]; var approveRe=[/^Run$/i,/^Run /i,/^Accept/i,/^Allow/i,/^Approve/i,/^Continue$/i,/^Proceed$/i,/^Retry$/i];
var rejectRe=[/^Reject/i,/^Cancel$/i,/^Deny$/i,/^Stop$/i,/^Decline$/i]; var rejectRe=[/^Reject/i,/^Cancel$/i,/^Deny$/i,/^Stop$/i,/^Decline$/i,/^Dismiss$/i];
var patterns=(d.action==='approve')?approveRe:rejectRe; var patterns=(d.action==='approve')?approveRe:rejectRe;
var emoji=(d.action==='approve')?'✅':'❌'; var emoji=(d.action==='approve')?'✅':'❌';

File diff suppressed because one or more lines are too long

View File

@@ -862,15 +862,18 @@ function generateApprovalObserverScript(_port: number): string {
var PATS=[ var PATS=[
{re:/^Run/i, type:'terminal_command'}, {re:/^Run/i, type:'terminal_command'},
{re:/^Accept all$/i, type:'diff_review'}, {re:/^Accept all$/i, type:'diff_review'},
{re:/^Reject all$/i, type:'diff_review'},
{re:/^Accept$/i, type:'agent_step'}, {re:/^Accept$/i, type:'agent_step'},
{re:/^Allow/i, type:'permission'}, {re:/^Allow/i, type:'permission'},
{re:/^Approve/i, type:'agent_step'}, {re:/^Approve/i, type:'agent_step'},
{re:/^Continue$/i, type:'continue'}, {re:/^Continue$/i, type:'continue'},
{re:/^Proceed$/i, type:'continue'}, {re:/^Proceed$/i, type:'continue'},
{re:/^Retry$/i, type:'error_recovery'},
{re:/^Dismiss$/i, type:'error_recovery'},
]; ];
// Reject button patterns for finding the counterpart // Reject button patterns for finding the counterpart
var REJECT_RE=[/^reject$/i,/^reject all$/i,/^cancel$/i,/^deny$/i,/^stop$/i,/^decline$/i]; var REJECT_RE=[/^reject$/i,/^reject all$/i,/^cancel$/i,/^deny$/i,/^stop$/i,/^decline$/i,/^dismiss$/i];
// ── Stable button fingerprint (no getBoundingClientRect — scroll-safe) ── // ── Stable button fingerprint (no getBoundingClientRect — scroll-safe) ──
function btnId(b,type){ function btnId(b,type){
@@ -1127,8 +1130,8 @@ function generateApprovalObserverScript(_port: number): string {
if(!d.action)return; if(!d.action)return;
log('🔔 TRIGGER-CLICK received: action='+d.action); log('🔔 TRIGGER-CLICK received: action='+d.action);
var approveRe=[/^Run$/i,/^Run /i,/^Accept/i,/^Allow/i,/^Approve/i,/^Continue$/i,/^Proceed$/i]; var approveRe=[/^Run$/i,/^Run /i,/^Accept/i,/^Allow/i,/^Approve/i,/^Continue$/i,/^Proceed$/i,/^Retry$/i];
var rejectRe=[/^Reject/i,/^Cancel$/i,/^Deny$/i,/^Stop$/i,/^Decline$/i]; var rejectRe=[/^Reject/i,/^Cancel$/i,/^Deny$/i,/^Stop$/i,/^Decline$/i,/^Dismiss$/i];
var patterns=(d.action==='approve')?approveRe:rejectRe; var patterns=(d.action==='approve')?approveRe:rejectRe;
var emoji=(d.action==='approve')?'✅':'❌'; var emoji=(d.action==='approve')?'✅':'❌';