Before submitting
Area
apps/server
Steps to reproduce
- Use the OpenCode provider (opencode 1.18.32).
- Create a thread in t3 and send a message.
- Open the native OpenCode TUI and check the session's title.
Expected behavior
OpenCode generates its own session title after the first prompt (SessionPrompt.ensureTitle), so the session should end up with a readable generated title, like it does when the session is created from the native OpenCode UI.
Actual behavior
OpenCode never generates a title for t3-created sessions. ensureTitle bails out unless the session title still matches the default New session - <timestamp> pattern (packages/opencode/src/session/prompt.ts, if (!Session.isDefaultTitle(input.session.title)) return). But t3 always passes its thread title at session.create (input.title in OpenCodeAdapter), so the session is never default-titled and the title generator is skipped. Confirmed in opencode logs: sessions created by t3 log no agent=title run, while native untitled sessions do.
The session title therefore stays whatever t3 sent (the prompt-seed title), and the generated-title session.updated event t3's mirror listens for never fires. Renaming the thread in t3 doesn't help, since t3 also never updates the session title after creation.
Possible fix direction: don't send a title at session.create (or send it only after the user manually renames the thread), letting OpenCode's own title generation run and flow back through the existing mirror.
Impact
Minor bug or occasional failure
Version or commit
main @ f5ef0dd (tested on t3@0.0.43-nightly.20260922.2110)
Environment
Linux (headless VPS), OpenCode 1.18.32 driven through the t3 SDK. Also seen with the Cursor provider (session title in the Cursor CLI never reflects the thread title), untested with Claude Code / Antigravity.
Before submitting
Area
apps/server
Steps to reproduce
Expected behavior
OpenCode generates its own session title after the first prompt (
SessionPrompt.ensureTitle), so the session should end up with a readable generated title, like it does when the session is created from the native OpenCode UI.Actual behavior
OpenCode never generates a title for t3-created sessions.
ensureTitlebails out unless the session title still matches the defaultNew session - <timestamp>pattern (packages/opencode/src/session/prompt.ts,if (!Session.isDefaultTitle(input.session.title)) return). But t3 always passes its thread title atsession.create(input.titleinOpenCodeAdapter), so the session is never default-titled and the title generator is skipped. Confirmed in opencode logs: sessions created by t3 log noagent=titlerun, while native untitled sessions do.The session title therefore stays whatever t3 sent (the prompt-seed title), and the generated-title
session.updatedevent t3's mirror listens for never fires. Renaming the thread in t3 doesn't help, since t3 also never updates the session title after creation.Possible fix direction: don't send a title at
session.create(or send it only after the user manually renames the thread), letting OpenCode's own title generation run and flow back through the existing mirror.Impact
Minor bug or occasional failure
Version or commit
main @ f5ef0dd (tested on t3@0.0.43-nightly.20260922.2110)
Environment
Linux (headless VPS), OpenCode 1.18.32 driven through the t3 SDK. Also seen with the Cursor provider (session title in the Cursor CLI never reflects the thread title), untested with Claude Code / Antigravity.