Repository navigation
v1.3.0 - 2026-10-09
Warning
meshcore-bot is now OwlBot. Updating needs a manual step, or you stay on v1.2.0.
- Docker:
ghcr.io/meshcore-go/meshcore-botgets no more updates. Pulling it keeps you on
v1.2.0 with no error. Switch toghcr.io/owlshack/owlbot. - Downloads: release files are now
OwlBot-<os>-<arch>. A script that fetches the latest
meshcore-bot-*file gets a 404. - The program is
OwlBot. Update service files, scripts andpgreplines that name
meshcore-bot, and a Docker command that runs it by name. - MQTT:
modelandclient_versionnow sayOwlBot. Update any dashboard or filter that
matches onmeshcore-bot. - The repository moved to OwlShack/OwlBot. Old links
redirect.
Your config file, mqtt_identity.key, bot identities and MQTT topics carry over unchanged. See
Upgrading below.
Baseline v1.2.0. The bot is renamed OwlBot, templates can print dates and times, and it is
built on meshcore-go v1.7.0.
Added
- Templates can print dates and times.
{{date now "15:04"}}gives the current time, and
{{date .Timestamp "15:04"}}when a channel message was sent. An optional zone such as
"Pacific/Auckland"sets the time zone, and works the same on every platform. - Posts can be scoped to a MeshCore region.
floodScope = "region:nz"on a bot or a trigger
sends its posts so only repeaters that allow#nzpass them on. Unset stays unscoped, as before. - Each MQTT broker can set its own topics.
packetTopicandstatusTopictake{iata},
{pubkey}and{name}, for brokers that expect a different layout. Unset keeps the current
topics. - Choose how path hashes are joined.
{{formatPathBytes .PathHashes " > "}}gives
A1 > B2 > C3instead of the defaultA1, B2, C3.
Changed
- meshcore-bot is renamed OwlBot. The binary, release downloads and Docker image carry the
new name. Your config file andmqtt_identity.keycarry over as they are, so every bot keeps
its mesh identity and the MQTT observer keeps its public key. - MQTT status reports
modelasOwlBot.client_versionis nowOwlBot/<version>. - Built on meshcore-go v1.7.0. The bot's own messages go out at firmware transmit priorities
rather than queuing behind relayed traffic, and it ignores packets firmware discards, such as
encrypted payloads that are not whole AES blocks.
Fixed
- The MQTT status says online again as soon as a broker reconnects. When the link drops, the
broker publishes the bot as offline. It used to stay that way until the next status, up to 5
minutes later, even though the bot was back. - Packets dropped while a broker is down are now logged. They are still not buffered, but a
warning says when a broker starts dropping them, and the count is logged when it reconnects.
Before, they went missing without a word, including any heard in the moment before the first
connection.
Upgrading
- Docker: switch the image to
ghcr.io/owlshack/owlbot.ghcr.io/meshcore-go/meshcore-bot
stays at v1.2.0. If you mounted onlyconfig.toml, copymqtt_identity.keyout of the old
container first, or the observer starts with a new identity. The README has the command. - Binary: replace it with an
OwlBot-*download and change any service file or script that
runsmeshcore-bot. Run it from the same directory as before.
What's Changed
- Rename to OwlBot and move to meshcore-go v1.7.0 by @tuzzmaniandevil in #26
- Template functions for dates and times by @tuzzmaniandevil in #27
- Optional separator for formatPathBytes by @tuzzmaniandevil in #28
- Optional separator for formatPathBytes (reland #28) by @tuzzmaniandevil in #29
- Changelog: warn about the rename by @tuzzmaniandevil in #30
- Log MQTT packets dropped while a broker is down by @tuzzmaniandevil in #31
- Scope posts to a MeshCore region (floodScope) by @tuzzmaniandevil in #32
- Per-broker MQTT topic templates by @tuzzmaniandevil in #33
- Publish online again when a broker reconnects by @tuzzmaniandevil in #34
- Release v1.3.0 by @tuzzmaniandevil in #35
- v1.3.0 by @tuzzmaniandevil in #36
Full Changelog: v1.2.0...v1.3.0