Skip to content

Titles: follow-the-session from the session harness and model - #146

Open
katulevskiy wants to merge 4 commits into
mirror/upstream-mainfrom
mirror/upstream-pr/614
Open

katulevskiy wants to merge 4 commits into
mirror/upstream-mainfrom
mirror/upstream-pr/614

Conversation

@katulevskiy

Copy link
Copy Markdown
Owner

Upstream mirror

Source: zeronsh#614
Original author: @devshekhawat
Original revision: 0c9e6036116a5714dd208dbbeb45a29b8314c884

This PR is an isolated Contribution Manager pilot mirror. Its reviews, checks and merge state are separate from upstream. An empty [skip ci] commit suppresses automatic bulk CI; the code tree matches the imported upstream revision.


Opencode sessions never got an intelligent title — every new thread fell back to truncating the prompt. Two stacked causes, two commits:

1. Opencode: title runs from the session harness (harness)

  • supports_titles excluded OpenCode, so the engine failed over to another harness (often unauthed) and gave up.
  • OpencodeHarness::run_title added: request sanitized (no resume/worktree/attachments/MCP/model options, no auto-approve), title_only threaded through Session/BusCtx so permission.asked replies reject instead of once. Questions still resolve empty and never block.
  • Live proof vs real opencode server: check why the login redirect loops on staging → Staging Login Redirect Loop, Completed, zero tool calls.
  • Test: title_runs_reject_tool_permissions (v1+v2 fixture).

2. Engine: title follow-the-session with the session's own model (engine)

  • The titler received the harness but never the model, so it guessed cheapest-catalog — catalogs list models the account can't call, and the guess burned all retries.
  • request.model is threaded through maybe_generate/generate/run_title_model; with nothing pinned and the title on the session's own harness, its model is reused. Cross-harness titles keep the catalog guess; pinned settings win as before.
  • Test: session_model_is_reused_for_same_harness_titles.

How to verify: new opencode thread with Thread naming on follow-the-session → 3–5 word title within ~15s; grep -i auto-titl data/logs/zeron-headed.log.

Suites: engine titles 5 passed; harness lib incl. all 61 opencode tests, claude (16), codex (27) green — one pre-existing timing flake (stalled_prompt_post_has_a_bounded_timeout) fails on pristine main too. rustfmt --check clean; no new clippy warnings. Supersedes zeronsh#611 and zeronsh#613 (closed).

@contribution-manager-katulevskiy contribution-manager-katulevskiy Bot added the review:needs-triage Managed by Contribution Manager label Oct 6, 2026
@contribution-manager-katulevskiy

contribution-manager-katulevskiy Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Contribution Manager

needs triage · medium risk · untriaged

Open review workspace · Revision b203caa0

Next actions:

  • Direction decision needed
  • Scope, risk, and platform triage needed
  • Independent code review needed
  • Required check: core-tests (missing)

This summary is maintained by the review app. Decisions and test evidence are recorded in the workspace; the app does not merge PRs.

@contribution-manager-katulevskiy contribution-manager-katulevskiy Bot added cm:idea-approved Contribution Manager: scope accepted, needs review and removed review:needs-triage Managed by Contribution Manager labels Oct 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cm:idea-approved Contribution Manager: scope accepted, needs review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants