# proxbox-api v0.0.9.post1

v0.0.9.post1 — Docs, tests & CI sync

| Field |Value |
| --- | --- |
| Canonical URL | https://emersonfelipesp.com/proxbox-api/releases/v0.0.9.post1 |
| GitHub URL | https://github.com/emersonfelipesp/proxbox-api/releases/tag/v0.0.9.post1 |
| Tag | v0.0.9.post1 |
| State | stable |
| Author | emersonfelipesp |
| Created | 2026-05-01 01:59 UTC |
| Published | 2026-05-01 01:59 UTC |
| Target | main |
| Synced | 2026-08-24 12:43 UTC |
| Assets | 0 |

## Release notes

## Summary

Maintenance release that aligns the documentation, test suite, and GitHub Actions pipelines with the current state of the v0.0.9 codebase. No runtime/API behavior changes versus v0.0.9.

## What's Changed

### Documentation
- Root `CLAUDE.md` and `tests/CLAUDE.md` brought back in sync with the actual subpackage layout, env vars, and CLI entry points (`proxbox-proxmox-codegen`, `proxbox-schema`).
- New env var documentation: `PROXBOX_BULK_BATCH_SIZE`, `PROXBOX_BULK_BATCH_DELAY_MS`, `PROXBOX_GENERATED_DIR`.
- MkDocs reference updated:
  - `GET /cache/metrics` and `GET /cache/metrics/prometheus` added to the HTTP reference.
  - `overwrite_*` and `sync_vm_network` query params documented on VM stream endpoints.
  - Tag-preservation behavior added to the VM sync workflow.
  - Phantom benchmark block in the caching architecture page replaced with the real cache-metrics endpoints.
- pt-BR mirror pages added as stubs (with a "Tradução pendente" admonition + EN body) so `mkdocs build --strict` is green: `sync/overwrite-flags.md`, `development/refactoring-summary.md`, `development/sync-fix-summary.md`.

### Tests
- New focused suites:
  - `tests/test_auth_lockout.py` — 9 tests covering the full `proxbox_api/auth.py` lockout state machine (valid key, missing key, no keys configured, attempt counting, lockout-on-cap, success-clears-attempts, lockout expiry, persistence across sessions, async path).
  - `tests/test_schema_cli.py` — 8 tests for the argparse-based `proxbox-schema` CLI (list/status/generate, `--force`, pipeline failure exit code).
- Removed the dead `image_http` pytest marker (plus its CI filter and shell-script reference); the test it referenced no longer exists.
- `tests/CLAUDE.md` test inventory replaced with the current 47-file layout; e2e description corrected (httpx, not Playwright).

### GitHub Actions / CI
- Fixed non-existent action pins (`upload-artifact@v7`, `download-artifact@v8` → `@v4`) in `nightly-schema-refresh.yml` and `publish-testpypi.yml`.
- Aligned `ty check` scope across `ci.yml`, `nightly-schema-refresh.yml`, `docker-hub-publish.yml`, `publish-testpypi.yml`, and `.pre-commit-config.yaml` to include `proxbox_api/schemas/sync.py`.
- `nightly-schema-refresh.yml` now installs the `playwright` extra it actually needs.
- New `test-py311-floor` job in `ci.yml` exercises the declared `requires-python = ">=3.11"` floor (heavy E2E matrix stays on 3.12).
- Removed dead `PROXBOX_E2E_NETBOX_TOKEN_VERSION` env var.

### Style
- `proxbox_api/app/full_update.py` and `proxbox_api/session/netbox.py` reformatted with `ruff format` to clear pre-existing format drift that was blocking CI.

## Compatibility

- Python ≥ 3.11 (3.11 floor is now actually exercised in CI)
- NetBox v4.6.0-beta2 schema certification carried over from v0.0.9
- `proxmox-sdk == 0.0.3.post1`, `netbox-sdk == 0.0.7.post6` (unchanged)

**Full Changelog**: https://github.com/emersonfelipesp/proxbox-api/compare/v0.0.9...v0.0.9.post1

## Assets

No binary assets attached.

Source archives:

| Format |URL |
| --- | --- |
| zip | https://api.github.com/repos/emersonfelipesp/proxbox-api/zipball/v0.0.9.post1 |
| tar.gz | https://api.github.com/repos/emersonfelipesp/proxbox-api/tarball/v0.0.9.post1 |