Download Latest Version 0.9.9 source code.zip (1.3 MB)
Email in envelope

Get an email when there's a new version of OPAL

Home / 0.9.9
Name Modified Size InfoDownloads / Week
Parent folder
opal_client-0.9.9-py3-none-any.whl 2026-08-27 88.7 kB
opal_client-0.9.9.tar.gz 2026-08-27 75.7 kB
opal_common-0.9.9-py3-none-any.whl 2026-08-27 124.8 kB
opal_common-0.9.9.tar.gz 2026-08-27 100.0 kB
opal_server-0.9.9-py3-none-any.whl 2026-08-27 124.7 kB
opal_server-0.9.9.tar.gz 2026-08-27 114.3 kB
0.9.9 source code.tar.gz 2026-08-24 1.1 MB
0.9.9 source code.zip 2026-08-24 1.3 MB
README.md 2026-08-24 1.3 kB
Totals: 9 Items   3.0 MB 0

GA of the PR2 + PR3 hardening release train. Byte-identical to 0.9.9-rc.3 (same commit dfec1c22) — a clean, suffix-free tag for the production rollout; all soak/failover validation from the staging campaign applies to these exact bits.

What's in 0.9.9 (vs 0.9.8-rc.1 in prod today)

  • git resilience (PR3, [#924]): fetch timeout + zombie tracking + per-source backoff — a broken/unreachable customer repo can no longer wedge a worker or stall boot; server-side clone wait; boot 451s → ~182s with the tuned values.
  • memory/disk leak fixed (PR2, [#923]) incl. fleet-purge delivery to client-less workers (#945, P5).
  • broadcaster resilience (#945, P9): permit-broadcaster 0.2.7 — TCP keepalive on the Postgres backbone; a Multi-AZ failover of the broadcast DB is detected in ~60s and auto-recovers instead of leaving readers silently deaf.
  • Operability: namespaced boot metrics (P1), OPAL_REPO_WATCHER_ENABLED gating in scopes mode (P3), bounded sync-failure log volume (P6).

Rollout: via permit-deployments (prod values PR). Constraint: do not add keepalives* params to OPAL_BROADCAST_URI until the whole fleet is ≥ 0.9.9; the defaults need no URI change.

Full changelog: https://github.com/permitio/opal/compare/0.9.9-rc.2...0.9.9

Source: README.md, updated 2026-08-24