Repository navigation
0.3.3 - populated demo mode and isolation fixes
⚠️ Beta software, no warranty. PoolTerminal is early software and has mainly been exercised on one operator's setup. It is read-only by design and holds no key material, but it does hold SSH access to your block producer, and that limit is not a guarantee. It has had an AI-assisted code review, not an independent security audit. Provided as-is under Apache 2.0 with no warranty of any kind - you use it at your own risk. See SECURITY.md.
Demo mode now shows the whole application
Until now, demo mode only had data for the Dashboard. Delegators, History,
Notifications, Node health, Logs, Data, Map and both Relay tabs rendered
empty, which made it a poor way to judge whether PoolTerminal is worth
pointing at your block producer.
Every view is now populated from a single synthetic pool: 211 epochs of
history, 107 delegators including two joining next epoch, realistic luck,
lost blocks and a couple of blockless epochs early on. The figures are
consistent between tabs and stable within an epoch, so the delegator
stakes sum to the active stake on the Dashboard and the History rows agree
with the block counters.
Demo addresses and transaction hashes are correctly formed but resolve to
nothing on chain, so no delegator you see there is a real person.
Fixed: real data could appear in demo mode
Three view-level caches held live data and repainted it after a switch to
demo. The most serious was the delegator list, which for two minutes after
a switch could show every real delegator address, stake and loyalty row
along with the pool's live and active stake. The dashboard's cache could
show real upcoming leader slot times, and the metadata feed could keep
showing real on-chain messages. All three are now cleared when the mode
changes.
The Logs workspace had a related problem of a different kind: its sample
output had been captured from a real node during development, so demo mode
displayed genuine leader-slot counts, block heights, process IDs and KES
periods. Those samples are now generated. The About view no longer names
the connected host in demo, and the Alerts view no longer renders a bot
token or chat ID.
Demo mode also made two external network calls: it geolocated the user's
own IP address, and every map fetched its basemap from a CDN. Geolocation
is now synthetic, and the basemap is bundled with the application, which
also means the maps work offline in live mode.
This release adds a leak-audit harness that fills every live surface,
switches to demo, walks all twelve tabs and scans each for real values.
It runs against a packaged build, so a release can be checked as the
artefact you would actually download, and the release checklist is gated
on it passing.
Fixed: reconnecting, and things that vanished
Reconnecting to your node no longer means the full setup wizard.
Disconnecting now returns to the connect screen prefilled from your saved
configuration, so with key or agent authentication reconnecting is one
click. The wizard is still one click away for changing node or settings,
and a failed connection now explains itself instead of dropping you into
setup.
Disconnecting no longer deletes your notification history. The local
cache was cleared on every disconnect, so any visit to demo mode by that
route cost you the lot. It is now cleared only when you connect to a
different pool, which keeps the protection it was there for at none of
the cost.
Telegram alert settings survive a disconnect. They had been stored in
that same cache, so disconnecting quietly deleted them and the bot then
appeared to stop working at the next launch, long enough after the cause
to look unrelated. Alert configuration now lives with the rest of your
settings. Existing configuration is migrated automatically.
Logs defaults now come from your node. They had been hardcoded to one
particular directory layout, so operators running a standard Guild install
had to correct them by hand. The unit name and blocklog path are read from
the node's own environment.
Also
Personal values that had been left in as defaults and examples are gone:
a LAN address and username in the connect form, a real delegator's stake
address in a developer test, a specific pool ticker as a fallback, and
several non-standard paths presented as defaults.
Verifying your download
sha256sum -c SHA256SUMS
Build
rustc 1.94.1, cargo 1.94.1, node v22.22.3, built on Ubuntu 22.04.