swarm repositories / source
aboutsummaryrefslogtreecommitdiff
path: root/crates/phone-opus/src/mcp
diff options
context:
space:
mode:
Diffstat (limited to 'crates/phone-opus/src/mcp')
-rw-r--r--crates/phone-opus/src/mcp/service.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/crates/phone-opus/src/mcp/service.rs b/crates/phone-opus/src/mcp/service.rs
index 2baa744..ff25433 100644
--- a/crates/phone-opus/src/mcp/service.rs
+++ b/crates/phone-opus/src/mcp/service.rs
@@ -691,14 +691,18 @@ impl ClaudeSandbox {
struct PersistedConsultPath(PathBuf);
impl PersistedConsultPath {
- fn new(request: &ConsultRequest) -> io::Result<Self> {
+ fn new(request: &ConsultRequest, session_id: Option<&str>) -> io::Result<Self> {
fs::create_dir_all(CONSULT_OUTPUT_ROOT)?;
let timestamp = OffsetDateTime::now_utc()
.format(CONSULT_TIMESTAMP_FORMAT)
.map_err(|error| io::Error::other(error.to_string()))?;
let slug = consult_slug(request.prompt.as_str());
+ let session_slug = session_id.map_or_else(
+ || "session-none".to_owned(),
+ |session_id| format!("session-{}", consult_slug(session_id)),
+ );
Ok(Self(Path::new(CONSULT_OUTPUT_ROOT).join(format!(
- "{timestamp}-{slug}-{}.json",
+ "{timestamp}-{slug}-{session_slug}-{}.json",
Uuid::new_v4()
))))
}
@@ -1270,7 +1274,7 @@ fn persist_consult_output(
result: &str,
envelope: &ClaudeJsonEnvelope,
) -> io::Result<PersistedConsultPath> {
- let path = PersistedConsultPath::new(request)?;
+ let path = PersistedConsultPath::new(request, envelope.session_id.as_deref())?;
let saved_at = OffsetDateTime::now_utc()
.format(&Rfc3339)
.map_err(|error| io::Error::other(error.to_string()))?;