Skip to content

Latest commit

 

History

History
83 lines (75 loc) · 3.95 KB

File metadata and controls

83 lines (75 loc) · 3.95 KB

Changelog

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.

[Unreleased]

Fixed

  • __version__ now agrees with pyproject.toml. The prior hardening commit bumped pyproject.toml to 0.2.0 but missed src/hawk/_version.py, which still reported 0.1.0. Both now report 0.2.0. Aligns the SDK with the rest of the hawk-eco ecosystem (hawk, tok, eyrie, yaad, trace, sight, inspect, hawk-sdk-go).

Added

  • User-Agent: hawk-sdk-python/<__version__> header on every outbound HTTP request from both HawkClient (sync) and AsyncHawkClient (async). Set via the _build_headers() helper, so it applies to both regular API calls and the chat_stream SSE 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 from main), conventional commits, code standards, testing, SDK-version-bump procedure (must update both pyproject.toml and src/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 — weekly pip + github-actions updates.
    • .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 with kind selector + solo-dev fit checks.
    • .github/ISSUE_TEMPLATE/config.yml — routes security to advisories, questions to discussions, blocks blank issues.
  • Expanded .gitignore with the broader Python toolchain footprint (.mypy_cache, .ruff_cache, .pytest_cache, virtualenv dirs, htmlcov, coverage.xml, .tox, .nox).

[0.1.0] — 2026-05-13

Added

  • Initial Python SDK for the hawk daemon API:
    • HawkClient (sync) and AsyncHawkClient (async), both built on httpx, with health, 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 / AsyncWorkflow orchestration helpers.

Production-hardening pass already on this branch (commit 2560031)

  • Added strict ruff lint config (E, F, W, I, N, UP, B, A, SIM, TCH, RUF rule sets) and mypy --strict config in pyproject.toml.
  • Added Makefile with standard targets (test, test-coverage, lint, format, typecheck, clean, help).
  • Bumped pyproject.toml version to 0.2.0 (this PR completes the bump by also updating _version.py).
  • Added pytest strict-markers and short-traceback config.