# Conflicts: # apps/cli/package.json # apps/web/tests/slash-flow.snapshot.ts # docs/capability-seams.md # docs/cordis-catalog/events.md # docs/cordis-catalog/services.md # docs/event-producer-consumer.md # docs/module-graph.md # packages/client/ui-conversation/README.i18n.yaml # packages/client/ui-conversation/src/client/chat/MessageItem.module.css # packages/client/ui-conversation/src/client/chat/MessageItem.tsx # packages/client/ui-conversation/tests/chat-branch-tails.spec.tsx # packages/client/ui-reference/README.i18n.yaml # packages/client/ui-slash/README.i18n.yaml # packages/client/ui-slash/README.md # packages/client/ui-slash/README.zh.md # packages/client/ui-slash/package.json # packages/client/ui-slash/src/client/MenuView.tsx # packages/client/ui-slash/tsconfig.json # packages/client/ui-subagent/README.zh.md # packages/context/session-reference/README.i18n.yaml # packages/context/session-reference/README.zh.md # packages/cordis/tool-cordis/src/api-catalog.ts # packages/host/apiproxy/README.i18n.yaml # packages/host/apiproxy/README.md # packages/host/apiproxy/README.zh.md # packages/host/apiproxy/src/api-proxy.ts # packages/host/apiproxy/src/api/sessions.ts # packages/host/apiproxy/src/fetch/handler.ts # packages/ui/tui/src/index.ts # packages/ui/tui/tests/tui.spec.ts # pnpm-lock.yaml # scripts/verify-package-readme-model-experience.ts # tsconfig.host.json
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.