Skip to content

v0.0.21

Choose a tag to compare

@github-actions github-actions released this 05 May 00:35
· 49 commits to main since this release
v0.0.21

Tested against DBOS 2.19.0 — see tested_dbos_version in GET /version and dbos-argus --version. Other DBOS versions may still work; the in-app connection indicator surfaces any schema mismatches.

Added

  • SQLite backend support via the new ArgusDB adapter split. Point
    ARGUS_DATABASE_URL at sqlite+aiosqlite:///path/to/argus.db and
    the entire stack (REST + realtime) works against the DBOS app's
    SQLite store. CI matrix runs the test suite against both backends.
  • Realtime (WebSocket) layer at /ws replaces per-page polling. One
    multiplexed socket carries every page's subscriptions; server-side
    pollers gate heavier snapshots behind a cheap cursor query and shut
    down when the last subscriber disconnects. Channels: health,
    stats, stats.timeseries, workflows, workflow, schedules,
    notifications — each emits the same JSON shape as its REST
    counterpart, which remains authoritative for curl/debug. Cursor
    queries are implemented per-dialect on ArgusDB so the layer works
    unchanged on both Postgres and SQLite. Configurable via
    ARGUS_REALTIME_ENABLED, ARGUS_REALTIME_INTERVAL_MS,
    ARGUS_REALTIME_HEALTH_INTERVAL_MS, and
    ARGUS_REALTIME_MAX_SUBS_PER_CONN.
  • Live workflow detail page: subscribing to workflow with {id}
    re-snapshots every tick so steps appear as they complete.

Changed

  • Connection indicator now reflects WebSocket health (with a 1Hz
    poll surfacing disconnects as a sticky fetchError) instead of
    per-page setInterval(5000) /healthz fetches. While diagnostics
    report issues (e.g. dbos schema absent), the indicator re-polls
    /api/sql-diagnostics every 5s so it converges automatically once
    the DBOS app provisions its tables — no hard refresh needed.
  • Hub suppresses update broadcasts when a fresh snapshot is
    byte-identical to the cached one. Cursor-less channels (workflow,
    health) re-snapshot every tick; the dedupe keeps the wire quiet
    and prevents xyflow edge-dash animations on the workflow detail
    page from restarting on every poll.

Fixed

  • Workflow flow renders the container header (name + ID) for
    freshly-spawned workflows that have no steps yet — ELK was
    collapsing empty containers to ~0×0, leaving only the status
    badge visible until the first step landed.