All notable changes to hawk-sdk (Python) are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
__version__now agrees withpyproject.toml. The prior hardening commit bumpedpyproject.tomlto0.2.0but missedsrc/hawk/_version.py, which still reported0.1.0. Both now report0.2.0. Aligns the SDK with the rest of the hawk-eco ecosystem (hawk,tok,eyrie,yaad,trace,sight,inspect,hawk-sdk-go).
User-Agent: hawk-sdk-python/<__version__>header on every outbound HTTP request from bothHawkClient(sync) andAsyncHawkClient(async). Set via the_build_headers()helper, so it applies to both regular API calls and thechat_streamSSE endpoint (httpx merges client-default headers with per-request overrides). Lets daemon operators identify SDK clients in logs and reject misbehaving versions cleanly.- OSS standard files (this is the first PR to add them):
CHANGELOG.md— Keep-a-Changelog format with[Unreleased]and a backfilled[0.1.0]entry for the initial SDK + prior hardening commit.CONTRIBUTING.md— quick start, branch flow (this repo branches frommain), conventional commits, code standards, testing, SDK-version-bump procedure (must update bothpyproject.tomlandsrc/hawk/_version.py).SECURITY.md— vulnerability reporting via GitHub Security Advisories.CODE_OF_CONDUCT.md— Contributor Covenant 2.1..gitattributes— LF normalization, binary detection..editorconfig— UTF-8, LF, 4-space indent for Python, 2-space for YAML/JSON/TOML..github/workflows/ci.yml— pytest matrix on Python 3.9 / 3.10 / 3.11 / 3.12 / 3.13, ruff (lint + format check), mypy strict, build sdist + wheel..github/dependabot.yml— weeklypip+github-actionsupdates..github/PULL_REQUEST_TEMPLATE.md— Summary / Changes / API impact / Daemon compatibility / Async compatibility / Testing / Checklist..github/ISSUE_TEMPLATE/bug_report.yml— surface dropdown (HawkClient / AsyncHawkClient / streaming / retry / tools / workflow / typed errors / build)..github/ISSUE_TEMPLATE/feature_request.yml— feature request withkindselector + solo-dev fit checks..github/ISSUE_TEMPLATE/config.yml— routes security to advisories, questions to discussions, blocks blank issues.
- Expanded
.gitignorewith the broader Python toolchain footprint (.mypy_cache,.ruff_cache,.pytest_cache, virtualenv dirs,htmlcov,coverage.xml,.tox,.nox).
- Initial Python SDK for the hawk daemon API:
HawkClient(sync) andAsyncHawkClient(async), both built onhttpx, withhealth,chat,chat_stream,create_session,get_session,list_sessions,list_messages,delete_session,stats.- Pydantic v2 models for every request and response shape.
- Streaming via
StreamReader/AsyncStreamReader(SSE). - Typed error hierarchy (
HawkAPIError,AuthenticationError,BadRequestError,NotFoundError,RateLimitError,InternalServerError,ServiceUnavailableError). - Retry with exponential backoff via
RetryConfig. Tool,Agent/AsyncAgent,Workflow/AsyncWorkfloworchestration helpers.
- Added strict
rufflint config (E, F, W, I, N, UP, B, A, SIM, TCH, RUF rule sets) andmypy --strictconfig inpyproject.toml. - Added
Makefilewith standard targets (test,test-coverage,lint,format,typecheck,clean,help). - Bumped
pyproject.tomlversion to0.2.0(this PR completes the bump by also updating_version.py). - Added
pyteststrict-markers and short-traceback config.