Background REPL evaluations now return an id and feed their results back into the conversation.
What's wrong with this entry?
Starting an asynchronous REPL evaluation now returns an evaluation id and the current queue depth, and when the evaluation finishes its output is inserted back into the conversation instead of being lost. Dispatching more than the per-context queue cap allows is rejected outright.
- The settled output arrives as a
repl-evalelement, after hooks have had a pass at it. - Output is truncated to a byte budget, cut on a UTF-8 character boundary so multi-byte text is not split.
- If a hook blocks the output, it is withheld with that fact recorded rather than silently dropped.
repl_async_settletelemetry separates the withheld case, the hook-failed-open case and the case where the result never reached the conversation.
async REPL dispatch rejected: queue depth cap
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
Related
Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.
-
v2.1.236
Query handling moved out of the REPL component
Both mention repl
-
v2.1.236
REPL streaming state moved into a single object
Both mention repl
-
v2.1.236
Turn and streaming handling moved onto one controller
Both mention repl