CONTRIBUTING.md
Rama main · réplica de lectura del repositorio original.
# Contributing to AgentsServer
This repository contains the deployable server. Client changes belong in
[AgentsDock](https://github.com/ZhengyiLuo/AgentsDock).
## Development and tests
Use Python 3.13, matching the release and pull-request workflows. Deployable
modules live at the repository root. Python tests are moving into `tests/`;
some test modules temporarily remain at the root. The shard runner covers both
locations. Use one shard to run the complete suite locally:
```bash
uv sync --locked --python 3.13
ulimit -s "$(ulimit -Hs)"
PYTHONDONTWRITEBYTECODE=1 uv run --python 3.13 python scripts/run_test_shard.py --index 0 --count 1
```
Run one test module with its package name:
```bash
PYTHONDONTWRITEBYTECODE=1 uv run --python 3.13 python -m unittest tests.test_provider_history_sync -v
```
Tests that import the server must use temporary state/configuration and a
synthetic home; do not point them at installed services or real chat history.
The named-instance [acceptance guide](docs/NAMED_INSTANCES_TESTING.md) describes
the opt-in isolated two-server smoke test and safe manual verification.
Pull requests to `main` run the lock check, test-file compilation, and full Python
suite in [Server CI](.github/workflows/server-ci.yml). This workflow does not
publish releases. Tests are not included in release archives.
## Documentation
Keep the README focused on installation and basic use. Detailed API contracts,
security invariants, compatibility notes, and verification records belong in
versioned `docs/` files. Existing notes describe their stated version or test
scope; they are not a guarantee that a feature is in every published release.
Useful references include [chat mailbox](docs/CHAT_MAILBOX.md),
[async routes](docs/ASYNC_CHAT_ROUTES.md), and
[OpenCode verification](docs/OPENCODE_READINESS_2026-09-11.md).
## Before opening a pull request
- Run relevant tests and explain any skipped or environment-dependent checks.
- Keep changes focused; do not deploy or restart an existing service as part of
a test run.
- Never commit chat state, uploads, tokens, `.env` files, private hostnames,
personal machine paths, or compiled caches.
- Review `git diff --check` and include user-facing behavior and compatibility
notes in the PR description.