Added
- Cross-harness trace correlation, both directions. A tool that launches another agent can pass it the current tool span with
child_env()(orcurrent_traceparent()), so the child harness's spans land under that tool call in one trace instead of in a trace of their own — the causal edge a shared session id alone cannot express.LATITUDE_HERMES_EXPORT_TRACEPARENT=1scopes those variables ontoos.environaround each tool call instead, so any subprocess inherits them with no code change; it is off by default becauseos.environis process-wide while Hermes runs each turn on its own thread. In reverse, a Hermes process launched with aTRACEPARENTjoins that trace and reports the inheritedLATITUDE_SESSION_ID, keeping its own session id underhermes.session.id(LATITUDE_HERMES_INHERIT_CONTEXT=0opts out). Joining is capped per process so a long-lived agent cannot grow a trace it does not own without bound. The active span is published under bothTRACEPARENTandLATITUDE_TRACEPARENT, since reads prefer the scoped name and a chained parent's header would otherwise outrank it. Contract:dev-docs/trace-correlation.md.