Skip to content

Tags: agentscore/python-sdk

Tags

v2.6.5

Toggle v2.6.5's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Bump to 2.6.5: type operator_handle on the assess response (#75)

## Summary

`/v1/assess` now returns `operator_handle` on the operator-token path: a
stable, pairwise handle for the account behind the presented credential.
Typed here so SDK consumers can read it without casting.

It is the value to key durable state on. An `opc_` lives 24h and rotates
silently off a 90-day refresh, so anything keyed on the token instance
is stranded every time one rotates, and revoking a leaked token would
forfeit what it was holding. The handle derives from the account
instead, and is pairwise per calling account so handles never correlate
across merchants.

Type-only change: no runtime behavior, no new request field. Against an
older API the field is simply absent.

## Type of change

- [ ] Bug fix (no breaking change)
- [x] New feature (no breaking change)
- [ ] Breaking change (existing callers must update)
- [ ] Docs, tests, or internal maintenance only

## Public API

Additive: one optional field on the assess response type. No migration
for existing callers.

## Test plan

Existing suites run clean against the change; no behavior to add tests
for, since nothing but the type surface moved. Node: lint, typecheck,
166 passed / 9 skipped. Python: ruff, ty, 183 passed / 8 skipped at 100%
coverage.

## Checklist

- [x] Tests cover the new behavior, and the suite passes locally
- [x] Lint, format, and type checks pass
- [x] Docs and README examples updated if the public surface changed
- [x] No secrets, credentials, or personal data in the diff or the tests

v2.6.4

Toggle v2.6.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Take ty 0.0.70, bump to 2.6.4 (#74)

## Summary

Routine dev-tooling sweep ahead of the commerce-side release chain: ty
0.0.69 to 0.0.70 (the only update the lock resolved). Version bumped to
2.6.4 for the patch release.

## Type of change

- [ ] Bug fix (no breaking change)
- [ ] New feature (no breaking change)
- [ ] Breaking change (existing callers must update)
- [x] Docs, tests, or internal maintenance only

## Public API

Unchanged. ty is a dev-group type checker; no runtime surface is
touched.

## Test plan

ruff check + format, ty (clean on the new version), vulture, and the
full suite (183 passing, 8 skipped) all green.

## Checklist

- [x] Tests cover the new behavior, and the suite passes locally
- [x] Lint, format, and type checks pass
- [x] Docs and README examples updated if the public surface changed

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

v2.6.3

Toggle v2.6.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Refresh the dev toolchain lock, release 2.6.3 (#72)

## Summary

Routine dependency pass over the whole tree. Only one package had a
newer version inside its declared range: `ty` 0.0.65 to 0.0.66, a
dev-group type checker. Everything else is already current.

Reported so the next pass does not re-derive it: `httpx` (the single
runtime dependency) is current within `>=0.25.0,<1.0.0`, and the
lockfile carries no advisories under either scanner.

## Type of change

- [ ] Bug fix (no breaking change)
- [ ] New feature (no breaking change)
- [ ] Breaking change (existing callers must update)
- [x] Docs, tests, or internal maintenance only

## Public API

None. `pyproject.toml` is untouched; the diff is `uv.lock` alone. `ty`
is a dev-group tool that no consumer resolves, so no release is needed
and no caller has to act.

## Test plan

- `uv sync --all-extras --all-groups --upgrade`, then:
- `uv run ruff check .` all checks passed
- `uv run ruff format --check .` 21 files already formatted
- `uv run ty check agentscore/` all checks passed
- `uv run pytest tests/`: 183 passed, 8 skipped, 100.00% coverage (gate
is 95%)
- osv-scanner v2.4.0 over `uv.lock`: no issues found

## Checklist

- [x] Tests cover the new behavior, and the suite passes locally
- [x] Lint, format, and type checks pass
- [x] Docs and README examples updated if the public surface changed
- [x] No secrets, credentials, or personal data in the diff or the tests

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

v2.6.2

Toggle v2.6.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Sweep deps and cut 2.6.2 (#71)

## Summary

Dependency sweep for this repo, plus a version bump so it can be
released.

- `coverage` 7.15.2 to 7.15.3, the only available bump.
- Version to 2.6.2.

Same caveat as the node SDK, and it decides whether this is worth
publishing: nothing here reaches a consumer. The only commit since
v2.6.1 is a one-line `ci.yml` change and coverage is a dev dependency,
so the published wheel is unchanged.

`uv.lock` was re-locked after the version bump, not just after the
dependency change. The lock embeds the project's own version, so a
`pyproject.toml` bump leaves it stale with nothing erroring and no gate
noticing: the two files simply disagree about what the package is. It
was sitting at 2.6.1 and `uv lock` moved it to 2.6.2.

## Type of change

- [ ] Bug fix (no breaking change)
- [ ] New feature (no breaking change)
- [ ] Breaking change (existing callers must update)
- [x] Docs, tests, or internal maintenance only

## Public API

**None.** No exported class, function signature, wire format, or
response shape changed. The published wheel is unchanged; the only
difference is a dev dependency.

No migration for callers. Both consumers in this workspace
(`core/store`, `python-commerce`) declare `agentscore-py>=2.6.1`, which
already accepts 2.6.2, so no manifest edit is required downstream.

## Test plan

No tests added, because no behavior changed. The existing suite was run
to confirm the bump breaks nothing:

- `uv run pytest`: 183 passed, 8 skipped, 100% coverage against a 95%
floor
- `ruff check` and `ruff format --check`: clean
- `uv run ty check`: clean
- `uv run vulture . vulture_whitelist.py --min-confidence 80 --exclude
.venv`: clean

Vulture is run through the project's exact CI invocation rather than a
bare `vulture`, which reports low-confidence findings the project
deliberately filters out and would read as a regression that is not
there.

Reproduce with `uv sync --all-extras --all-groups` followed by those
four commands.

## Checklist

- [x] Tests cover the new behavior, and the suite passes locally
- [x] Lint, format, and type checks pass
- [x] Docs and README examples updated if the public surface changed
(not applicable, public surface unchanged)
- [x] No secrets, credentials, or personal data in the diff or the tests

v2.6.1

Toggle v2.6.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
deps: ruff 0.16.1, ty 0.0.65 (#69)

## Summary

Routine dev-tooling bumps from the workspace-wide maintenance sweep:
`ruff` 0.16.0 to 0.16.1 and `ty` 0.0.63 to 0.0.65. Lockfile only, no
source changes.

## Type of change

- [ ] Bug fix (no breaking change)
- [ ] New feature (no breaking change)
- [ ] Breaking change (existing callers must update)
- [x] Docs, tests, or internal maintenance only

## Public API

None. Both are lint/typecheck tooling; no exported type, signature, or
wire format changes, so callers have no migration to make.

## Test plan

Ran the repo's full Python gate set with exit codes read directly: `ruff
check` clean, `ruff format --check` clean at 21 files, `ty check` clean,
`pytest` 183 passed with 8 skipped, and `vulture --min-confidence 80`
clean over the package. Every sync used `--all-extras --all-groups`
rather than a bare `uv sync`, which would resolve base deps only and
quietly strip the venv's extras and dependency groups.

## Checklist

- [x] Tests cover the new behavior, and the suite passes locally
- [x] Lint, format, and type checks pass
- [x] Docs and README examples updated if the public surface changed
- [x] No secrets, credentials, or personal data in the diff or the tests

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

v2.6.0

Toggle v2.6.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Sync uv.lock to 2.6.0 (#68)

## Summary

The version bump to 2.6.0 changed `pyproject.toml` but not the matching
self-version entry in `uv.lock`, so the lock still said 2.5.3. Any `uv
sync` regenerates it, which leaves an unrelated dirty file in the next
person's working tree.

## Type of change

- [ ] Bug fix (no breaking change)
- [ ] New feature (no breaking change)
- [ ] Breaking change (existing callers must update)
- [x] Docs, tests, or internal maintenance only

## Public API

None. Lockfile only.

## Test plan

`uv run pytest` (183 pass, 100% coverage), `uv run ruff check`, `uv run
ty check` all clean before tagging the release.

## Checklist

- [x] Tests cover the new behavior, and the suite passes locally
- [x] Lint, format, and type checks pass
- [x] Docs and README examples updated if the public surface changed
- [x] No secrets, credentials, or personal data in the diff or the tests

v2.5.3

Toggle v2.5.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Dep sweep: uv lock refresh (#63)

Part of today's org-wide dependency pass. Full-resolution upgrade via uv
sync --upgrade --all-extras --all-groups: certifi 2026.7.22, ty 0.0.62,
lockfile transitives. No manifest range changes; no pinned deps moved.
183 tests green at 100% coverage; ruff, ty, and vulture clean.

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

v2.5.2

Toggle v2.5.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(deps+release): in-range upgrades -> v2.5.2 (#60)

In-range dependency upgrades (uv.lock only; no pyproject constraint
changes):

- anyio 4.14.1 -> 4.14.2
- coverage 7.15.0 -> 7.15.2
- ruff 0.15.21 -> 0.15.22
- ty 0.0.58 -> 0.0.60 (floats on a range here; re-verified clean)

Verified locally: ruff check, ruff format --check, ty check (clean at
0.0.60), vulture, pytest (183 passed, 100% coverage).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

v2.5.1

Toggle v2.5.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Refresh deps and actions, fix the agent_memory quickstart fixture; v2…

….5.1 (#58)

- Lockfile refresh within existing ranges (`uv sync --upgrade
--all-extras --all-groups`): lefthook 2.1.10, ruff 0.15.21, ty 0.0.58.
No pyproject range changes; httpx stays within its `<1.0.0` bound.
- `astral-sh/setup-uv` bumped v8.3.0 → v8.3.2 in ci/publish/security
workflows (`pypa/gh-action-pypi-publish` already at latest; the rest are
floating major tags).
- The `agent_memory.quickstart` test fixture pointed at a docs URL that
404s; it now mirrors the URL the API actually emits (the AgentScore
Passport guide).
- Version bumped to 2.5.1 for a routine patch release.

Full gate: ruff check + format clean, ty clean, 183 tests passed,
vulture (with whitelist) clean.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

v2.5.0

Toggle v2.5.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore: canonicalize on www.agentscore.com; refresh deps and CI

Canonicalize issuer and UCP namespace on www.agentscore.com / com.agentscore, refresh deps within constraints, bump CI actions (setup-uv v8.3.0, cache v6, checkout v7). Version 2.5.0.