Environment for the spawned tracedecay dashboard process. `subprocess.Popen` inherits by default, but constructing the child env explicitly makes the Hermes profile contract visible and stable: the spawned Rust server must resolve `HERMES_HOME` and any `TRACEDECAY_*` overrides exact
()
| 192 | |
| 193 | |
| 194 | def _dashboard_env() -> dict[str, str]: |
| 195 | """Environment for the spawned tracedecay dashboard process. |
| 196 | |
| 197 | `subprocess.Popen` inherits by default, but constructing the child env |
| 198 | explicitly makes the Hermes profile contract visible and stable: the |
| 199 | spawned Rust server must resolve `HERMES_HOME` and any `TRACEDECAY_*` |
| 200 | overrides exactly like the wrapper process did. |
| 201 | """ |
| 202 | env = os.environ.copy() |
| 203 | for key, value in os.environ.items(): |
| 204 | if key == "HERMES_HOME" or key.startswith("TRACEDECAY_"): |
| 205 | env[key] = value |
| 206 | return env |
| 207 | |
| 208 | |
| 209 | def _spawn_dashboard() -> str: |