v0.50.1
juanfont/headscalev0.50.1Aug 24, 2026by github-actions[bot]
Upgrading?
AI Summary
This patch release resolves blind spots in monitoring by counting rejected trunk gate 403s and fixing admin endpoints that were previously reported as 'unknown'. It includes updates to upstream dependencies and fixes for visibility issues.
Key Highlights
- `[[trunk]]` 403s now counted as `rejected_trunk`
- Admin endpoints no longer report as `endpoint="unknown"`
- siphon-rs pinned to v2026.08.24
- forge-media pinned to specific commit
New Features
- Better alerting for trunk gate rejections
- Improved admin endpoint metrics
Full Release Notes
**Two observability blind-spot fixes and routine upstream pin rolls.**
Both fixes came out of validating the 0.50.0 getting-started flow: the
`[[trunk]]` gate's 403s — the exact scanner traffic the gate exists to
shed — were invisible on `/metrics`, and four 0.49.0 admin endpoints
reported as `endpoint="unknown"`. No protocol change (still `1`), CDR
still v8, no new config keys. Drop-in upgrade; alerting can now key on
`siphon_ai_invites_total{result="rejected_trunk"}`.
### Changed
- **siphon-rs pinned to `v2026.08.24`** (from `v2026.08.21`) — picks up
[sip-identity 0.3.0](https://github.com/thevoiceguy/siphon-rs/pull/124):
PASSporT **signing** behind a new `sign` feature
([siphon-rs #123](https://github.com/thevoiceguy/siphon-rs/pull/123)),
the provider-side complement to the ES256 verification SiphonAI already
uses. SiphonAI does not enable the feature, so verification behaviour is
unchanged — this makes outbound STIR/SHAKEN signing (long demand-gated)
buildable against the current pin when it's picked up.
- **forge-media pinned to `c277860cd123`** (from `1fe94a502efa`) — one
commit: aligns forge-media's own siphon-rs submodule to `v2026.08.24`,
keeping both pins on the same upstream revision (the media path sees
siphon-rs through that submodule).
### Fixed
- **`[[trunk]]`-gate 403s now count in `siphon_ai_invites_total` as
`result="rejected_trunk"`**
([#564](https://github.com/thevoiceguy/siphon-ai/issues/564)). The allowlist gate runs in the SIP
dispatch layer before the acceptor, whose paths owned every increment of
that counter — so the INVITEs the gate sheds (scanner traffic hammering
the SIP port from non-allowlisted sources) were invisible on `/metrics`
and unalertable without log-pipeline tooling. Per-peer detail stays in
the audit stream and SIP ring; the new label is alertable directly.
Digest-auth 401s are deliberately still not in this counter (a challenged
INVITE retries with credentials and is counted then) — that gate's
brute-force signal remains `siphon_ai_sip_auth_total{result="failed"}`.
- **Four admin endpoints no longer report as `endpoint="unknown"` in
`siphon_ai_admin_requests_total`**
([#565](https://github.com/thevoiceguy/siphon-ai/issues/565)):
`GET /admin/v1/status`, `GET /admin/v1/errors`,
`GET /admin/v1/cdrs/recent`, and `POST /admin/v1/drain` — the 0.49.0
sightglass endpoints — got authorization arms but no metric-label
arms, so their traffic lost per-endpoint visibility and polluted the
`unknown` probing signal dashboards key on. The static route table is
now a single shared source (`STATIC_ROUTES`) answering both
`min_role` and `route_label`, so a route can no longer be known to
authorization yet invisible to metrics.
---
**Artifacts**
- Static musl binaries for `x86_64` and `aarch64` (`.tar.gz`).
- Debian packages (`.deb`) for `amd64` and `arm64` — `apt install ./siphon-ai_*_amd64.deb`.
- `SHA256SUMS` — verify with `sha256sum -c SHA256SUMS`.
- `*-sbom.cdx.json` — CycloneDX SBOM.
- `SHA256SUMS.cosign.bundle` — cosign keyless signature over the checksums.
- Container: `ghcr.io/thevoiceguy/siphon-ai:v0.50.1` (multi-arch, cosign-signed).
Verify the checksums signature:
```
cosign verify-blob --bundle SHA256SUMS.cosign.bundle \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--certificate-identity-regexp 'release.yml@' SHA256SUMS
```
Related Repositories
Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs
The world’s fastest framework for building websites.
:cherry_blossom: A command-line fuzzy finder