Second full smoke test (2026-08-05, fresh tenant, post-restart JVM with the pattern book, drilldown, __q rail
and *err* tee aboard): 26 evals, every core surface, verdict "holds up very well" — and the first field report
to drive a change upstream. Its battery covered the whole day's work sight-unseen: pattern index followed to a
real file, (ex-data (__q/catch …)) recovered programmatically, compel-vs-unreturned-child verified with counter
evidence, eviction and bogus-id errors quoted approvingly. Three findings, all reproduced live before fixing:
catch never sees cancellation; grounding
propagates it) against a recipe that only said "the failure as a value." The safe probes (failure, which
status-checks first; cancelled?; await) all existed and none were taught at the point of need. Closed from
both ends: Quiescent 0.9.0 gained get-ex — the symmetric partner of get-now: the exception as a value,
failure and cancellation alike, nil otherwise, non-blocking, never throws, the read catch cannot express —
prototyped and validated through the live connection against the impl's own isExceptional/getResult shims
before landing upstream. The taught recipe is now (__q/get-ex (__r/res 12)) everywhere (instructions, res
and failure docstrings, registry's own doc), with the catch-propagation caveat stated beside it; and the
:cancelled response note — which fires almost only for propagation, since a directly-cancelled running eval
gets no later response — now renders the exception's own message: cancelled — Task cancelled directly., the
provenance the exception already carried.:done keeps its authoritative override.get-ex upstream
in Quiescent 0.9.0 → recipe swap downstream → response teaches provenance. The tenant also tripped exactly where
the reviewer did minutes later (cancelled? returns a plain boolean, not a task) — converging evidence that the
corner needed the docs it now has. The codebase eats the same dish: both internal exception extractions —
failure's and the failed-response render's @(q/catch task identity) — became (q/get-ex task), retiring the
chain-and-deref dance everywhere the taught recipe retired it.Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |