You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A unified API is only the first layer of runtime portability. Builders need two stronger guarantees:
they can change the selected Runtime/Harness for a new execution without rewriting Session/Thread, file, permission, cancellation, or event handling; and
when an execution fails, they can reconstruct the failure down to the concrete Agent step instead of falling through to unrelated runtime-specific logs.
Mosoo already exposes normalized Run events, stable toolCallId values, Thread files, permission requests, cancellation, runtime diagnostics, and W3C trace context. The current docs describe these capabilities, but do not make their end-to-end correlation and cross-Harness parity one explicit acceptance boundary. A Harness can therefore satisfy the top-level API while lifecycle semantics or diagnostic depth still drift.
Public events should remain safe and stable, and private runtime diagnostics should remain access-controlled. The missing piece is a shared identity and correlation contract between them, not exposing raw logs through the public API.
Proposal
Treat each Run as one observable boundary across every admitted Harness:
Every lifecycle event, permission request/decision, file or artifact created or consumed by the Run, cancellation transition, terminal result, and attributable diagnostic record carries the Run identity.
Agent steps use stable correlation identities and causal ordering. Reuse existing identities such as toolCallId, file IDs, and trace context where they already cover the boundary.
Given a Run, an authorized Builder can inspect one ordered activity timeline and follow a failure from the public-safe step to the relevant private diagnostic/log context.
Record the resolved Runtime/Harness/version and frozen execution inputs needed to compare two executions.
Add one cross-Harness conformance scenario that keeps the task, Environment, resources, and permissions fixed while changing only the Runtime/Harness selection.
This should extend the existing event and observability substrate rather than introduce a second tracing system.
Acceptance criteria
A caller can run the same supported task on at least two admitted Harnesses and change only the Runtime/Harness selector; Session/Thread, file, permission, cancellation, and event handling remain unchanged.
Every Run exposes its requested and resolved Runtime/Harness/version and frozen Environment/resource identity.
Tool activity, permission requests and decisions, file/artifact records, cancellation, failures, and terminal state can be correlated to the Run and, when applicable, a stable Agent step.
Cancellation shows both the request and the observed terminal outcome; uncertain external side effects remain explicit rather than being reported as safely rolled back.
An authorized Builder can reconstruct an ordered causal timeline for a failed Run and navigate from a normalized activity to the relevant redacted diagnostic context.
Public events do not expose raw provider credentials, secrets, private runtime payloads, or unrestricted logs.
A conformance test proves lifecycle and observability parity across at least two Harnesses, including success, permission, file output, cancellation, and failure paths.
A Harness that cannot meet a required capability fails readiness before execution with an actionable gap.
Non-goals
Deterministic re-execution or replaying side effects.
Switching Harnesses mid-Run or resuming one Harness's native state in another.
Turning operational visibility into a compliance audit log.
Publishing raw runtime logs through the public API.
Normalize only the top-level API: simpler, but leaves lifecycle drift and runtime-specific incident diagnosis to every integrator.
Keep one observability view per Runtime: preserves native detail, but makes painless Runtime switching and comparable operations impossible.
Compatibility and migration
This is additive. Existing public event shapes remain compatible; privileged diagnostic details stay behind existing owner authorization and redaction boundaries.
Contribution
I can provide product feedback.
Checklist
I searched existing issues before opening this request.
I described the problem before the proposed solution.
Area
Runtime
Problem
A unified API is only the first layer of runtime portability. Builders need two stronger guarantees:
Mosoo already exposes normalized Run events, stable
toolCallIdvalues, Thread files, permission requests, cancellation, runtime diagnostics, and W3C trace context. The current docs describe these capabilities, but do not make their end-to-end correlation and cross-Harness parity one explicit acceptance boundary. A Harness can therefore satisfy the top-level API while lifecycle semantics or diagnostic depth still drift.Public events should remain safe and stable, and private runtime diagnostics should remain access-controlled. The missing piece is a shared identity and correlation contract between them, not exposing raw logs through the public API.
Proposal
Treat each Run as one observable boundary across every admitted Harness:
toolCallId, file IDs, and trace context where they already cover the boundary.This should extend the existing event and observability substrate rather than introduce a second tracing system.
Acceptance criteria
Non-goals
Related
Alternatives considered
Compatibility and migration
This is additive. Existing public event shapes remain compatible; privileged diagnostic details stay behind existing owner authorization and redaction boundaries.
Contribution
I can provide product feedback.
Checklist