Devotd Github
새 소식AI 에이전트

benord-labs/frink b5b3178 — 다섯 제공자 공통 테스트 격자 추가

Frink가 다섯 개 에이전트 제공자를 같은 시나리오로 검증하는 공통 테스트 격자를 추가하고, 테스트 케이스 사이에 새던 권한 승인 누수를 정리했다.

저장소 정보benord-labs/frink ↗

Frink가 다섯 개 에이전트 제공자를 같은 시나리오로 검증하는 공통 테스트 격자를 추가하고, 테스트 케이스 사이에 새던 권한 승인 누수를 정리했다.

GitHub 설명: Fine-tuned automation for everyone: visual workflows where AI coding agents act on your tickets, errors and schedules, and ask before they change anything. Works with Claude Code, Codex, OpenCode, GitHub Copilot and Cursor. Local and open source, on macOS and Linux.

스타
★ 48
포크
5
언어
TypeScript
라이선스
MIT
최신 릴리스
0.4.0
원문 보기 ↗GitHub에서 보기 ↗

benord-labs/frink는 티켓과 오류, 스케줄을 근거로 AI 코딩 에이전트가 동작하고, 변경 전에는 승인 여부를 먼저 묻는 자동화를 로컬·오픈소스로 제공하는 프로젝트다. 2026년 10월 26일 커밋 b5b3178는 다섯 개 제공자(Claude Code, Codex, OpenCode, GitHub Copilot, Cursor)를 같은 시나리오로 검증하는 공통 테스트 격자를 추가하는 한편, 테스트 케이스 사이에 권한 승인이 새던 문제를 함께 정리했다.

격자의 각 행은 실제 채팅과 Flow 단계가 통과하는 handleRemoteExecute를 지나며, 행 이름은 conformance: <시나리오> x <런타임> 형식이라 결과가 정합성 매트릭스로 읽힌다. 시나리오는 두 개뿐이다. 텍스트 응답이 채팅에 닿고 턴이 끝까지 도는 단순 턴은 다섯 제공자 모두 통과하지만, 파일을 쓴 뒤 에디터 탭이 갱신되는 시나리오는 Claude만 통과한다. Claude의 턴 루프만 file-changed를 보내고, Codex의 편집 카드에는 file_path가 담기지 않기 때문이다. 현재 간극은 conformance/baseline.ts에 나열해 두고 vitest의 fails 옵션으로 표시했으며, 목록에 없던 실패와 목록에 있던 성공이 모두 테스트를 깨뜨리게 해 목록이 줄기만 하도록 막았다.

같은 커밋은 그보다 앞선 테스트 상태도 바로잡았다. executor.test.ts의 490개 케이스 중 237개는 앞선 케이스가 남긴 권한 카드가 대기 중이었고, 479개는 앞선 케이스가 설치한 카드 전송자를 그대로 물려받았다. 그중 470개는 자동 승인 구현이었다. 지운 뒤에도 구현이 남는 vi.clearAllMocks 탓이었다. 이제 모든 케이스가 대기 카드 없이 시작하고 두 수치는 모두 0이 됐다. drain 테스트는 검사가 가짜 CLI 안에서 돌아 예외가 실패한 턴으로 삼켜지던 문제도 함께 수정됐다.

다만 이번 변경은 제품 동작을 건드리지 않는다. 제공자 실제 바이너리로 기록한 허용 쓰기 실행이 아직 없어 픽스처는 모두 스크립트이며 RECORDED와 SCRIPTED로만 구분된다. 단위 스위트는 Linux CI에서만 돌아 Windows 검증이 아니다. 다음 PR에서 에디터 갱신 효과가 Claude의 루프에서 공용 코드로 옮겨지면 나머지 행이 통과로 바뀔 것으로 보인다. 지금 기준으로 파일 쓰기 뒤 에디터 탭 갱신은 Claude 경로에만 닿고, 격자는 그 차이를 감추지 않고 드러낸다.