L3 · the STEP loop (07 §3). run-loop! iterates run-step! until
final/error/timeout/budget/stop. The loop owns the turn/step/message/
observation appends + the deadline; the kernel owns the per-block :eval/added.
commit-turn!/finalize-turn! live HERE (not in session) so the loop never
depends on session — that breaks the session↔session-loop cycle (GD4).
L3 · the STEP loop (07 §3). `run-loop!` iterates `run-step!` until final/error/timeout/budget/stop. The loop owns the turn/step/message/ observation appends + the deadline; the kernel owns the per-block :eval/added. `commit-turn!`/`finalize-turn!` live HERE (not in session) so the loop never depends on session — that breaks the session↔session-loop cycle (GD4).
(commit-turn! handle turn-id final _eval-records)The :final terminal path (GD4): intern the FINAL value + preview, snapshot vars (a DISTINCT :session/vars-snapshotted just before the final :turn/put), roll up usage/cost/cache :unknown-aware, append :turn/put, hydrate + return.
The :final terminal path (GD4): intern the FINAL value + preview, snapshot vars (a DISTINCT :session/vars-snapshotted just before the final :turn/put), roll up usage/cost/cache :unknown-aware, append :turn/put, hydrate + return.
(finalize-turn! handle turn-id status error)Every NON-:final terminal outcome (timeout/budget-exceeded/error). Appends a finalizing :turn/put (status + the same :unknown-aware rollups, no final-ref / no vars snapshot) BEFORE building the TurnResult — so the live view never shows a terminated turn still :running.
Every NON-:final terminal outcome (timeout/budget-exceeded/error). Appends a finalizing :turn/put (status + the same :unknown-aware rollups, no final-ref / no vars snapshot) BEFORE building the TurnResult — so the live view never shows a terminated turn still :running.
(run-loop! handle turn-id)Iterate run-step! until a terminal outcome; enforce :max-steps (07 §3).
Iterate run-step! until a terminal outcome; enforce :max-steps (07 §3).
(run-step! handle turn-id)One iteration of the spine (01 §'One step'). Returns a discriminated outcome: {:control :continue} | {:control :final :final … :eval-records …} | {:control :terminal :result <TurnResult>}.
One iteration of the spine (01 §'One step'). Returns a discriminated outcome:
{:control :continue} | {:control :final :final … :eval-records …}
| {:control :terminal :result <TurnResult>}.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 |