The oldest records after `since`, what a full answer means, what `since`
accepts, and the one case a time cannot cover.
Refs postulo/postulo#475
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say that the container's health check does not depend on the host list
And name the third reason a container was called unhealthy up to 0.3.0:
a host list that left out 127.0.0.1.
Refs postulo/postulo#580
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say how a capture keeps the page it was read from, and what keeps that page harmless
Capturing postings gains *Keeping the page*: the source and a
rendering, both off until an administrator and then the person switch
them on, where the kept page is, how long it stays and the account's
ceiling. Its two sentences that still called the browser extension
planned now point at the one that exists.
The capture API documents `keep` and the `page` member of a capture,
the `PUT` that sends a rendering with its answers, the three problem
types it adds, the `413` a request too large for the API now gets, and
what the extensions send today. Configuration lists the six settings
and why keeping is off by default; Hardening says why a kept page never
runs as the stranger's code; the metrics page counts kept pages.
Refs postulo/postulo#256
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The scheduler fails quietly: nothing errors, reminders simply stop arriving, and
the first person to find out is the one who missed a deadline. It now writes the
time of each finished pass where both its own container healthcheck and the
metrics endpoint in the web container can read it, so *Health, metrics and logs*
gains the heartbeat, the two new numbers beside it, and three alerting rules --
one for the loop having stopped, one for it running but not getting through, and
one for deliveries that have been failing for an hour. The reminder count there
also changed meaning: it was every reminder anybody had ever set and not done,
which grows because the instance is being used and so could not be alerted on.
Refs postulo/postulo#221
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Document the whole API surface: every call, the machine endpoints, the plugin API
The API named every call, but the scope each needs lived in prose, and
the discard reasons and what /me answers were not written anywhere. It
gains both, and one list of all 39 calls with method, path and scope,
generated from the API's own routers.
/healthz, /metrics and /logs answer machines about the instance and
were only rows in Configuration. Health, metrics and logs says what
each returns, how it is switched on and guarded, the rate limit, the
parameters /logs takes, and every metric with its labels.
The plugin guide was postulo's docs/PLUGINS.md and never reached the
wiki. It is Writing a plugin now, opening with every kind of plugin,
its entry-point group and the interface it satisfies, and carrying a
reference of all 37 names postulo.plugins.api promises -- eight of
which the guide had never named. It also says plainly that a
notifier's Notification, and the client's DestinationRefused, are used
from outside the surface today.
The sidebar gains a Building on it group for the API and the plugin
guide, and the three pages that linked to docs/PLUGINS.md link here.
postulo's tests/test_wiki_surface.py now reads these three pages
against the code.
Refs postulo/postulo#170
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>