Skip to content

v0.32.0 — the estate-scale envelope batch

Choose a tag to compare

@john-broadway john-broadway released this 11 Aug 06:15

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_journal are default-bounded: a bare call returns the last 100 lines (sibling parity with pve_node_journal). The bound is injected only when no lastentries, time range, or cursor is given — a ranged query never carries it.
  • PyPI Homepage/Documentation URLs now point at the project page instead of circularly at the repo.

Full migration notes per tool: CHANGELOG.md.