Thanks for contributing to LiAgent.
The project is moving quickly, so favor changes that are small, verifiable, and easy to roll back.
python3 -m venv venv
./venv/bin/pip install -e .Optional extras:
./venv/bin/pip install -e '.[browser,mcp,discord]'Before opening a PR, run at least the fast regression suite aligned with CI:
PYTHONPATH=src ./venv/bin/python -m compileall -q src
PYTHONPATH=src ./venv/bin/python -m pytest -q \
tests/test_events.py \
tests/test_skill_router_simplified.py \
tests/test_health.py \
tests/test_brain_layers.py \
tests/test_web_event_envelope.py \
tests/test_tool_parsing.pyIf your change touches policy, orchestration, task execution, tool execution, or integration flows, run the full test suite:
PYTHONPATH=src ./venv/bin/python -m pytest -qCurrent test layout:
tests/: core unit and regression coveragetests/integration/: browser, Discord, voice, VLM, and end-to-end integration coveragetests/manual/: live/manual validation scripts that are not part of the default pytest run
If your change targets browser, Discord, voice, or other environment-heavy paths, run the integration slice that matches your area. Some integration tests require optional extras such as .[browser] or .[discord].
PYTHONPATH=src ./venv/bin/python -m pytest -q tests/integration- Keep each PR focused on a single theme whenever possible.
- Add tests for behavior changes.
- Update documentation for user-visible changes.
- Never commit real keys, personal paths, databases, virtual environments, or other local artifacts.
- Use the GitHub issue forms for bug reports, feature requests, and documentation or onboarding feedback.
- Bug reports should include the runtime mode, the interface used (
CLI,Web, orDiscord), and the smallest reliable reproduction. - If the problem is "I could not get the first run working," link the exact step from
docs/getting-started.mdthat failed. - If the report is about current product boundaries rather than a defect, check
docs/current-limitations.mdfirst and then open a feature request if the gap is intentional but important.
Prefer short Conventional Commit messages, for example:
feat(agent): add heartbeat confirmation callbackfix(security): enforce auth header on ws handshakedocs(readme): refresh runtime mode and routing section
- Safety policy beats "it seems to work."
- Preserve backward compatibility by default; document any migration path when you cannot.
- High-risk tool paths such as writes, execution, and network operations must remain auditable.