SessionProfile

The two profiles of a session: what a session can touch, and the command line that Claude Code starts with (trove-parts §TPN-5).

Group libllmsession

In the namespace octomy::llmsession. Declared in src/libs/libllmsession/llmsession/SessionProfile.hpp.

Detailed description

A session has one working folder, set at creation, and the folder decides what the session can touch.

  • assistant: the folder is <base>/sessions/<id>/, one per session, so that Claude Code files the transcript of each session under a name that does not change. The tools are read only, with the flags of ClaudeCodeClient::readOnlyToolArguments(), on the first process and on each resume. The system prompt is OPAL's protocol prompt, in a file of the folder, with --system-prompt-snapshot off so that a changed prompt takes effect on the next turn. The folder of an image that is too large to send inline is an --add-dir (StreamLaunch::addDirs).
  • coding: the folder is a worktree. The tools are the lane's tool set (codingArguments()): every tool, no permission dialog, and no AskUserQuestion, which a text stream cannot show. An unattended session adds --permission-prompts none, so that Claude Code denies a prompt that nobody can answer. The briefing of the work unit goes into CLAUDE.md (ClaudeCodeFiles).

Every stream process starts with -p --input-format stream-json --output-format stream-json --verbose (§TPN-4).

See also octomy::llmsession::StreamSession.

In this section