diff options
Diffstat (limited to 'debug/risc-v-gsp-rm-vm/greeneye/record.py')
| -rw-r--r-- | debug/risc-v-gsp-rm-vm/greeneye/record.py | 7 |
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 ----------------------------------------------------------- |
