# ChatBrowser 0.1.1 PR / Release Notes
## Summary
This changes ChatBrowser from a package-identity scaffold into the first usable browser-runtime metadata MVP.
## What changed
- Add `chatbrowser doctor --output text|json` for read-only package/dependency checks.
- Add `chatbrowser backend list/show/resolve` for local browser executable discovery.
- Add `chatbrowser profile list/create/show/path/status` for non-sensitive browser profile metadata registry.
- Add `chatbrowser connect` / `disconnect` and `chatbrowser session list/show/endpoint` for local loopback CDP endpoint registration and lookup.
- Add importable Python modules: `backends.py`, `doctor.py`, `paths.py`, `registry.py`.
- Replace scaffold ChatEnv config with browser-domain non-sensitive fields.
- Add `chatup>=0.2.1,<0.3.0` dependency while keeping setup/install responsibilities in ChatUp.
- Update README, MkDocs CLI tree, capability map, interface tree, and changelog.
- Bump version to `0.1.1` because `0.1.0` already exists on PyPI.
## Boundaries
- ChatBrowser does not install browsers or system dependencies.
- ChatBrowser does not determine platform accounts or login identity.
- ChatBrowser does not read or print sensitive browser profile internals.
- ChatUp owns setup/install/configure.
- Wechatsync/ChatPost own platform auth and draft/publish semantics.
## Verification
- `python -m pytest -q` -> `11 passed`
- `mkdocs build --strict` -> passed
- `python -m build --outdir $PROJECT/playground/chatbrowser-dist-0.1.1-final3` -> built wheel/sdist
- `python -m twine check $DIST/*` -> passed
- Clean venv wheel install -> `chatbrowser --version`, `doctor`, `profile create`, `connect`, `session endpoint` passed
- Bad CDP URL smoke -> remote HTTPS CDP URL rejected with localhost error
- Missing profile smoke -> `connect --profile missing-profile` rejected with not-registered error
## Release
Publish target: `v0.1.1` tag through the existing `Publish Package` GitHub Actions workflow.