Skip to content

Releases: liangwythu/deepseek-harness-vscode

v0.0.2 — Conversation UX & Architecture Baseline

Choose a tag to compare

@liangwythu liangwythu released this 15 Aug 12:09

Conversation UX & Architecture Baseline.

The "main-branch last direct-push release": hardens structure, rendering correctness, and interaction UX so that v0.0.3+ can be developed entirely via feature PRs onto stable boundaries.

Architecture (structural boundary hardening)

  • AppController owns all orchestration. extension.ts stays as pure wiring.
  • ConversationModel replaces flat SessionModel. Events project into conversation-semantic ConversationItem[].
  • Workspace creation split into findHarnessWorkspace() and ensureHarnessWorkspace().
  • View split: provider.ts joined by styles.ts, html.ts, client.ts, toolPresentation.ts.

UX fixes

  • Lazy workspace + session on first Send — no confirmation modals.
  • Tool cards merged: tool/call + tool/result → single ToolItem with collapsed header.
  • System messages are their own item kind (SystemItem, not UserItem.system).
  • Assistant Markdown rendering via markdown-it inside the webview.
  • Streaming text always re-renders via monotonic renderVersion.

Test coverage

  • Integration test upgraded to exercise ConversationModel.
  • renderVersion strictly increases (1 → 19).
  • No tool-call/tool-result kinds leak into ConversationItem.
  • systemMessageCount tracked separately.

Discipline

  • NOT in v0.0.2: Diff review, approval/respond, inline completion, context injection, filesystem provider, terminal integration, LSP/ACP/SDK abstractions. All start as feature branches/PRs from v0.0.3.

v0.0.1

Choose a tag to compare

@liangwythu liangwythu released this 15 Aug 05:44

The first public release. This version proves one thing: VS Code and the browser share the same DeepSeek Harness session.

Browser ─────┐
             │
             ▼
       DeepSeek Harness
             ▲
             │
VS Code ─────┘

Same Workspace. Same Session. Same Agent Runtime.

Added

  • Connect to a local dsh web instance via HTTP /api/* + WebSocket /api/events.mux. Loopback-only trust fence (127.0.0.1 / localhost / ::1); other hosts refused.
  • Workspace mapping — match the active VS Code folder to an existing Harness workspace; offer to create one if absent.
  • Session list filtered by the resolved workspace, with + New Session.
  • Session history loaded from the Harness (single source of truth — no local session DB).
  • Plain-text prompt sent to the active session.
  • Live streaming of assistant/chunk deltas + tool activity, coalesced every ~30 ms by EventBuffer (no per-token re-render).
  • Stop / cancel the active turn.
  • Reconnect — on WS close→open, stream reopens + history refetched.
  • Open Web UI and Show Logs commands.
  • Sidebar webview (vanilla JS, no React).
  • Right-side docking (⇲ button) moves view to secondary side bar (like Chat panel).
  • System-message hiding — plugin-injected user/message frames (e.g. @deepseek-ai/dsh-system-prompt) hidden by default; SYS toggle reveals them.
  • Brand icon — 128×128 PNG (Marketplace + webview header); SVG activity-bar icon uses currentColor to adapt to theme.
  • Protocol fixtures (test/fixtures/) — sanitized wire-format snapshots for protocol drift detection.
  • Protocol spike + Integration test — standalone Node validation against a running dsh web (11/11 checks pass).
  • Bilingual docs (English / 简体中文): README, ARCHITECTURE, CHANGELOG, RELEASE.

Security

  • Method allowlist: only host.describe, workspace.{list,create}, session.{list,history,create,prompt,cancel}.
  • Never calls /api/respond, settings.*, credentials.*, commands.*, or any approval/permission mutation.
  • approval/requested and question/requested frames surface an informational banner only — never auto-respond.

Verified against

  • DeepSeek Harness host v0.0.1 (@deepseek-ai/dsh-root), default dsh web port 3080.
  • Wire contract source: packages/host/apiproxy/src/api/ (authoritative).
  • Integration test: 11/11 checks.

Install

code --install-extension deepseek-harness-vscode-0.0.1.vsix