Skip to content

Rename to OwlBot and move to meshcore-go v1.7.0 - #26

Merged
tuzzmaniandevil merged 2 commits into
devfrom
feat/rename-owlbot
Oct 8, 2026
Merged

tuzzmaniandevil merged 2 commits into
devfrom
feat/rename-owlbot

Conversation

@tuzzmaniandevil

Copy link
Copy Markdown
Contributor

Renames meshcore-bot to OwlBot (the old name belongs to another tool) and moves to meshcore-go v1.7.0, which now lives at github.com/OwlShack/meshcore-go.

Rename

  • Module github.com/OwlShack/OwlBot. Binary, release assets (OwlBot-<os>-<arch>) and the Docker image binary are OwlBot; the image is published to ghcr.io/${{ github.repository }}.
  • MQTT status: model is OwlBot, client_version is OwlBot/<version>, the same pattern as OwlShack.
  • No compatibility shims: no old-name image or assets, no meshcore-bot alias in the image.
  • README gains "Upgrading from meshcore-bot"; its Docker examples now mount a folder at /data, so mqtt_identity.key survives a new container.

Upgrades do not lose state. The bot's only state is the config file (plus .bak-*) and mqtt_identity.key, both in the working directory, and mesh identities derive from bot names; none is keyed on the program name. Checked by running the released v1.2.0 binary, then this build, in one folder against a local broker: the key file hash and origin_id/topic were identical, and only model/client_version changed. Users who mounted only config.toml in Docker have their key inside the old container; the upgrade notes give the docker cp.

meshcore-go v1.7.0

  • LocalIdentity.Seed() returns (seed, ok): saving refuses an identity with no seed instead of writing an all-zero key.
  • sx12xx NoiseFloor() returns (dBm, ok): noise floor stays unset until measured.
  • hardware.PreambleForSF replaces the deprecated sx12xx one.
  • Comments in stats.go no longer call the KISS query order load-bearing: v1.7.0 matches each reply to its command by position. Code unchanged.

Also

  • Test-only race in the reconnect watcher tests (from feat: reconnect a radio that is lost #22): the probe goroutine could read probeInterval after a test's cleanup restored it. About 1 run in 14 under -race; 0 in 60 after.

Testing

  • go vet, build, go test -race (CI's commands).
  • Docker image built locally: default command runs OwlBot from /data.
  • Not on air: all three bench radios were held by OwlShack, so the upgrade run used a silent KISS link over TCP. No radio code changed beyond the API adaptations above.
  • The deprecated KISS getters (GetBattery etc.) are still used; moving to the typed calls is a later cleanup that wants a radio.

Before the next release

The repo is now OwlShack/meshcore-bot. Rename it to OwlBot before tagging, or the image is published as ghcr.io/owlshack/meshcore-bot rather than ghcr.io/owlshack/owlbot as the README says.

A test restoring probeInterval in its cleanup could race a probe goroutine
that had not read it yet (about 1 run in 14 under -race). Read it in watch()
and pass it in.
The meshcore-bot name is taken. The module, binary, release assets and
Docker image are now OwlBot, and MQTT status reports model OwlBot and
client_version OwlBot/<version>. Stored state is untouched: the config
file and mqtt_identity.key keep their names, and mesh identities still
come from bot names.

meshcore-go v1.7.0 moved to github.com/OwlShack/meshcore-go. Adapt to
Seed() and the sx12xx NoiseFloor() returning an ok flag, use
hardware.PreambleForSF, and correct the KISS ordering comments now that
the library matches each reply to its request.
@tuzzmaniandevil
tuzzmaniandevil merged commit 550f31a into dev Oct 8, 2026
1 check passed
@tuzzmaniandevil
tuzzmaniandevil deleted the feat/rename-owlbot branch October 8, 2026 22:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant