π«π· Version franΓ§aise
See also: ADR-010 Β· Orkeon Studio Β· Back to the index
ADR-011 β The Aspire dashboard is the cross-platform observability surface; there is no web Studio
Status: Accepted Β· Date: 2026-09-11
Β· Scope: src/hosting/Orkeon.Hosting.Aspire, src/packaging/Orkeon.Hosting.Aspire, Orkeon.Hosting (telemetry activation), Orkeon.Studio.Wpf
Context
Two facts sat side by side. Orkeon.Studio.Wpf is the only project targeting
net10.0-windows: the desktop Studio β launch, watch, capture β exists for Windows alone,
and the question of a web Studio came up every time the platform list did. And the runners
carried a complete OpenTelemetry plumbing that exported nothing: orkeon run and
orkeon-host built their host with the parameterless AddOrkeonInfrastructure() (no
telemetry section), never started the host (so OpenTelemetry's hosted service never
created the providers), and ignored the standard OTEL_EXPORTER_OTLP_ENDPOINT β a
collector had to be named in Orkeon's own settings.
Meanwhile .NET Aspire ships, in every AppHost, a dashboard that renders traces, metrics and structured logs of any process that speaks OTLP β cross-platform, maintained by Microsoft, already open on the machine of the developer the README now targets.
Decision
- The runners export OpenTelemetry by the standard contract.
RunnerHostregisters telemetry from the settings and honoursOTEL_EXPORTER_OTLP_ENDPOINT(with the protocol and headers the exporter reads itself) for traces, metrics and logs; it resolves the tracer and meter providers after building the host, since the runners never start it. Measured: with the environment variable alone, a quickstart run sendsv1/traces(invoke_agent Scribe,chat llama3.2:1b,execute_tool file_writewith theirgen_ai.*attributes),v1/metricsand β at verbosity 1 βv1/logs. Orkeon.Hosting.Aspireis the AppHost integration, a separate package onOrkeon+Aspire.Hosting(PUB-25 wrapper, ninth lineup id):AddOrkeonHost(the daemon) andAddOrkeonCrewRun(one run) as executable resources with the settings, mounts andORKEON_environment an operator would pass by hand,.WithOtlpExporter()applied so the dashboard receives the run. Verified: an AppHost launched the quickstart crew as a resource, the crew wroteout/hello.md, Aspire handed the process the OTLP endpoint (pinned by a launch-free test on the evaluated environment).- The Aspire dashboard is the observability surface for every platform. No web Studio
will be built.
Orkeon.Studio.Wpfstays what it is β a Windows desktop application for launching, watching and capturing β and gains no web twin; what a web Studio would have shown (a run's spans, tokens, logs) the dashboard already shows, for anyone, with no code to maintain here. The observability half of the "Windows-only Studio" concern is closed by this decision; the launch half stays desktop.
Consequences
- Any OTLP backend, not only Aspire, receives a run without Orkeon-specific settings: Langfuse, Honeycomb, Application Insights, an OpenTelemetry Collector.
- Telemetry is now on in the runners (an OpenTelemetry tracer provider listens to the
Orkeon.*sources) even without an exporter; spans are created and dropped. The cost is a few allocations per LLM call; the benefit is that an exporter needs no restart to attach. - The AppHost example (
examples/aspire/AppHost/) needsorkeonon the PATH orORKEON_CLI; the dashboard is Aspire's, its login token printed by the AppHost. A screenshot of the dashboard with a run belongs indocs/assets/once one is taken on a workstation β it was not taken in the session that made this decision.