Devotd Github
새 소식보안

electric-capital/quest — write_doc 카드 하나로 묶음 편집

Quest가 한 문서의 여러 편집을 하나의 write_doc 카드로 묶어 한 번에 승인받고 일부만 적용할 수 있게 했다.

저장소 정보electric-capital/quest ↗

Quest가 한 문서의 여러 편집을 하나의 write_doc 카드로 묶어 한 번에 승인받고 일부만 적용할 수 있게 했다.

GitHub 설명: An open source, self-hosted, safety-focused AI workbench

스타
★ 73
포크
5
언어
Python
라이선스
Apache-2.0
최신 릴리스
v0.3.0
원문 보기 ↗GitHub에서 보기 ↗

electric-capital/quest는 오픈소스이자 자체 호스팅 방식으로 돌아가는 안전 중심 AI 워크벤치다. 2026년 10월 30일 커밋 6fc317df(PR #199)는 Quest Docs의 편집 승인 흐름을 손봤다. 한 문서의 떨어진 여러 곳을 고칠 때마다 편집 하나당 write_doc 카드 한 장을 따로 열어야 했던 구조를, 여러 편집을 한 묶음으로 묶어 카드 한 장으로 승인받는 방식으로 바꿨다.

모델이 쓰는 도구 edit_doc(doc_id, edits=[...])는 이제 한 번에 최대 DOC_MAX_EDITS_PER_CALL(10)개의 {old_string, new_string, replace_all?, note?}를 받는다. 각 old_string은 편집 직전 본문을 기준으로만 찾아서 편집끼리 순서와 무관하게 적용되고, 같은 구간을 겹쳐 고치는 것은 거부된다. 실패한 편집은 한 번에 전부 보고되어 몇 번째 항목이 왜 안 잡혔는지 드러난다. 묶음은 한 번의 쓰기로 반영되어 History 버전 하나, updated_at 갱신 한 번, 실시간 이벤트 한 쌍만 생긴다.

승인 카드는 write_doc에 multi_edit 동작을 쓰면 편집 묶음 전체를 담고, 카드 안에는 편집별 미리보기 diff와 적용 위치, 모델이 붙인 note가 번호순으로 표시된다. 새 컴포넌트 DocEditGroupPreview가 이 렌더링을 맡는다. 항목마다 Apply 체크박스가 있어 일부만 적용할 수 있고, 끈 항목에는 한 줄 사유를 적을 수 있으며 버튼은 Apply 4 of 5처럼 바뀐다. 제외된 항목은 skipped_items로 라우트에 전달돼 범위를 벗어난 번호나 중복, 전부 제외 같은 선택은 400 invalid_selection으로 거절된다. 실제 반영 결과에는 빠진 항목이 skipped로 남고, 모델은 그걸 보고 같은 변경을 다시 제안하지 않는다.

다만 미리보기는 승인 직전 본문을 기준으로 만들어지고, 승인할 때 본문을 다시 읽어 묶음을 적용한다. 그동안 문서가 바뀌면 오래된 편집 하나가 실패하면서 카드는 열린 채로 어느 항목이 어긋났는지 알려 온다. 커밋에는 묶음 편집 전용 백엔드 테스트 파일 571줄과 프론트 카드 테스트 223줄이 들어갔고, 단일 편집 경로인 edit과 append, add_image는 그대로여서 기존 카드는 계속 열린다. 라이선스와 별점 같은 저장소 지표는 주어진 자료에 없다.