DeepSeek Harness v0.1.0-rc.7 Upgrade Validation Guide
This guide gives developers and operators a time-based validation process for DeepSeek Harness v0.1.0-rc.7. It covers environment capture, isolated installation, Web UI and session regression checks, plugin and Bash testing, staged migration, and rollback evidence.
Table of Contents
- Who should use this guide
- The upgrade timeline
- Baseline capture
- Backup boundaries
- Isolated rc.7 installation
- Minimum task chain
- Session and tool regression
- Large history and continuation
- Plugin loading and settings cards
- Persistent Bash
- Images and browser input
- Independent feature acceptance
- FAQ
- Can you directly overwrite the current rc version?
- What belongs in the session backup?
- What should you do when a plugin fails after rc.7?
- How should a remote Mac test differ?
- Migration scorecard
- Staged cutover
- Local and remote operating models
- Ongoing review
A working session stops loading, a plugin settings card disappears, or Bash hangs after the upgrade.
Fastest fix: do not overwrite your only environment. Record the current state, validate DeepSeek Harness v0.1.0-rc.7 in isolation, then migrate low-risk work first and keep the previous setup ready for rollback.
This week’s action plan: capture your baseline today, create an isolated test environment next, run the minimum task chain, and postpone production migration until sessions, plugins, Bash, image attachments, and the Web UI all pass.
Last updated August 18, 2026. Release status and version details were checked against the official rc.7 release record, README, and project documentation.
DeepSeek Harness v0.1.0-rc.7 was released as a pre-release on August 17, 2026. The project still describes DeepSeek Harness as a developer preview and warns that compatibility-breaking changes can occur. Its release notes identify changes involving plugin settings cards, Job Panel subagent management, durable MCP and ACP image attachments, persistent Bash behavior, large-history pagination, max-token session recovery, Safari composer behavior, and Node PTY compatibility. Those notes describe the release; they do not prove that your local or remote Mac has passed validation. See the official rc.7 release notes and the official README.
Who should use this guide
This process is for individual developers maintaining a daily DeepSeek Harness environment, operators responsible for a remote Mac and persistent tasks, and platform owners who need clear evidence before approving a shared upgrade window.
If you only want to test the release once with disposable files, a full migration plan is unnecessary. If you have active sessions, custom plugins, shell access, image attachments, or long-running repositories, treat rc.7 as a controlled infrastructure change rather than a routine package refresh.
The upgrade timeline
Use a fixed sequence. Do not combine installation, configuration migration, session restoration, and feature testing into one large operation.
- Before the change: record the current environment and define the rollback target.
- During isolated installation: install rc.7 without allowing test traffic into production workspaces.
- At first launch: verify the loaded version, profile, model route, workspace, and Web UI connection.
- During regression: test only the sessions and tools that your own workflow depends on.
- Before migration: sign off the evidence, move low-risk work first, and preserve the old environment.
- During the review window: repeat the baseline task before moving long-running or sensitive work.
A release candidate should earn its place through repeatable task results, not through the number of fixes listed in its changelog.
Baseline capture
Start from the environment that currently works. Do not begin by copying files or running an upgrade command.
Create a plain-text change note containing:
- The exact installed version or Git revision.
- Whether the current installation uses the npm package or a source checkout.
- The Node.js version and package-manager version.
- The command used to launch the Web UI or headless process.
- The active profile and any patch overlays.
- The workspace directory used by the process.
- The model provider and endpoint configuration, without placing API keys in the note.
- Every plugin or bundle loaded by your normal workflow.
- Active sessions, long-running jobs, scheduled tasks, and repositories that must remain untouched.
- The last successful baseline task and its expected result.
For a source checkout, the rc.7 package metadata lists Node.js 22.19+ and Node.js 24+ as supported runtime lines, while the repository pins pnpm@11.7.0. The current development documentation also identifies DEEPSEEK_API_KEY and the optional DEEPSEEK_BASE_URL environment variables. Confirm your own runtime instead of assuming that a service manager or remote login uses the same Node installation as your interactive shell. Check the rc.7 package manifest and development guide.
node --version
pnpm --version
npm --version
git rev-parse --show-toplevel
git status --short
If you launch through npx, record the exact command and shell in which it runs. If you launch from source, record the checkout path and commit or tag. A successful test on one binary is not evidence for a different binary found earlier in PATH.
Also record the process owner and launch context on a remote Mac. A Web UI launched from an interactive terminal may inherit a different environment from one started by a service manager, terminal multiplexer, or remote automation job. Runtime drift is a common reason for apparently inconsistent upgrade results.
Backup boundaries
The correct backup is an inventory-backed snapshot, not an indiscriminate copy of your entire home directory.
First identify which profile and home-level configuration the current process actually loads. DeepSeek Harness uses ordered profile and bundle layers, including profile patches, home-level patches, and optional command-line overlays. The architecture documentation provides dsh --profile web --dump-config for inspecting the configuration tree that the machine will boot. Use that output to distinguish active configuration from unused examples or stale files. See the official architecture documentation.
Back up these categories after confirming that they exist in your environment:
- Active profile definitions and bundle references.
- User-owned patch files.
- Plugin package manifests, local plugin source, and lockfiles.
- Session persistence records and exported transcripts required for recovery.
- Workspace paths and task launch scripts.
- Approval policies and shell-related settings.
- Credential variable names and secret-provider references, without copying plaintext secrets.
- The previous executable, source revision, or package resolution that can reproduce the known-good state.
Do not import old caches, temporary build output, unrelated SSH material, or every hidden directory into the test profile. Those files can create false positives, expose credentials in a disposable environment, or make a broken upgrade appear healthy because it is silently using assets from the old installation.
Rollback rule: if you cannot state which executable, profile, workspace, session store, and plugin set will be restored, you do not yet have a usable rollback plan.
For sessions, distinguish between a readable transcript and a restorable working session. A transcript may preserve conversation history but not the plugin registrations, workspace path, model route, or approval policy required to continue the task. Save those dependencies beside the session snapshot.
Isolated rc.7 installation
Choose the isolation method that matches your operating model.
For a local Mac, use a separate checkout and a separate user-level configuration location when your launcher supports it. For a remote Mac, use a disposable machine, a separate administrative user, or a clean workspace that cannot resolve to production repositories. For a team, create a named test profile and document its owner before anyone begins testing.
The official README documents both the npm path and the source-checkout path. The npm path starts the Web UI with:
npx @deepseek-ai/dsh web
The source path uses a checkout, dependency installation, build, and local launch:
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web
For a release-candidate validation, pin the checkout to the rc.7 tag or use the package resolution approved by your change record. Do not rely on an unpinned main branch and call the result an rc.7 test. The release page identifies the pre-release, while the README documents the general run modes.
After launch, verify all of the following before opening a real repository:
- The reported version is rc.7, not the version already installed elsewhere.
- The process is listening on the intended interface and port.
- The selected profile is the isolated profile.
- The working directory is the test workspace.
- The model provider and endpoint are the intended test values.
- The Web UI is connected to the new process.
- No production session appears automatically.
The rc.7 README gives http://127.0.0.1:3080 as the default Web UI address. Treat that as a default, not as proof that your remote access path is correct. A remote Mac may expose the interface through SSH forwarding, a reverse proxy, or another controlled access layer. Your actual success condition is that the browser is connected to the intended process and not an older service.
Minimum task chain
The first launch should be deliberately boring. Do not begin with a large repository, a complex agent loop, or a task that enables every plugin.
Run these checks in order:
- Web UI connection: load the interface, open settings, and confirm that controls respond without console or server errors.
- Model selection: select the intended model route and send a short request with no tools.
- Workspace read: choose the isolated workspace and ask the agent to identify a known file or package.
- Controlled command: run a harmless command such as listing a test directory, then confirm the approval behavior.
- Result return: verify that the response, command output, and session event are visible after completion.
- Session reopen: close and reopen the test session, then confirm that the previous result remains available.
The Web UI documentation says that a fresh interface has no selected workspace until you add one, and that the composer remains unavailable until a workspace is selected. It also states that the process uses its invoking directory as the default filesystem location. These are useful signals because they can reveal that the test process started from the wrong directory. See the official Web UI guide.
Stop immediately if the model is unavailable, the workspace resolves to a production path, the command approval policy is missing, or the result returns without a durable session record. Fix one failure at a time. Adding plugins or restoring old sessions before the minimum chain passes makes the failure harder to attribute.
Session and tool regression
The release notes identify the areas that deserve focused checks. Turn each relevant item into an independent task.
Large history and continuation
Open a representative historical session, not only a new blank chat. Check whether the session list loads, whether older messages paginate, and whether the interface remains responsive when the history is large.
Then reproduce the workflow that previously approached a token limit. Confirm that the session remains resumable after truncation and that the next message does not unexpectedly begin with an empty context. The release notes describe fixes for large-history pagination and session continuation after max-token truncation, but those are release claims rather than evidence from your machine.
Plugin loading and settings cards
Load every plugin required by your daily workflow, one at a time. Record whether the plugin appears in the expected panel, whether its settings card renders, whether saved values survive a restart, and whether disabling and re-enabling the plugin removes its registrations cleanly.
A plugin can appear to load while one service or settings registration is missing. DeepSeek Harness treats the model adapter, tool registry, session log, and agent loop as plugin-managed components. That makes unload and reload a meaningful test rather than a cosmetic check. If a plugin fails, preserve the failure before trying a repair.
Persistent Bash
Use a disposable workspace and a harmless shell task. Confirm that the command starts, produces output, returns control to the interface, and does not leave a stale terminal blocking the next request.
Run the same command through the path your workflow actually uses: minimal mode, persistent terminal mode, or a plugin-provided shell route. The rc.7 release mentions a persistent Bash latency fix in minimal mode and a Node PTY update for broader compatibility. Test the common path and the automation path separately. One passing route does not certify the other.
Images and browser input
If your workflow uses MCP or ACP, send one small image attachment through the normal interface and confirm that the receiving task can inspect it. Test nested image forwarding only if your workflow uses PTC mode.
On Safari, enter text, move the cursor inside an existing prompt, edit it, and submit it. Check that the visible cursor position matches the insertion point and that the draft survives the expected interaction. The release notes identify durable image attachments, nested image forwarding in PTC mode, and Safari composer alignment as rc.7 changes. Validate only the paths you will operate.
Independent feature acceptance
Do not combine every new capability into one large task. Create a small acceptance task for each feature.
- Job Panel: start a supported subagent task, observe its state, wait for completion, and confirm that the result is associated with the correct job.
- MCP or ACP image attachment: attach one image, verify receipt, and confirm that the session can be reopened with the attachment represented correctly.
- Low reasoning effort: run the same short prompt with the new
lowsetting and your normal default, then verify that the selected setting is reflected in the request or interface state.
The release notes state that low was added while high remains the default. Do not infer a quality or performance improvement from the setting name. Your acceptance record should say whether the control is available, whether the request succeeds, and whether the behavior is acceptable for your own task.
Keep feature tests independent. If Job Panel, image input, a custom plugin, and persistent Bash all run inside one complex task, a failure tells you very little. Isolation is slower at the beginning but faster during diagnosis.
FAQ
Can you directly overwrite the current rc version?
You can technically replace files, but you should not do so when that installation carries active sessions, custom plugins, or long-running tasks. Developer preview status means a compatibility break can affect more than the launcher. Preserve the current executable and data, test rc.7 separately, and only then schedule a controlled switch.
What belongs in the session backup?
Export or copy only the sessions that your recovery procedure requires, together with the profile and persistence references that make them readable. A transcript alone may not restore a live session if the plugin set, workspace path, or model configuration differs. Record those dependencies beside the session snapshot.
What should you do when a plugin fails after rc.7?
Do not immediately change the plugin, profile, Node runtime, and workspace at the same time. Freeze the failure, capture the server log and configuration dump, then return to the last known-good environment. Test the plugin alone in rc.7 after the baseline works, and keep the production profile untouched until the cause is isolated.
How should a remote Mac test differ?
The remote Mac needs an explicit identity check. Confirm the host, user, checkout, workspace, runtime path, and Web UI tunnel before you test. Remote sessions often hide path or environment differences that do not appear on a local Mac, especially when a service manager launches a different Node binary from the one shown in your terminal.
Migration scorecard
Use this scorecard before moving real work. A row passes only when you have a reproducible result and a saved log, transcript, or screenshot.
| Decision area | Keep current version | Move to rc.7 | Evidence required |
|---|---|---|---|
| Startup identity | Version, profile, or workspace is uncertain | Version, profile, and workspace are confirmed | Launch note and configuration dump |
| Sessions | Active sessions are business-critical and untested | Representative history opens and resumes | Reopen test and session record |
| Plugins | A required plugin fails or settings are missing | Required plugins load and save settings | Plugin-by-plugin result |
| Bash and PTY | Shell path hangs or approval behavior differs | Controlled commands complete normally | Command output and server log |
| Web UI and Safari | Input, workspace, or model controls are unreliable | Normal browser workflow passes | Browser test record |
| Images and jobs | A required feature is untested | Required MCP, ACP, or Job Panel path passes | Independent acceptance task |
| Rollback | Previous binary or profile cannot be restored | Restoration is documented and tested | Rollback action and baseline result |
A release candidate should not be approved because most rows look positive. If the row tied to your highest-risk workflow fails, keep the current version and isolate the investigation.
Staged cutover
After the scorecard passes, move work in risk order.
Start with a low-risk repository that can tolerate a short interruption. Do not begin with the only copy of a sensitive project, a long-running background job, or a session whose history is difficult to reconstruct. Run the baseline task again after migration and compare the result with the pre-upgrade record.
Next, migrate ordinary daily work. Keep the previous environment available while you monitor session recovery, plugin state, shell behavior, attachment handling, and browser input. Only after those tasks remain stable should you move long-running or sensitive projects.
Your sign-off package should contain:
- The old and new version identifiers.
- Installation method and runtime versions.
- Active profile and workspace identity.
- Plugin and bundle list.
- Baseline and rc.7 task results.
- Session recovery result.
- Bash and Web UI logs.
- Image or Job Panel acceptance results, when applicable.
- Configuration differences.
- The exact rollback action and its verification result.
Local and remote operating models
The safest environment depends on whether you are validating a local installation or a remote Mac that can be rebuilt independently.
| Operating model | Strength | Hidden cost | Best decision |
|---|---|---|---|
| Single local Mac, in-place upgrade | Fastest change and no additional host management | One mistake can affect active sessions, plugins, and repositories together | Use only for disposable work |
| Local Mac with isolated checkout and profile | Preserves the current environment while testing rc.7 | You must track paths, runtimes, and configuration layers carefully | Good for individual developers |
| Dedicated remote Mac test environment | Separates production tasks from release validation and is easy to hand off | Requires access control, workspace cleanup, and remote UI verification | Best for teams and operators |
| Shared remote Mac with only a new folder | Cheap and quick to start | Hidden user configuration, ports, sessions, or background processes can overlap | Avoid for high-risk upgrades |
For remote testing, VPSMAC can help when you need a separately controlled Mac environment rather than a rushed in-place change on the machine that already hosts your work. The relevant comparison is not only processor access. It is whether you can create an isolated workspace, preserve the old environment, and give another operator a repeatable validation path. Review the VPSMAC Mac environment options and select a region only after checking your access and repository requirements.
Ongoing review
Because DeepSeek Harness remains a developer preview, rc.7 should not become a set-and-forget installation. The official README warns that compatibility-breaking changes may occur, and later candidate builds can alter plugin or configuration assumptions.
Set a recurring review process:
- Check the official release page before each planned upgrade window.
- Re-run the same baseline task after changing the runtime, profile, model route, or plugin set.
- Reconfirm plugins that touch sessions, shell execution, attachments, or the Web UI.
- Keep the previous environment available until the new build completes a normal work cycle.
- Replace manual recovery notes with a rebuildable checkout, profile, and workspace procedure.
- Retire old test assets only after confirming that no active session or task depends on them.
The long-term maintenance standard is simple: a new environment must be rebuildable, and an interrupted task must be recoverable.
If your current setup is a single Mac with tangled configuration, hidden background processes, and no spare workspace, the main weakness is not necessarily the rc.7 code. It is the lack of separation between testing and production. A remote Mac managed through VPSMAC can provide a cleaner test boundary while leaving your current environment untouched. That is a better fit for temporary validation, team handoff, and parallel release checks than forcing every candidate build onto one busy machine. Review the VPSMAC remote Mac options, create the isolated environment, and migrate only after the evidence supports the change.