All notable changes to bloccs_web are documented here. The format is based on
Keep a Changelog, and this project
adheres to Semantic Versioning.
0.1.0 - 2026-06-06
First release. A self-hosted, observe-only Phoenix LiveView dashboard for running
bloccs networks, mounted into a host app with one router macro (the oban_web
model). Requires bloccs ~> 0.3.
Added
- Message payloads in the Messages feed. When
Bloccs.Inspectcapture is enabled (bloccs 0.3+), the feed shows a bounded, redacted snapshot of each message's payload in a new column, read from the:payloadkey on the[:bloccs, :emit]telemetry. A hint appears when capture is off. - Messages panel — a live view of packages moving through a network. A
server-rendered throughput chart over per-second buckets plus a scrolling feed
of recent edge traversals (
from.port → to.port), each with its outcome and the emitting node's latency, filterable by node and outcome. Built from the[:bloccs, :emit]+ node telemetry: emits are correlated with their node's:stopin a per-process buffer inBloccs.Web.Telemetry.Handler, folded byBloccs.Web.Telemetry.Flow, and broadcast onbloccs:flow:<net>. Flow metadata only — payload contents are a future opt-in bloccs capability. - P2–P5 — the four live panels. All read the v0.2.0 introspection API and the
[:bloccs, …]telemetry stream; observe-only.- Networks — every running network with version, node/edge counts, and
uptime (
Bloccs.Introspect.list_networks/0), each row linking into topology. - Topology — the network DAG drawn in the bloccs hexagon notation, computed
by a pure server-side layered layout (
Bloccs.Web.Topology.Layout) and rendered as one SVG (Bloccs.Web.Components.Graph). Node state lights up live. - Live metrics — per-node throughput, p50/p95 latency, completed, and error
rate on a 1 Hz rolling window. A telemetry handler folds the bloccs node
events into
Bloccs.Web.Telemetry.Metrics(pure core) in a singleCollector, which broadcasts coalesced frames over PubSub; the topology glyphs light from the same frames. - Coverage — structural coverage (
Bloccs.Web.Coverage) from a recorded run or a loaded.bloccs-trace: a summary bar, the reached/unreached overlay on the graph, and the unreached-obligation list. Trace export is gated by the:trace_exportfeature (the Pro seam) — available in the open build.
- Networks — every running network with version, node/edge counts, and
uptime (
- P0 — package skeleton and mount. The dashboard mounts into a host Phoenix
app and renders its empty shell:
Bloccs.Web.Router.bloccs_dashboard/2— the one-line router macro; a singlelive_sessionover the four panel routes (networks, topology, metrics, coverage), inheriting host auth from the surrounding pipeline.Bloccs.Web.Resolverbehaviour +Bloccs.Web.Accessdefault resolver — the Pro-gating seam (resolve_user/resolve_access/resolve_features+enabled?/2). The free baseline enables every feature.Bloccs.Web.DashboardLive— the single LiveView (onelive_actionper panel); P0 ships the chrome and empty panel bodies.Bloccs.Web.HexGlyph— the bloccs hexagon notation as inline SVG, keyed by the atomsBloccs.Introspect.glyph/1returns; live state is a CSS class.Bloccs.Web.Application+Bloccs.Web.Telemetry.Collector— auto-starting OTP app with a private PubSub and the (P4) metrics collector, currently a no-op snapshot source.- Precompiled-asset packaging (the oban_web model):
assets/is dev-only and excluded from the Hex package; the committedpriv/static/assetsbundles ship in the release.
- Licensed under Apache License 2.0, matching the
bloccslibrary (adds an explicit patent grant).