- devlog entry: PROMPT_ONLY_RE 근본원인 분석 및 수정 (v0.5.45) - scratch files: 이전 세션 디버깅 스크립트 전체 정리
1.5 KiB
1.5 KiB
PROMPT_ONLY_RE 근본원인 수정 (v0.5.45)
- 시간: 2026-04-15 09:12~09:57
- Commit:
01539e9 - Vikunja: #619 → 진행중
결정 사항
Template Literal 안의 Regex 리터럴 이스케이핑 규칙
혼동 포인트: observer-script.ts의 전체 코드는 TypeScript template literal 안에 있다. 이 안에서 regex 리터럴(/pattern/)을 쓸 때:
\\s(TS 소스 2-backslash) → template 출력\s→ JS에서 invalid escape → 원본 보존 → regex\s= whitespace class ✅\\\\s(TS 소스 4-backslash) → template 출력\\s→ JS에서 valid escape\s→ regex\s= whitespace class ✅
결론: 2중과 4중 둘 다 작동하지만, 4중이 의도적이고 명시적. 그러나 PROMPT_ONLY_RE는 기존 4중에서 실패하고 있었으므로 실제 원인은 다른 곳에 있었음 — (.*[\\/>»$#]\\\\s*) 패턴 자체가 > 다음에 \\s* 매칭이 아닌 \\\\s* 리터럴 매칭이 되고 있었던 것.
http-bridge PROMPT_ONLY_RE 단순화
- 기존:
/^[\s\\\/]*[\w_.-]+\s*[>»$#]\s*$/—…(U+2026 ellipsis) prefix 미지원 - 변경:
/^.*[>»$#]\s*$/— prompt marker로 끝나는 모든 텍스트 스킵 - 트레이드오프:
echo >같은 극단적 edge case에서 false positive → 1% 미만 확률, 허용
미완료
- AG 재시작 후 v0.5.45 실제 동작 확인 필요 (현재 v0.5.44 메모리 로드 상태)
Running N commands4-backslash 패턴은 정상 동작 확인됨 — 그대로 유지