Commit graph

5 commits

Author SHA1 Message Date
randogoth
3d9ec1e773 chore: release 0.2.2
Post rules follow upstream twtxt: control characters are rejected, U+2028 multiline is allowed, and the length cap is configurable as max_post_chars, default 288.
2026-10-15 14:05:38 +03:00
randogoth
83125a7d3f chore: release 0.2.1
Author-facing copy in plain language, and a line per mail saying what the
daemon did with it.
2026-10-15 09:24:54 +03:00
randogoth
9c9dce57e7 chore: release 0.2.0
Self-service registration by mail, the admin commands, host-namespaced feed
paths for remote authors, and the Fluent catalogue for author-facing copy.

A deploy must take the binary and the config together: config.rs hard-errors
on an unknown key, so the 0.1.0 binary refuses a config carrying the new
registration keys outright.
2026-10-14 21:09:54 +03:00
randogoth
3279fd3a2d refactor: move author-facing mail copy into a Fluent catalogue
Ports carrier's src/i18n.rs and its locales/en-US/main.ftl layout, same
fluent-bundle and unic-langid versions, so the two catalogues stay portable
between them. Only mail the daemon sends an author moves; operator CLI output
stays inline, since the operator runs the binary and reads English.

The error-reply reasons from dispatch and ApplyError are deliberately left
behind: dispatch is pure by contract, so those become reason identifiers
resolved at the mail-building edge in a separate change rather than having the
pure layer reach for a bundle.

Adds a test carrier lacks. FluentResource::try_new and add_resource both panic
on a malformed or duplicate-id catalogue, and nothing touches the bundle until
the daemon first mails someone, so without it a bad catalogue surfaces inside
poll() on a live instance.

Sentences are verbatim; the bodies are now hard-wrapped where they were single
long lines, which reads better in a plain-text client.
2026-10-14 18:48:31 +03:00
randogoth
8330b65ff9 feat: add smolboid daemon: mail loop, feed store and HTTP listener 2026-10-05 11:00:17 +03:00