Comprehensive SEO optimization across 80 documentation pages:
Title optimization (all pages):
- Replaced generic titles like "Architecture", "Discord", "Slack"
with search-intent titles like "PocketPaw Architecture: Event-Driven
Message Bus", "Discord Bot Setup: Add PocketPaw to Your Server"
- All titles now 50-70 characters with qualifying keywords
Meta descriptions:
- Expanded 7 short descriptions (under 145 chars) to 150-160 chars
- Roadmap description expanded from 76 to 196 chars
- Troubleshooting, Codex CLI, OpenCode, WebMCP all expanded
H1 heading fixes:
- Ensured single H1 per page matching the frontmatter title
- All H1 headings updated to match new optimized titles
Internal cross-links:
- Added Related CardGroup sections to 60+ individual pages
- Each links to 2-3 related pages within and across sections
- Channels link to channel guides, backends link to Ollama guide, etc.
Em dash cleanup:
- Replaced em dashes with colons, periods, or double hyphens
across multiple files in tools/, channels/, integrations/
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(docker): mount workspace volume for agent-created files (#238)
Files created by the agent (via Claude SDK Write/Bash tools or native
filesystem tools) were landing in the container's ephemeral filesystem
and lost on restart. This adds a dedicated workspace directory that is
bind-mounted to the host, so agent-created files persist and are
directly accessible.
- Dockerfile: create /home/pocketpaw/workspace, set FILE_JAIL_PATH env
- docker-compose.yml: bind-mount ./workspace to the container workspace
- claude_sdk.py: use settings.file_jail_path as cwd instead of Path.home()
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(docker): install Node.js + Claude Code CLI in image
The claude_agent_sdk backend requires the `claude` CLI binary (a Node.js
package). Without Node.js and the CLI installed, the backend errors with
"Claude Code CLI not found".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(docker): also install Codex CLI for codex_cli backend
Node.js is already in the image for Claude Code CLI — adding
@openai/codex in the same npm install so the codex_cli backend
also works out of the box.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(health): correct claude-agent-sdk package name in health checks
The backend dependency check and playbook referenced the wrong package
name `claude-code-sdk` instead of `claude-agent-sdk`, causing a false
FAIL on the --doctor health check.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(docker): add host.docker.internal for host-side Ollama access
Containers can't reach localhost on the host. Adding extra_hosts with
host-gateway lets the container resolve host.docker.internal, so users
running Ollama on the host can set:
POCKETPAW_OLLAMA_HOST=http://host.docker.internal:11434
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* docs: update Docker deployment docs for workspace volume and Ollama
- Document workspace bind mount and POCKETPAW_FILE_JAIL_PATH
- Add host Ollama instructions (host.docker.internal)
- Note Node.js + Claude Code CLI + Codex CLI in image overview
- Add Copilot SDK limitation note
- Update README Docker section with workspace and Ollama hints
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(docker): harden Node.js install and document image size
Replace curl|bash NodeSource script with multi-stage copy from the
official node:22-slim image, eliminating unpinned remote script
execution. Add image size callout (~200 MB) to Docker docs with
instructions for stripping the Node.js layer.
Addresses review feedback from #254.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Complete the user-facing rename from pocketclaw to pocketpaw across
env vars, Docker paths (~/.pocketclaw → ~/.pocketpaw), and all
documentation references.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Docker bridge networking means requests arrive from 172.x.x.x, not
127.0.0.1, so localhost_auth_bypass never triggers. Explicitly set it
to false and document that users authenticate with the access token.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a production-ready Dockerfile (multi-stage, non-root user, Playwright
Chromium, tesseract OCR) and docker-compose.yml with optional Ollama and
Qdrant services behind Compose profiles. Includes .env.example template,
.dockerignore, and updated README + docs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Consolidate documentation from the separate pocketpaw-web repo into the
main pocketpaw repo. This keeps docs and code in sync so PRs can update
both atomically.
- Remove docs/ from .gitignore
- Remove docs' own .git (was pocketpaw/pocketpaw-web)
- Add .github/workflows/deploy-docs.yml (builds from docs/ subdirectory)
- Track all 120+ MDX pages, config, landing page, and public assets
The separate pocketpaw-web repo can now be archived.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>