Repository navigation
Releases: LuminariSoftwares/stack-guardian
Releases · LuminariSoftwares/stack-guardian
Release list
v0.4.0
- New: OpenAI-compatible nodes are first-class (LM Studio, llama.cpp
llama-server, vLLM, LiteLLM). A node takes
"openai": ["http://HOST:PORT/v1"]beside or instead of"ollama", validated with the same shape rules and
errors. Each URL is probed withGET <base>/modelsunder the existing single deadline, and the snapshot records
per endpoint whether it answered, the latency and the model ids (node.openai[]). Before,{"openai": [...]}was
a usage error ("nothing to probe"), and the older"kind": "openai"form reported a dead server as
ollama.unreachable, an empty server asworst: OK, and could not authenticate. - New:
"api_key_env": "NAME"names the environment variable holding a node's bearer token. The value is sent
to that node'sopenaiURLs only, dropped if a redirect leaves the host, and never written to the snapshot, the
state folder or any output; a pasted key in place of a name is refused without being echoed. - New rules:
openai.unreachable(FAIL),openai.no_models(WARN) andopenai.slow(INFO,openai_slow_ms,
default 2000), graded by run history like the Ollama rules, withstack_explainentries.model.not_loaded
counts a model an OpenAI endpoint lists. Loaded-model expiry (model.expiring) and--ttftstay Ollama-only. - Unchanged: the
"kind": "openai"/"endpoints"form still works and means what it meant,ollama.unreachable
included. The MCP tools and their descriptions are unchanged (642 tokens, budget 650).
dsh-stack-guardianis unchanged. - Releases are published by trusted publishing (OIDC). Publishing a GitHub Release runs
.github/workflows/release.yml: it fails unless the tag isv+ thepyproject.tomlversion, runs the tests,
builds andtwine checks the sdist and wheel, and uploads them to PyPI with a short-lived credential and signed
attestations. No stored PyPI token. Owner setup and release steps:docs/RELEASING.md. - The release workflow asks PyPI first. Its
verifyjob (which also runs on a pull request that touches
pyproject.toml, as a dry run) now fails if the version inpyproject.tomlis already on PyPI, and otherwise
printsstack-guardian X.Y.Z is new on PyPI (latest there: ...). A PyPI that cannot be reached is a warning. - Support kit: bug and feature issue forms (blank issues off, a private security-reporting link),
SUPPORT.mdand
CODE_OF_CONDUCT.md, with a test that keeps them in place. Docs and repository metadata only.
stack-guardian 0.3.0
Review fixes from the 2026-10-21 external review. Breaking: the nodes file is now validated when it is read — see CHANGELOG.md for the one-line migration. PyPI: https://pypi.org/project/stack-guardian/0.3.0/
v0.1.0
What's Changed
- Fix review findings 1-10, privacy scrub and privacy CI by @LuminariSoftwares in #1
- Release prep 0.1.0: ship the rules in the wheel, wheel smoke in CI, npm metadata by @LuminariSoftwares in #2
New Contributors
- @LuminariSoftwares made their first contribution in #1
Full Changelog: v0.1.0.dev0...v0.1.0