편집자 노트

文件变更面板

DeepSeek Harness Web

이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.

업스트림에서 중국어 README를 제공하지 않아 저장소 원본 내용을 표시합니다.

dsh-file-changes

A DeepSeek Harness Web plugin that shows a file-change panel at the end of every answer. When a turn creates or modifies files, the panel lists each one under the closing message with three actions:

  • Open — click the file name to open it with the OS default application;
  • View diff — a modal renders the turn's actual applied changes (whole-file content for new files) using the harness DiffBlock primitive;
  • Reveal — locate and select the file in the OS file manager (macOS open -R, Windows explorer /select,, desktop Linux opens the containing directory). The action appears only on loopback access with a native opener available.

The panel complements the built-in "Produced" row: it adds created/modified badges, per-file diffs, and per-file filesystem reveal.

Install

# from GitHub
dsh plugin --profile web add git+https://github.com/mixin-ai/dsh-file-changes

# from a local checkout
dsh plugin --profile web add link:/path/to/dsh-file-changes

Restart dsh web, then refresh the browser page.

How it works

  • Native mode — the client half registers a conversation definition (like @deepseek-ai/dsh-client-ui-deliverables) that accumulates successful mutation tool calls from their presentation views (card: 'diff' hunks, or generic kind: 'edit' locations) into turn-scoped data published under the fileChanges key, and renders it through the chat view's conversation.chat.turnTail slot chain.
  • Code Mode (run_code) — nested dispatches carry no presentation views on the wire, so the host half listens to tools/execute / tools/result for executions with a parent (Code Mode sub-calls), rebuilds change records from the write / edit / str_replace_editor arguments, and serves them over /api/file-changes/changes. The panel merges both sources, deduplicated by path.
  • RevealPOST /api/file-changes/reveal validates a JSON payload, loopback origin, and an absolute existing path before handing it to the platform opener.

Structure

FileRole
lib/index.jsHost half: nested-dispatch tap + the two HTTP routes
lib/client.jsBrowser bundle: turn accumulator + panel/diff/reveal UI
cordis.patch.ymlBundle patch mounting the dual-half row
smoke.test.mjs / client.test.mjsHost and client logic tests

Run the tests with:

node smoke.test.mjs && node client.test.mjs

Limitations

  • Files created indirectly by terminal commands (e.g. bash) are not detected — the same vocabulary limit as the official produced-files row.
  • Host-side Code Mode records live in memory (2-hour / 2000-per-session ring); a server restart clears them.
  • The reveal endpoint trusts loopback same-origin JSON requests only.

License

MIT

REPOSITORY SIGNALS

보안 및 설치 증거

이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.

출처 추적 가능

공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.

라이선스

저장소가 MIT 라이선스를 선언했습니다.

유지보수 활동

최근 180일 내 코드 업데이트가 있습니다.

설치 증거

재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.

설치 라이프사이클 스크립트

검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.