Files
gravity_control/docs/devlog/entries/20260409-003.md

1.7 KiB

Agent UI Native 버튼 아이콘 글루잉 무시 현상 수정

  • 시간: 2026-04-09 23:00~23:15
  • Commit: TBD
  • Vikunja: 신규 생성 (UI 텍스트 글루잉 버튼 버그) → done

문제 상황

  • 0.5.22 패치(CodeLens 필터) 이후에도 Run, Accept 버튼 클릭 시 디스코드 브릿지로 아무런 펜딩 요청(POST /pending)이 전송되지 않는 현상 발생.
  • 원인 규명: Native UI 마이그레이션 적용 후, Agent 패널 버튼들의 아이콘(, 등)이 리액트/Tailwind 컴포넌트 렌더링을 거쳐 element.textContent 상단에 문자열로 직접 병합(Gluing)됨.
  • 옵저버 스크립트 내부 정규식(/^(?:Always\s*)?Run/i)이 문자열의 맨 첫(^) 시작을 강제하기 때문에, 아이콘으로 시작하는 버튼들의 명령어를 전부 오탐으로 간주함.

결정 사항

  • 버튼의 텍스트를 읽는 즉시, txt.replace(/^[^a-zA-Z0-9]+/, '')를 적용하여 첫 글자가 영어/숫자가 될 때까지, 선행하는 모든 특수문자, 아이콘, 폰트 공백 등을 강제 삭제하도록 스크립트 내부의 3가지 탐색 루프 (본문 스캔, Sibling 버튼 수집, Webview trigger-click 인젝션)에 일괄 업데이트.
  • 기존 .monaco-editor.chat-body 등 부모 컨테이너에 지나치게 의존하던 findButtonContainerchat, prose, markdown를 추가 화이트리스팅 하되 Tailwind UI 구조 특성상 시맨틱 래퍼를 찾지 못할 경우 3단계 위 부모를 반환하여 안전하게 컨텍스트를 확보하도록 고도화. -> 구조 변경 시에도 유연하게(Graceful) 기능 동작 지원 보장.

결과

  • v0.5.23 (코드상 0.5.22 유지) VSIX 빌드 및 테스트 준비.