Status: Proposal Scope: minimal extension + minimal runtime seams
Build the smallest useful vertical slice for auto-session-name.
This MVP does not rename sessions yet. It proves the eventing and scheduling substrate needed by the future extension by:
auto-session-name extensionN completed turns, scheduling a delayed extension eventThis establishes the extension lifecycle shape before adding transcript sanitization, helper-session inference, model selection, and rename mutation.
The full feature needs several moving parts. The riskiest early uncertainty is not title generation itself, but whether the extension/runtime boundary can cleanly support:
This MVP proves those pieces first.
Update: the current implementation has moved beyond this original MVP. It now
includes transcript sanitization, helper-session inference, shared-model
selection through psi.ai.model-selection, and source-session rename mutation.
Treat this document as historical design context rather than a description of
current behavior.
When the extension is loaded:
N completed turns for a session, it schedules a delayed internal
extension eventauto-session-name: rename checkpoint for session <id>Default values:
N = 2This MVP does not:
A completed turn is one source-session assistant turn that has fully completed
through the shared prompt lifecycle and reached prompt-finish.
A rename checkpoint is the scheduled deferred extension event emitted every N
completed turns. In the MVP, its only effect is a transient UI notification.
The MVP needs two small capability additions.
When a prompt lifecycle turn finishes, the runtime should dispatch an extension event:
session_turn_finished:session-id:turn-idThis gives extensions a canonical semantic hook for completed-turn logic.
Extensions need a way to request:
delay-ms, dispatch extension event X with payload YFor MVP, a new extension mutation should schedule a delayed extension-dispatch.
Conceptually:
psi.extension/schedule-event:notify/extension-dispatchPayload should be opaque extension data.
The extension maintains in-memory state:
NBehavior:
session_turn_finishedN, request a scheduled extension eventIf UI is absent:
For MVP:
session-id and current
turn countIf scheduling fails:
If notification fails because UI is absent:
auto-session-name extension registers both handlers on initOnce this MVP is proven, later slices can add:
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 |