- Add `client-` prefix to sandbox-processes.md naming table for external-surface clients bridging an in-sandbox agent. - Tighten the `agent-` example off interactive CLIs; document that claude/codex/opencode are foreground tools, not tmux sessions. - entrypoint.sh: restore client-slack on container start when SLACK_APP_TOKEN + SLACK_BOT_TOKEN are present and `pi` is installed. - Propagate rename through wizard code, READMEs, and docs. - Fold in half-finished harness-pi rename from #302. Closes #344 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
apps/
pnpm workspace packages. Each subfolder is a deployable application with
its own package.json, declared in pnpm-workspace.yaml at the repo
root.
| Subfolder | Purpose |
|---|---|
docs/ |
Docusaurus documentation site (deployed to Cloudflare Pages) |
Conventions
- One package per subfolder; the directory name matches the package's short identifier (not its scoped npm name).
- All build artefacts (
build/,.docusaurus/,node_modules/) are gitignored — see root.gitignore. - New apps must be added to
pnpm-workspace.yaml.
Working in an app
From the repo root:
pnpm --filter @openharness/docs start # run a workspace package
pnpm --filter @openharness/docs build # build it
Inside the sandbox, long-running dev servers go in named tmux sessions
(app-<name>) — see .claude/rules/sandbox-processes.md.