Files
gravity_control/docs/devlog/entries/20260415-001.md
Variet Worker 87c99c7243 docs: devlog 2026-04-15 + scratch cleanup
- devlog entry: PROMPT_ONLY_RE 근본원인 분석 및 수정 (v0.5.45)
- scratch files: 이전 세션 디버깅 스크립트 전체 정리
2026-04-15 09:59:22 +09:00

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 출력 \sJS에서 invalid escape → 원본 보존 → regex \s = whitespace class
  • \\\\s (TS 소스 4-backslash) → template 출력 \\sJS에서 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 commands 4-backslash 패턴은 정상 동작 확인됨 — 그대로 유지