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 ofClaudeCodeClient::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 offso 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 intoCLAUDE.md(ClaudeCodeFiles).
Every stream process starts with -p --input-format stream-json --output-format stream-json --verbose (§TPN-4).
See also octomy::llmsession::StreamSession.