Contributing¶
Setup¶
Clone the repo and build the chat image:
Mount your local checkout into the container so edits are reflected immediately:
The entrypoint runs uv sync --group dev then drops you into a shell with Claude Code, OpenCode, and standard dev tooling. The package is installed in editable mode, so changes to src/ take effect without reinstalling.
Running Tests¶
Tests run with no PINATA_JWT. The test harness points LocalStorageClient at a temporary directory and never mutates client internals. Tests that need Pinata behavior mock the API or skip.
Run only unit or integration tests:
Code Style¶
Run ruff before committing:
The pre-commit hooks enforce ruff formatting and docstr-coverage (100% module-level docstrings required).