# Installation and troubleshooting

## Supported Harness versions

| Plugin | Harness profile | Verified Harness version | Node.js |
| --- | --- | --- | --- |
| `dsh-plugin-dit 0.2.x` | Web | `0.1.0-rc.7` | `22.19+` or `24+` |
| `dsh-plugin-dit 0.2.x` | Headless | `0.1.0-rc.6` and `0.1.0-rc.7` | `22.19+` or `24+` |

The CI suite boots a real Web profile on rc.7 and executes both OpenAI Chat
Completions and Anthropic Messages transports through a Harness agent.

## First installation

Use `add`, not `update`, when the plugin has never been installed:

```sh
npx @deepseek-ai/dsh plugin --profile web add dsh-plugin-dit
```

Verify the installed version:

```sh
npx @deepseek-ai/dsh plugin --profile web list dsh-plugin-dit --depth 0
```

The output should contain `dsh-plugin-dit@0.2.x`. An `update` command that only
prints `Already up to date` is not proof that a previously absent package was
installed.

## Start and configure

```sh
npx @deepseek-ai/dsh --profile web
```

Open the printed local URL. On a fresh profile, accept the Harness preview
notice first; the DIT onboarding step follows it. Register, create a key, paste
it into the password field, and select **Save and start**.

Open **Settings → Models** to verify that both `DIT.ai` and
`DIT.ai Messages` show **API key configured**. Expand a provider's custom
settings to inspect its model catalog.

## No onboarding dialog

The dialog intentionally skips itself when either condition is true:

- `DIT_API_KEY` is already configured in Harness Credentials or the process
  environment.
- The user previously selected **Later** in this browser.

The provider and credential editor remain available under
**Settings → Models**. To show the one-time dialog again in the same browser,
remove only its dismissal flag in browser developer tools:

```js
localStorage.removeItem("dsh-plugin-dit:onboarding-dismissed:v1")
```

Then reload the Harness page.

## DIT registration page is unreachable

The plugin links directly to `https://dit.ai/register` and does not proxy the
website. DNS, ISP, corporate firewall, or CDN routing can therefore block the
registration page even while Harness itself works locally. Test the URL in the
same browser and network the user will use. The model API uses the separate
`https://api.dit.ai` host and must also be reachable for inference.

## Headless mode

Headless mode has no browser onboarding. Install the same bundle in that
profile and provide the credential through the environment:

```sh
npx @deepseek-ai/dsh plugin --profile headless add dsh-plugin-dit
export DIT_API_KEY="your-dit-api-key"
npx @deepseek-ai/dsh --profile headless "Explain this repository"
```

## Upgrade or remove

```sh
npx @deepseek-ai/dsh plugin --profile web update dsh-plugin-dit
npx @deepseek-ai/dsh plugin --profile web remove dsh-plugin-dit
```

If an upgrade behaves unexpectedly, confirm the resolved version with the
`list` command above, stop the running Harness process, and start it again.
