From 3bb1d43f8bb16444596365496f78395da8f1e6b7 Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Wed, 6 May 2026 10:48:19 -0500 Subject: [PATCH] fix(doctor): make generated ids unique per call (#1330) --- cli/src/doctor/helpers.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/cli/src/doctor/helpers.rs b/cli/src/doctor/helpers.rs index 7fc472a..30c168f 100644 --- a/cli/src/doctor/helpers.rs +++ b/cli/src/doctor/helpers.rs @@ -2,6 +2,7 @@ use std::fs; use std::path::Path; +use std::sync::atomic::{AtomicU64, Ordering}; use std::time::SystemTime; use serde_json::Value; @@ -81,15 +82,19 @@ pub(super) fn parse_json_file(path: &Path) -> Result<(), String> { Ok(()) } -/// Generate a unique `doctor--` id for JSON command envelopes. +/// Generate a unique `doctor---` id for JSON command envelopes. pub(super) fn new_id() -> String { + static NEXT_ID: AtomicU64 = AtomicU64::new(0); + let sequence = NEXT_ID.fetch_add(1, Ordering::Relaxed); + format!( - "doctor-{}-{}", + "doctor-{}-{}-{}", std::process::id(), SystemTime::now() .duration_since(SystemTime::UNIX_EPOCH) .map(|d| d.as_micros()) - .unwrap_or(0) + .unwrap_or(0), + sequence ) }