DeepSeek Harness 체인지로그
DeepSeek Harness는 빨리 내놓고 빨리 깨뜨립니다 — 개발자 프리뷰란 원래 그런 것입니다. 이 페이지는 dsh의 모든 공식 릴리스를 추적합니다. 무엇이 추가되었고, 무엇이 깨졌고, 플러그인을 만들거나 설치하는 사람에게 어떤 의미인지. 권위 있는 출처는 공식 릴리스 노트입니다. 저희가 더하는 것은 1분 만에 읽는 요약과, 공식 노트에 없는 플러그인 생태계 맥락입니다.
현재 버전
v0.1.2-alpha.42026-09-01
DeepSeek Harness의 최신 릴리스는 v0.1.2-alpha.4(2026-09-01 공개)입니다. 퀵스타트 명령 npx @deepseek-ai/dsh web은 실행할 때마다 최신 빌드를 받아오므로 따로 업데이트할 것이 없습니다. 소스에서 빌드한다면 pull 후 다시 빌드하세요 — 단, 먼저 rc.8 아래의 저장소 관련 주의를 읽어 보세요.
v0.1.2-alpha.42026-09-01
공식 릴리스 노트세션 백엔드가 제거된 다음 날, 이번에는 세션 API가 다시 쓰였습니다. 세션 계층을 건드리는 릴리스가 이것으로 세 번 연속입니다.
하이라이트
- 부모 Agent와 이어서 쓸 수 있는 자식 Agent가
send_message로 양방향 후속 메시지를 주고받습니다. 단방향report도구를 대체합니다. - 사용자 지정 모델 탐색이 Profile 요청 헤더를 재사용하고, 모델 카탈로그에 검색과 필터가 생겼습니다.
- Python SDK·Headless·ACP·사용자 지정 Profile에서
web_fetch가 기본 제공됩니다. Web PTC Mode는 범용workflow도구를 기본으로 모델에 넘기지 않습니다. - 아주 긴 대화에서 스트리밍 응답, 화면 배치, 내비게이션 미리 보기의 렌더링 부담이 줄었습니다.
호환성 파괴 변경
`Session.events`가 사라졌습니다. 필요할 때 읽는 seq, eventAt(), snapshotEvents()가 대신합니다. SessionSeq와 SessionLogOffset은 서로 다른 강한 타입이 되었고, 릴리스 노트는 호환성을 확인하라고 명시합니다. 단방향 report 도구도 send_message로 바뀌었습니다.
플러그인 작성자에게
세션 계층이 바뀐 것은 이번이 세 번 연속입니다: rc.8은 SQLite 저장 형식을 비호환으로 바꿨고, alpha.3은 선택 SQLite 세션 백엔드를 없앴으며, alpha.4는 세션 이벤트를 읽는 방식을 다시 썼습니다. 세션을 읽거나 세션에 보고하는 플러그인이라면 당분간 거의 매 릴리스마다 손봐야 합니다. 이 계열을 따라가지 말고, 검증한 버전에 고정하세요.
v0.1.2-alpha.32026-08-31
공식 릴리스 노트alpha.2 하루 뒤에 나온 버전으로, 대체로 긴 대화의 다듬기입니다. 여기에 업그레이드 전에 손봐야 할 제거가 하나 있습니다.
하이라이트
- 긴 대화에서 오른쪽 내비게이션으로 아직 불러오지 않은 것까지 포함해 모든 페이지의 턴을 미리 보고 이동할 수 있습니다.
- 긴 대화를 그릴 때 메모리 사용이 줄었고, 구문 강조도 더 잘 따라옵니다.
- 대화가 실행 중일 때 추가하거나 대기시킨 이미지가 제대로 표시되고 확실히 전달됩니다. 이어서 쓸 수 있는 서브에이전트의 후속 메시지에서도 이미지를 쓸 수 있습니다.
- 수정: 확장자 없는 이미지 첨부를
read_image가 읽고, 명령 메뉴가 열려 있을 때Tab으로 강조된 슬래시 명령을 완성하며, 백엔드 지연을 연결 끊김으로 오판하지 않습니다.
호환성 파괴 변경
선택 기능이던 SQLite 세션 저장 백엔드가 제거됐습니다. 기존 내용이 지워지지는 않지만 내보내려면 예전 버전이 필요합니다. 업그레이드하기 전에 먼저 내보내세요.
플러그인 작성자에게
이번 빌드는 로더와 플러그인 API를 건드리지 않았습니다. 다만 이 계열이 발밑에서 세션 저장을 바꾼 것은 이번이 두 번째입니다. rc.8은 저장 형식을 비호환으로 바꿨고, 이번에는 선택 백엔드 자체를 없앴습니다. harness를 거치지 않고 세션 데이터를 직접 읽는 플러그인이라면 이 경로를 불안정한 것으로 다루세요.
v0.1.2-alpha.22026-08-30
공식 릴리스 노트alpha.1 사흘 뒤에 나온 후속 버전으로, 앞 버전의 제거 하나를 되돌렸습니다.
하이라이트
- 플러그인 목록이 범위별로 나뉩니다. 대화 단위와 전역을 구분해 보여주고, Agent Preset을 바꿔 조합을 확인하거나 프리셋을 넘나들며 검색할 수 있습니다.
- 연결 오류가 화면에 표시되고 자동으로 재시도하며, 즉시 재연결하는 동작도 제공됩니다. 대화 헤더에서는 실행 중인 일정을 볼 수 있습니다.
- 답변마다 끝에 토큰 사용량과 소요 시간이 표시되고, 눌러서 상세 통계를 볼 수 있습니다.
web_search가 실패하면 실제로 호출한 엔드포인트와 오류 상세를 알려줍니다. - 수정: Node.js 24.0–24.11.1에서 실행이 실패하고 HMR이 동작하지 않던 문제, 마우스로
@메뉴에서 디렉터리를 파고들 때 이동 경로가 사라지던 문제.
플러그인 작성자에게
alpha.1에서 제거됐던 SessionEvent.ignorable이 복원됐습니다. 그 제거는 철회됐으니, 여기에 의존하던 코드를 서둘러 고칠 필요는 없습니다. alpha.1이 옮겨가게 한 @Remote 게이트웨이에는 호출 예외를 하나로 감싸는 RemoteError가 추가됐습니다. 이번 빌드에는 파괴적 변경이 없습니다.
v0.1.2-alpha.12026-08-27
공식 릴리스 노트출시 이후 가장 큰 릴리스이자, 처음으로 rc에서 alpha로 되돌아간 버전입니다. UI 개편 아래에서 플러그인과 맞닿은 두 접점이 움직였습니다. 레거시 ApiProxy가 제거되었고, 대화 뷰가 모듈로 분리되었습니다.
하이라이트
- 플러그인이 UI에 자리 잡을 곳이 두 군데 늘었습니다. 모델 설정 페이지의 공급자 로그인 설정, 그리고 직접 등록할 수 있는 서드파티 인터페이스 언어입니다.
- 서브에이전트가 실질적인 모델 제어권을 얻었습니다. 설정한 권한 범위 안에서 에이전트가 공급자·모델·추론 강도를 고르고, 실행하는 쪽은 최대 출력 길이까지 지정할 수 있습니다. Claude Code와 Codex 서브에이전트도 모델 설정을 지원합니다.
- ACP가 표준 세션 제어, 모델 설정, MCP, 권한, 취소 기능을 갖췄고 Python SDK 런타임에 Windows x64 배포판이 추가되었습니다.
- 공용 네트워크
WebFetch가 기본으로 켜졌습니다. SSRF 방어가 내장되어 요청마다 승인받을 필요가 없습니다. 대신 네트워크를 통해 웹 UI에 접속하려면 실행 URL의 일회용 토큰이 필요합니다. - 대화가 전반적으로 가벼워졌습니다. 시작과 초기화 전송량이 줄고 대화 기록의 디스크 사용량도 작아졌으며, 이미지는 보내는 즉시 표시되고 완료된 답변마다 정확한 토큰 사용량을 펼쳐 볼 수 있습니다.
호환성 파괴 변경
레거시 ApiProxy 인터페이스는 이전 후 제거되었습니다. 이제 모두 @Remote 게이트웨이를 거칩니다. 대화 뷰도 기능 단위 모듈로 크게 분리되어, 통째로 import 하던 코드는 해당 기능을 담당하는 계층을 import 하도록 고쳐야 합니다. 이 두 가지가 alpha에 담겼고, rc 라인에서 한 걸음 물러선 셈입니다.
플러그인 작성자에게
두 건의 제거 외에도, DeepSeek 공식 어댑터는 이제 활성화된 플러그인의 패키지 이름과 버전을 기본으로 요청에 함께 보냅니다(설정에서 끌 수 있습니다). 세션 로그 증분 업로드도 선택적으로 켤 수 있습니다. 안전 고지의 표현도 더 분명해졌습니다. dsh는 보안 감사를 받지 않았고, 샌드박스·승인·권한이 격리를 보장하지 않습니다. 저희가 플러그인 위험을 보는 방식은 원래 이 전제 위에 서 있습니다.
v0.1.1-rc.22026-08-21
공식 릴리스 노트rc.1 다섯 시간 뒤에 나온 조용한 후속: 그 릴리스가 연 이미지 경로에 제대로 된 배관이 들어갔습니다.
하이라이트
- DeepSeek 어댑터가 이미지 업로드에 Files API를 우선 사용하고, 이미 올린 파일은 재사용합니다. 바이트를 다시 보내지 않습니다.
- 이미지는 요청이 나가기 전에 대상 모델이 요구하는 크기와 형식으로 자동 변환됩니다.
플러그인 작성자에게
너무 큰 이미지와 누적된 이미지 때문에 요청이 실패하던 문제를 고친 rc.8과 함께 보면, 이번에는 같은 경로를 땜질이 아니라 제대로 만든 것입니다. 업로드는 중복이 제거되고 보내기 전에 크기가 맞춰집니다. 릴리스 노트에 로더나 플러그인 API 변경은 없습니다.
v0.1.1-rc.12026-08-21
공식 릴리스 노트작은 릴리스에 큰 수정 하나: 샌드박스 탈출 경로가 막혔고, 그동안 쌓아 온 멀티모달 기반에 드디어 볼 수 있는 모델이 붙었습니다. 버전은 0.1.0에서 0.1.1로 넘어갑니다.
하이라이트
- DeepSeek 어댑터에 실험적 멀티모달 시각 이해 모델
DeepSeek-V4-Flash-Vision-Exp가 추가되었습니다. rc.8이 하네스에 이미지를 나르는 법을 가르쳤다면, 이번에는 그것을 읽을 것이 생겼습니다. - 보안: 제한된 프로세스가
/proc/<pid>/root를 통해 Bubblewrap 샌드박스 제약을 벗어날 수 있던 문제가 수정되었습니다. 플러그인 코드를 가두는 데 샌드박스를 의지하고 있다면 이 빌드로 올라가야 합니다 — 플러그인 위험을 보는 관점. - 다듬기: 대화 속 Markdown 표의 반응형 처리, 캐시 적중률이 99.x%일 때의 정밀한 표시, 서브에이전트 대화 헤더 이동, 그리고
ask_user_question답변의 여러 줄 입력과Shift+Enter줄바꿈.
플러그인 작성자에게
바로 움직여야 할 것은 샌드박스 쪽입니다. 이 빌드 이전에는 Bubblewrap 제약 아래에서 돌던 플러그인 코드가 바깥으로 손을 뻗을 수 있었습니다. 릴리스 노트에 로더나 플러그인 API 변경은 없으므로 rc.8에서 로드되던 것은 계속 로드될 것입니다 — 다만 프리뷰 라인이니 가정하지 말고 확인하세요. 이 영향 범위에 있는 샌드박스·런타임 플러그인은 저희 디렉터리에서 추적합니다.
v0.1.0-rc.82026-08-19
공식 릴리스 노트멀티모달 릴리스입니다. 공개 6일 만에 이미지가 일급 입력이 되었고, 경쟁 코딩 에이전트 둘이 설치 가능한 부품이 되었습니다.
하이라이트
- DeepSeek 모델 어댑터에서 네이티브 이미지 요청을 켤 수 있습니다.
/goal과/plan이 이미지+텍스트 혼합 입력을 받고,@메뉴로 파일과 세션 전체를 참조할 수 있습니다. - Claude Code와 Codex를 필요할 때 서브에이전트 Profile Bundle로 설치할 수 있습니다. 비대화형 권한 모드를 갖추고, Codex는 이름 붙인 인스턴스 여러 개를 지원합니다 — 경쟁 구도에 갖는 의미.
- Windows PTY 터미널이 지속 PowerShell 세션을 지원하며, Minimal 프리셋에서는 기본으로 켜져 있습니다.
- 사용성 개선: 긴 세션 분기 속도 향상,
web_search동시 쿼리, 더 작아진 의존성 다운로드, 그리고dsh web이 브라우저를 자동으로 엽니다. - Python SDK 런타임이 내장 에이전트 프리셋 네 개를 모두 지원하고,
rg/glob 검색과 MCP stdio 도구에 필요한 의존성을 함께 담습니다.
호환성 파괴 변경
SQLite 백엔드가 재작업되었습니다. 읽기·쓰기·분기가 빨라지고 파일이 작아졌지만 저장 형식이 호환되지 않고, 노트에는 마이그레이션 경로도 없습니다. 이 버전을 넘어갈 때는 로컬 세션 데이터를 버려도 되는 것으로 취급하세요.
플러그인 작성자에게
rc.8은 브랜드 가이드라인도 발표했습니다. 'DeepSeek Harness'는 등록 상표이고, 프로젝트 이름에는 전체 상표 대신 DSH 약칭을 쓰도록 요청하며, 'built on DeepSeek Harness' 같은 설명적 표현은 여전히 괜찮습니다. 플러그인을 관리한다면 저장소 이름을 대조해 보세요.
v0.1.0-rc.72026-08-17
공식 릴리스 노트공개 4일째: 첫 안정화 릴리스입니다 — 플러그인 UI 이음새, 서브에이전트 작업 관리, 그리고 프리셋 이름 변경.
하이라이트
- 플러그인이 하네스 UI에 자체 설정 카드를 등록할 수 있습니다.
- Codex와 Claude Code의 서브에이전트 작업을 Job Panel에서 관리합니다.
- MCP와 ACP가 지속 이미지 첨부를 지원하고, PTC Mode는 중첩 이미지를 전달합니다.
- 영어 내장 프리셋 Code mode가 PTC mode로 이름이 바뀌었습니다. DeepSeek 모델에
low추론 강도 옵션이 추가되었습니다(기본값은 여전히high). - 수정: Minimal 프리셋의 지속 Bash 지연, 긴 히스토리 페이지네이션의 스택 오버플로, max-token 잘림 후 세션이 이어지지 않던 문제, Safari 입력창 커서 어긋남. 그리고 node-pty 1.2 베타 업그레이드로 터미널 호환성을 넓혔습니다.
v0.12026-08-13
공식 릴리스 노트DeepSeek Harness는 MIT 라이선스 개발자 프리뷰로 공개되어 첫 이틀 만에 약 95,000개의 GitHub 스타를 모았습니다. 저희가 마지막으로 데이터셋을 갱신했을 때 저장소는 207,390 스타였습니다. 핵심은 한 가지 아이디어를 끝까지 밀어붙인 것입니다. 모델, 도구, 스킬, 세션, 샌드박스, 파일시스템, 루프, UI 전부가 Cordis 런타임 위의 플러그인이며 cordis.yml 로더 설정으로 조합됩니다.
하이라이트
- 명령 하나로 시작 —
npx @deepseek-ai/dsh web—127.0.0.1:3080에서 로컬 웹 UI를 띄웁니다. - 네 가지 내장 프리셋: Standard, Code(rc.7에서 PTC로 개명), 벤치마크용 Minimal, 직접 조립하는 Creator.
- README는 대문자로 호환성을 깨는 변경이 온다고 경고합니다 — 그 경고는 rc.8에서 현실이 되었습니다.
자주 묻는 질문
- DeepSeek Harness의 최신 버전은 무엇인가요?
- v0.1.2-alpha.4, 2026-09-01 공개. v0.1 개발자 프리뷰 안의 프리릴리스이며 아직 안정 브랜치는 없습니다. 이 계열에서는 릴리스 후보와 alpha가 번갈아 나옵니다. 이 페이지의 최종 검토일보다 새로운 버전은 공식 GitHub 릴리스 페이지에서 확인하세요.
- PTC mode란 무엇인가요?
- 예전에 Code mode라고 불리던 내장 프리셋입니다. rc.7에서 영어 이름이 바뀌었습니다. 이 모드에서는 모델이 도구를 하나씩 호출하는 대신 코드를 생성하고 실행해 작업을 지휘합니다. 같은 프리셋에 새 이름일 뿐 — 예전 글에서 말하는 Code mode가 곧 PTC mode입니다.
- DeepSeek Harness는 프로덕션에 쓸 만큼 안정적인가요?
- 아니요, 스스로도 그렇게 주장하지 않습니다. README가 대문자로 호환성 파괴 변경을 경고하는 개발자 프리뷰이고, 첫 주에만 릴리스 후보 두 개와 호환되지 않는 저장 형식 변경이 나왔습니다. 실험하고 그 위에서 개발하는 건 좋지만, 업그레이드가 깨지면 돈이 나가는 곳에는 두지 마세요.
- dsh는 어떻게 업데이트하나요? 세션은 남아 있나요?
- npx로 실행하면 매번 최신 빌드를 받아옵니다. 소스라면 pull 후 다시 빌드하세요. 주의할 것은 세션입니다. rc.8이 SQLite 저장 형식을 호환되지 않게 바꿨고 릴리스 노트에 마이그레이션도 없으므로, 로컬 세션 데이터는 이 업그레이드를 넘지 못한다고 가정하세요.
- 업데이트하면 설치한 플러그인이 깨지나요?
- 그럴 수 있습니다. 로더 형식과 플러그인 API가 아직 다듬어지는 중이라, 한 릴리스 후보에서 로드되던 플러그인이 다음에서 실패할 수 있습니다. 의존하기 전에 저장소의 마지막 푸시 시점을 확인하세요 — 활발히 관리되는 플러그인은 업스트림 변화를 따라가고, 방치된 것은 조용히 로드되지 않게 됩니다. 저희 디렉터리의 모든 플러그인 페이지에 그 신선도가 표시됩니다.
DSHarness는 DeepSeek Harness 플러그인의 독립 디렉터리로, DeepSeek AI와 무관합니다. 요약은 공식 릴리스 노트를 압축한 것이며, 언제나 공식이 우선입니다. 최종 검토: 2026-09-02.