summaryrefslogtreecommitdiffstats
path: root/debug/risc-v-gsp-rm-vm/greeneye/record.py
diff options
context:
space:
mode:
Diffstat (limited to 'debug/risc-v-gsp-rm-vm/greeneye/record.py')
-rw-r--r--debug/risc-v-gsp-rm-vm/greeneye/record.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/debug/risc-v-gsp-rm-vm/greeneye/record.py b/debug/risc-v-gsp-rm-vm/greeneye/record.py
index 91c7fb5..b02de26 100644
--- a/debug/risc-v-gsp-rm-vm/greeneye/record.py
+++ b/debug/risc-v-gsp-rm-vm/greeneye/record.py
@@ -11,6 +11,7 @@ from __future__ import annotations
import json
import os
import time
+import uuid
import zlib
FORMAT = "greeneye-session/1"
@@ -49,8 +50,12 @@ class Recorder:
@classmethod
def new(cls, *, base: str | None = None, name: str = "session", meta: dict | None = None) -> "Recorder":
base = base or os.environ.get("GREENEYE_DUMPS") or os.path.join(os.getcwd(), "dumps")
+ os.makedirs(base, exist_ok=True)
stamp = time.strftime("%Y%m%d-%H%M%S")
- return cls(os.path.join(base, f"{stamp}-{name}"), name=name, meta=meta)
+ # A unique infix keeps concurrent sessions (tests, agents, CLI runs)
+ # from sharing one events.jsonl while the name stays the final suffix.
+ unique = uuid.uuid4().hex[:8]
+ return cls(os.path.join(base, f"{stamp}-{unique}-{name}"), name=name, meta=meta)
# -- writing -----------------------------------------------------------