Repository navigation
Description
Summary
Since updating to opencode v2.1.4, automatic session title generation no longer runs. Sessions are created with an empty title and keep the client-side fallback ("New session - "). Data from my database shows a hard version boundary unaffected by config: ~60 sessions across v1.18.x–v2.0.32 were all auto-titled, and 8 of the 15 sessions created on v2.1.4 (installed today, 2026-10-23) remained untitled. The failure is silent — no error is surfaced and, unlike earlier versions, the log no longer shows any title-agent activity (agent=title stream events stop entirely after the update).
Environment
- opencode version: 2.1.4 (regression appeared exactly with 2.1.4; body from the previous release, 2.0.32, auto-titled fine)
- OS: Windows_NT 10.0.26200 (win32 x64)
- Terminal: Windows terminal host, TERM=xterm-256color
- Shell: cmd.exe host (commands run via PowerShell)
- Install/channel: npm-managed install, latest
- Active plugins: superpowers (git: https://github.com/obra/superpowers.git)
Model context: all sessions run on the built-in free provider models (opencode/*-free, e.g. opencode/glm-5.3-flash-free, opencode/deepseek-v4.1-flash-free). No Console account/credits configured. Under 2.0.32 the title agent streamed with a small free model (log: providerID=opencode modelID=muse-spark-1.3-contributor-free small=true agent=title) and titles appeared correctly.
Reproduction
- Update opencode 2.0.32 → 2.1.4 on Windows
- Start a new session in the TUI (or
opencode run) - Send any message (verified reproducing with successful chats on
opencode/deepseek-v4.1-flash-free) - Observe the session list: the session stays "New session - "; in the database (
~/.local/share/opencode/opencode.db, tablesession_v2)titleremains empty
Reproduces consistently (4 independent test sessions, TUI and run, including chats that succeeded normally).
Expected Behavior
The background title agent generates a title after the first user message, as in ≤ 2.0.32, and the session gets renamed.
Actual Behavior
No title generation occurs on 2.1.4:
session_v2.titlestays empty for all successful sessions after the update- The server log contains zero title-agent events after the update (previously
message=stream ... small=true agent=titlelines and occasional"stream error"fallback entries existed for every session)
Version-boundary evidence from my local database (session_v2.grouped by version):
| version | sessions | untitled |
|---|---|---|
| 1.18.30 – 1.18.35 | 23 | 0 |
| 2.0.26 | 2 | 0 |
| 2.0.32 | 36 | 4 |
| 2.1.4 (installed 2026-10-23 ~14:07) | 15 | 8 |
(The 2.0.32-era untitled entries are edge cases: failed/aborted sessions; the 8 untitled under 2.1.4 include fully succeeded TUI and opencode run sessions.)
Additional Context
Workarounds attempted per config, none restored auto-titling on 2.1.4:
{
"small_model": "opencode/glm-5.3-flash-free",
"agents": {
"title": { "model": "opencode/glm-5.3-flash-free" }
}
}(small_model is documented in the V2 schema as "Small model to use for tasks like title generation". Both keys hot-reload confirmed via config.updated events in the log; new sessions still untitled.)
Possibly related API drift on 2.1.4: the published HTTP API documents POST /api/session/{sessionID}/rename (v2.session.rename), but the running 2.1.4 server returns 404 for that path, and its OpenAPI surface lists PATCH /api/session/{sessionID} (session.update) instead. opencode api patch /api/session/{id} --data '{"title":"..."}' returned InvalidRequestError: Expected a valid JSON body, and no opencode session rename CLI subcommand exists (only list/delete/export/import). So sessions with failed titles currently cannot be renamed from the CLI at all; I had to apply renames through the available runtime bindings.
Possibly related issues: #39532 (titles optional until generated or set), #13710, #29734, #30662 (silent auto-title failures; teammate closed as upgrade-to-2.0, but the regression now reproduces on 2.x).
Happy to provide opencode.log excerpts (redacted) or a heap snapshot if useful.
Activity
opencode-agent commentedon Oct 23, 2026
Thanks for the detailed report and the version data. I think this is a duplicate of #58176.
That issue has been reproduced on 2.1.x with the free
opencode/*-freemodels. The title request is sent automatically after the first message, but the free tier rejects it with403 FreeTierError("OpenCode's free tier can only be used from within OpenCode...").SessionTitle.attemptthen drops the error without logging it. So the session stays untitled, and no title activity appears in the log. Comments there show it on 2.1.2 and 2.1.3 as well, and that settingagents.title.modelto a free model doesn't bring titles back. That matches what you saw.Possible duplicates and related issues, ordered by likelihood:
opencode/*models, titles never generated, failure not logged (reproduced, cause found)glm-5.3-flash-freeanddeepseek-v4.1-flash-free, already closed as a duplicate of session: titles never generated in v2 (no auto trigger + free-tier rejection) #58176On renaming: a comment on #58176 reports that
PATCH /api/session/<id>with a non-emptytitleworks on 2.1.3. TheExpected a valid JSON bodyerror is most likely PowerShell stripping the inner quotes from--data. Try escaping them (for example--data '{\"title\":\"My title\"}') or running the command fromcmd.exe. In the TUI,/renamewith a name also works.The bot will close this issue as a duplicate in 1 day unless you reply explaining how your problem is different. Any extra details, like your log excerpts, are welcome on #58176.
vikash-sahu commentedon Oct 23, 2026
Closing as a duplicate of #58176, which is the canonical, reproduced issue for exactly this symptom on 2.1.x: the automatic title request is sent but the free-tier gate rejects tool-less requests (403 FreeTierError), and SessionTitle.attempt swallows the failure without logging it. I independently recorded the same version-boundary evidence (v1.18.x-v2.0.32 all auto-titled, 8/15 untitled on v2.1.4, no rename endpoint, silent failure) on 2.1.4 / Windows, so keeping the discussion in #58176. Thanks to the maintainers for the reproduction and instrumentation work there.
opencode-agent commentedon Oct 24, 2026
Closing this as a duplicate of #58176, since there's been no reply in the day since the duplicate notice. That issue covers the same problem: on 2.1.x with free
opencode/*-freemodels, the free tier rejects the title request and the error isn't logged, so sessions stay untitled. It has been reproduced and the cause identified.Please follow #58176 for updates. Your version breakdown and log excerpts would be welcome there. If your problem turns out to be different, reply here and we can reopen it. Thanks again for the detailed report!