~bigbes/sr-ht-ecore: 9a97b126

ecore: the gaps the third adoption pass found

Five services adopted the new packages today and each hit the same edges.

bearer.IsRefusal: a service's resolver returns more than this package's
vocabulary — the Postgres lookup it had to make, an expired context, a bug —
and StatusFor's default answers those 401, which tells a caller to re-mint a
token that was never the problem. Every service that wrapped the table spelled
out the sentinel list to guard the delegation; now it does not have to.

instconf.Key.Because: three services kept their own hand-written config
checker rather than lose the sentence that says WHY a key is required
("crypto.InitCrypto exits without it"). Require reported the names and nothing
an operator could act on, so nobody used it.

logging.DefaultsWithoutDebugFlag: a migration CLI passes -d to brant, where it
means --dialect and takes a value, so `coversrht-migrate -d postgres` arrived
as a request for debug logging — silently, because the probe sees the flag and
never the value.

assets.DirFS: os.DirFS("") does not mean "no assets", it means "serve the
filesystem root", and it is one unset config key away. dolt wrote the guard;
the other five would each have to see it happen first.

pages.APIMessage: the REST half of every service keeps its 404 body
byte-identical on purpose, so it could not adopt the shared refusal installer,
whose messages are page sentences. The same table now answers in both
registers.

Eugene Blikh <bigbes@gmail.com> — 2026-08-08 21:51:04 UTC

Commit 9a97b126e5a4f23591b42da7d75b0bb843c31521view raw patch

Parent(s): e8a96725

9 changed file(s)

FileStatus+
assets/assets.go M +23
assets/assets_test.go M +21
bearer/status.go M +29
bearer/status_test.go M +15
instconf/instconf.go M +29 -9
logging/logging.go M +21 -3
logging/logging_test.go M +19
pages/error.go M +40
pages/error_test.go A +27