docs: devlog 2026-04-15 + scratch cleanup
- devlog entry: PROMPT_ONLY_RE 근본원인 분석 및 수정 (v0.5.45) - scratch files: 이전 세션 디버깅 스크립트 전체 정리
This commit is contained in:
5
docs/devlog/2026-04-15.md
Normal file
5
docs/devlog/2026-04-15.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# 2026-04-15
|
||||
|
||||
| NNN | HH:MM | 작업 설명 | `커밋해시` | 완료? |
|
||||
|-------|-------|----------|-----------|----------|
|
||||
| 001 | 09:12 | PROMPT_ONLY_RE 근본원인 분석 및 수정 — Observer regex 이스케이핑(4중→2중 backslash) + http-bridge ellipsis prefix 지원, 16개 테스트 전체 통과, VSIX v0.5.45 빌드/배포 | `01539e9` | ✅ |
|
||||
27
docs/devlog/entries/20260415-001.md
Normal file
27
docs/devlog/entries/20260415-001.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# 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 commands` 4-backslash 패턴은 정상 동작 확인됨 — 그대로 유지
|
||||
Reference in New Issue
Block a user