Three sidebar display issues
1. Session shows ".agents" instead of "freshell" as project name
When a Claude Code session runs from a subdirectory (e.g. /repo/.agents/), the sidebar sometimes displays the subdirectory name instead of the git repo root. Git resolves .agents → freshell correctly via resolveGitRepoRoot(), but the session display uses the raw cwd basename.
2. Codex sessions show cwd basename ("bitbucket") instead of meaningful title
Codex wraps the actual user prompt inside <environment_context> XML in the first role: "user" message. The isSystemContext() filter correctly skips this, but then there's no fallback user message to extract a title from. The title falls back to the cwd basename (e.g. "bitbucket"), which isn't helpful.
The actual user prompt is nested deeper in the message content and needs to be extracted from the Codex message format.
3. OpenCode sessions not appearing in sidebar
OpenCode sessions exist in the SQLite database (~/.local/share/opencode/opencode.db) and the provider is configured and enabled, but sessions don't appear in the sidebar. The listSessionsDirect() call may be failing silently.
Verified: sqlite3 shows a session from today, config.json has opencode enabled, but the session doesn't show in the sidebar.
Three sidebar display issues
1. Session shows ".agents" instead of "freshell" as project name
When a Claude Code session runs from a subdirectory (e.g.
/repo/.agents/), the sidebar sometimes displays the subdirectory name instead of the git repo root. Git resolves.agents→freshellcorrectly viaresolveGitRepoRoot(), but the session display uses the rawcwdbasename.2. Codex sessions show cwd basename ("bitbucket") instead of meaningful title
Codex wraps the actual user prompt inside
<environment_context>XML in the firstrole: "user"message. TheisSystemContext()filter correctly skips this, but then there's no fallback user message to extract a title from. The title falls back to the cwd basename (e.g. "bitbucket"), which isn't helpful.The actual user prompt is nested deeper in the message content and needs to be extracted from the Codex message format.
3. OpenCode sessions not appearing in sidebar
OpenCode sessions exist in the SQLite database (
~/.local/share/opencode/opencode.db) and the provider is configured and enabled, but sessions don't appear in the sidebar. ThelistSessionsDirect()call may be failing silently.Verified:
sqlite3shows a session from today, config.json has opencode enabled, but the session doesn't show in the sidebar.