v0.32.0 — the estate-scale envelope batch
The estate-scale envelope batch (M4 Bucket 2) — breaking response shapes on nine list tools, plus a default bound on two journals.
The M4 sweep classified all 229 list-returning tools; this release carries the one bucket that changes wire shapes, batched deliberately as an honest pre-1.0 minor. Tool estate unchanged at 906.
Breaking — bare list → counted envelope
Callers that indexed the response as a list must now read rows under the named key. The envelope's counts are computed server-side from the complete listing, so a model never has to count rows itself.
Five estate-scale inventory tools now return {"total", "by_<axis>", <rows-key>} (sibling parity with pve_list_guests / pve_cluster_resources; no cap — capping unordered inventory would be dishonest):
| Tool | Rows under | Counted by |
|---|---|---|
pdm_resources_list |
resources |
by_type |
pdm_pve_resources |
resources |
by_type |
pdm_pve_qemu_list |
vms |
by_status |
pdm_pve_lxc_list |
containers |
by_status |
pve_ha_resources_list |
resources |
by_state |
Four PMG statistics tools now return {"total", "returned", <rows-key>} with a default cap of 100 — these rows scale with the estate's mail history:
| Tool | Rows under | Default slice |
|---|---|---|
pmg_statistics_sender |
senders |
top 100 by count |
pmg_statistics_receiver |
receivers |
top 100 by count |
pmg_statistics_contact |
contacts |
top 100 by count |
pmg_statistics_detail |
messages |
newest 100 by time |
Each takes limit (default 100): explicit null returns all rows untouched (API order); zero/negative is refused outright, never coerced. total always counts the complete set, so a capped slice can never masquerade as the population. The cap is client-side only — no invented parameter ever reaches the PMG API.
Changed
pbs_node_journal/pmg_node_journalare default-bounded: a bare call returns the last 100 lines (sibling parity withpve_node_journal). The bound is injected only when nolastentries, time range, or cursor is given — a ranged query never carries it.- PyPI
Homepage/DocumentationURLs now point at the project page instead of circularly at the repo.
Full migration notes per tool: CHANGELOG.md.