Files
deepseek-harness/packages/session-title
imccyu c8374e916f fix(session-title): typed rename rejection, provenance invariant, contract docs
SessionTitleInvalidError narrows the one rename failure that blames the
input; the fallback-unpin append extracts to appendFallback beside
ensureFallback's guarded twin; a deferred-provider test proves rename
supersedes ACTIVE generation; the invariant companion enforces
messageSeqs-empty iff user-source on every appended session/title event
(tsconfig gains the session-title invariant path); SessionTitleEventData
field docs state the third source kind and the empty-seqs rule, mirrored
into the bilingual core-data-structures page; the note qualifies the
refresh unpin as conditional on a derivable replacement.
2026-07-29 20:10:42 +08:00
..
2026-07-26 05:06:39 +08:00
2026-07-26 05:06:39 +08:00

session-title/ — log-backed session-title capability family

English | 中文

Durable session-title state, one optional asynchronous provider seam, and two opt-in model-backed implementations. The built-in first-message fallback is part of the service, so every composition can title a session without an auxiliary model call.

Package Role ctx key
session-title/ Log fold, deterministic fallback, provider registry, and refresh API ctx.sessionTitle
session-title-llm/ Shared route, request logging, prompt, timeout, stream, and validation helper
session-title-first-message-llm/ Optional provider using the first eligible human message registers on ctx.sessionTitle
session-title-all-messages-llm/ Optional provider using every eligible human message registers on ctx.sessionTitle

Only one provider may register at a time. The shared demo spine mounts the fallback service but leaves both model providers outside default composition, so deployments choose auxiliary cost and retitling cadence explicitly.