Thank you for improving Steadlith. Contributions should be focused, testable, and explicit about compatibility effects.
- Search existing issues and pull requests.
- Use a GitHub issue for substantial behavior or API changes before investing in an implementation.
- Report vulnerabilities privately as described in SECURITY.md.
- Do not include private corpora, credentials, API responses, or real embedding data in issues or fixtures.
Steadlith supports Python 3.10 and newer.
git clone https://github.com/satwiksps/steadlith.git
cd steadlith
python -m venv .venv
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"Activate the virtual environment using the command appropriate for your shell. Provider-specific work may also need the openai or sentence-transformers extra.
The landing site is a separate Next.js application:
cd website
npm ci
npm run dev- Keep
steadlith.chunkandsteadlith.contentdeterministic and free of file, environment, and network access. - Treat changes to normalization, tokenizer identity, chunk parameters, hash inputs, cache keys, manifests, or instance IDs as compatibility changes.
- Preserve transactional visibility and stale-plan protection in index and migration code.
- Add regression tests for bug fixes and deterministic tests for identity-affecting behavior.
- Publish churn and retrieval-quality evidence together for chunking changes; do not infer retrieval quality from churn alone.
- Keep optional providers and backends behind their interfaces and out of the core installation path.
Run these from the repository root before opening a pull request:
python -m ruff check .
python -m ruff format --check .
python -m mypy src/steadlith
python -m pytest --cov=steadlith --cov-branch --cov-report=term-missing
python -m pip install -r docs/requirements.txt
python -m sphinx -W --keep-going -b dirhtml docs docs/_build/dirhtml
python -m buildFor website changes, also run:
cd website
npm ci
npm audit --audit-level=high
npm run lint
npm run typecheck
npm run buildDocument commands you ran in the pull request. If a check is intentionally omitted, say why.
- Keep commits narrowly scoped and write imperative commit subjects.
- Explain observable behavior, motivation, validation, and compatibility impact.
- Update user-facing documentation and
CHANGELOG.mdwhen behavior changes. - Do not mix mechanical formatting with unrelated functional changes.
By contributing, you agree that your contribution is licensed under the Apache License 2.0.