Skip to content

v0.5.0

Choose a tag to compare

@zw008 zw008 released this 20 Jul 11:05

Release notes — inference-aiops 0.5.0

Previous release: 0.4.0.

In this tool

  • BREAKING: hot_swap_model is removed. It POSTed to /v1/hot_swap, an endpoint vLLM has never had. The docstring named vLLM Sleep Mode, so the path appears to have been invented for it — and Sleep Mode suspends the same model rather than swapping base models, so the advertised capability does not exist on the platform at all. Serving a different base model means restarting vLLM with a different --model.
  • Replaced by the real thing: model_sleep, model_wake and model_is_sleeping, on vLLM's actual /sleep, /wake_up and /is_sleeping. These require the server to have been started with VLLM_SERVER_DEV_MODE=1; a 404 now says exactly that instead of reading as a generic failure.

Every tool in the line: previews and undetermined outcomes

This release fixes three harness defects that were silently degrading the audit
trail and the undo store.

A write that loses its response is no longer recorded as a failure. The
harness assumed a sanitized error meant nothing had happened. That assumption is
false in exactly the case that matters most: when a write severs its own
connection, the request has already landed, the response cannot come back, and
the operation was recorded as status=error with no undo token created at
all
. Transport-level failures are now audited as status=unknown, the result
says plainly that the operation may have taken effect and should be verified
before retrying, and a write that stashed its before-state has its inverse
recorded anyway — flagged effectVerified: false, which undo_list and
undo_apply both surface. Existing undo.db files are migrated in place; their
rows read as verified, which is accurate, since the old code only ever recorded
on the confirmed path.

A dry-run no longer writes an undo token. Previews were recording inverses
built from a before-state they never had: the undo callback's permissive default
filled the gap with a guess, producing a real, applicable token for an operation
that never happened.

A dry-run no longer demands a named approver. Requiring an approval in order
to ask whether something needs approval inverts what a preview is for. The tier
is still computed and still audited, so the preview can tell you an approver
will be needed; it just no longer refuses to answer. The write itself is gated
exactly as before.

The invariant, now stated: a dry_run may read; it must never write. Guards
run on the preview path, which means a preview can and does report that an
operation would be refused.

Also line-wide

  • Truncated text now ends in an ellipsis instead of being cut silently. This
    line already treats a silent cut as a defect for lists; it was doing exactly
    that to strings.
  • Error messages are capped at 800 characters, not 300. These messages end
    with what to do instead, so the cap was removing the most useful sentence of
    every long refusal.

Verification status

That /v1/hot_swap does not exist is certain — no vLLM has ever served it. The
replacement endpoints are modelled from vLLM's Sleep Mode documentation and
are not live-verified: this repo cannot be exercised on the maintainer's
hardware (the Ray image is amd64-only and dies under emulation). sleep,
wake and is_sleeping are marked accordingly in docs/VERIFICATION.md.