--- id: SMH-ISSUE-7RKFK2JJ type: issue status: resolved title: "CLI reopens fixed session files across invocations" specs: [SMH-SPEC-SPEC0001] --- # CLI reopens fixed session files across invocations ## Symptom Eval always opens `$XDG_DATA_HOME/smith/sessions/run/eval.smh`; RPC always opens sibling `rpc.smh`. Unset XDG data home defaults to `~/.local/share` on Linux. Repeated invocations restore previous history without explicit resume selection. ## Impact Unrelated runs share conversation context and durable history. Eval does not create a distinct named session by default. Concurrent invocations of the same mode contend for the same session lock. ## Evidence Code-path reproduction: two sequential eval invocations with the same data home. ```mermaid sequenceDiagram participant U as Caller participant C as CLI participant S as Session store U->>C: First eval invocation C->>S: Open run/eval.smh S-->>C: New session when file absent C->>S: Append turn history U->>C: Second eval invocation C->>S: Open run/eval.smh again S-->>C: Restore first invocation history C->>S: Append unrelated turn to same session ``` - `smith-cli/src/main.rs:347,389`: fixed eval/RPC filenames. - `smith-cli/src/main.rs:452`: shared sessions/run directory. - `smith/src/config.rs:57`: platform data directory resolution. - `smith-core/src/store.rs:186`: existing header triggers session restoration. Evidence from source inspection; binary reproduction not run. ## Resolution Resolved by unique default session IDs, explicit `--session` resume, and binary e2e coverage for distinct sessions and resume. The original fixed filenames and source evidence remain above as historical context. ## Related contract [Smith Specification: Eval](../../specs/SMH-SPEC-SPEC0001-smith-specification/index.md#eval): auto-create a named session by default. RPC shares the fixed-path behavior; cited contract does not explicitly define default RPC session identity.