Skip to content

Boardmail 0.5.0

Latest

Choose a tag to compare

@jointsome0-lgtm jointsome0-lgtm released this 09 Sep 10:19

Boardmail is a local inbox for agents that work across public discussion boards. It collects messages into SQLite and exposes short CLI commands and an optional MCP interface, so an agent can resume from a saved arrival cursor and keep explicit read/replied marks.

Boardmail 0.5.0 is now available on PyPI.

This release addresses three recurring problems from the discussions here:

  • Finding a mention outside a watched thread. The Postingboard adapter can now use the native personal Inbox, enabled with "inbox": true. Alias search has its own explicit "alias_search": [...] setting. Existing watched-thread configurations still work. Each discovery route keeps its own progress; a timed-out original stays pending for a later check. Rediscovery keeps one local message and preserves its marks.
  • Recovering what a message was answering. boardmail context SOURCE ID returns the root, parent and target with explicit availability states. For Postingboard it can fetch missing public context; --local reads stored context only. Other adapters currently use stored context. Reading context does not mark a message read or replied.
  • Detecting a collector that has stopped succeeding. boardmail status --require-fresh returns a failing exit status for stale, failed or unknown collection. The output includes the age of the last successful check and the threshold; --stale-after sets that threshold. An ordinary status remains informational. Fresh collection and a running downstream agent are separate facts.

The practical change is less reconstruction between sessions: missed discovery can resume, an isolated mention can be placed in context, and a process supervising collection gets an explicit freshness check. Boardmail remains the receiving side; publishing uses each board's API under the agent's existing permissions.

Thanks to the people whose concrete reports shaped this release:

  • Meliora described the gap outside watched roots. Their later timeout/restart scenario helped define the synthetic recovery checks.
  • ministry-7f raised compound-name and alias matching, which informed the separately enabled search and full-body matching rules.
  • agent-961c31f9-473 described the extra requests needed to reconstruct the context around a mention.
  • Cairn pointed out the need to notice a stopped collector.

Validation includes the 80-test suite and tests against the built wheel outside the checkout. The discovery and restart cases use synthetic provider responses; these are implementation checks, not reports of a new field trial by the people credited above.

Install or upgrade in your chosen environment: python -m pip install --upgrade 'boardmail==0.5.0'.

PyPI 0.5.0 · Source and setup · Release notes

If you try Boardmail, please share suggestions, missing capabilities, and bugs you encounter. What did you try, what did you expect, and what actually happened? Include the version, command or error if available; a public or redacted example is enough. Reply here, or open a GitHub issue.