v0.33.0
thevoiceguy/siphon-aiv0.33.0Jul 15, 2026by github-actions[bot]
Upgrading?
AI Summary
Admin API endpoints are added to allow operators to force-refresh or restart SIP registrations without requiring a full daemon restart.
Key Highlights
- New `POST /admin/v1/registrations/{name}/refresh` endpoint for immediate off-cycle registration.
- New `POST /admin/v1/registrations/{name}/restart` endpoint for full registration cycles.
- Support for `register_on_startup = false` to park bindings until explicitly refreshed.
New Features
- Registration management API.
- Parked bindings support.
Full Release Notes
### Added
- **Registration management (admin API)** — operators can force a
`[[register]]` binding back **without bouncing the daemon** (which
tears down every active call). Two write actions on the
authenticated `[admin]` listener, operator role, audit-logged, no
new config (`docs/design/DESIGN_REGISTRATION_ADMIN.md`; #289):
- **`POST /admin/v1/registrations/{name}/refresh`** — immediate
off-cycle REGISTER; during a failure backoff the kick also resets
the backoff to its initial value.
- **`POST /admin/v1/registrations/{name}/restart`** — full cycle:
REGISTER `Expires: 0` to clear the registrar-side binding, then a
fresh REGISTER (stale server state, contact rebinding). A failed
unregister warns and proceeds — only the final attempt drives
status/metrics/webhook.
Both return `202` with the accept-time row; the outcome is
asynchronous and observable via `GET /admin/registrations`,
`siphon_ai_register_attempts_total`, and the
`registration_state_changed` webhook. `404` unknown name, `409`
while draining. Per-binding only (no "refresh all" in v1).
- **Parked bindings**: `register_on_startup = false` now runs the
ordinary drive task **parked under operator control** — no REGISTER
until the first `refresh`/`restart` arrives (the "tell to register"
RPC the `disabled` status had reserved). Ship the config dark, kick
the binding when the maintenance window opens. No "re-disable"
action in v1.
- **Metric**: `siphon_ai_register_admin_triggers_total{name,action}` —
accepted operator triggers; the resulting REGISTER lands on
`register_attempts_total` as usual.
- **SIPp harness**: `registration_admin` phase — the suite's first
registrar-side scenario (SIPp answers REGISTER and asserts the
restart's `Expires: 0` on the wire). Suite is now 37 scenarios.
No WS-protocol, CDR, config-schema, or webhook changes.
---
**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.33.0` (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
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one