Namespace Cress.Studio.Services
Classes
- RecordingReplayResult
The outcome of replaying a previously recorded flow file in-process.
- RecordingResult
The output of a completed recording session.
- RecordingTargetInfo
Information about a process that can be recorded.
- RunMetricsService
Aggregates run history into structured metrics: suite pass rates, per-flow percentiles, per-step timing, MTTR, and time-bucketed trend points.
- StudioRecorderService
Wraps RecordingSession (desktop) and WebRecorderClient (web) and exposes recording state for the Blazor Studio. Registered as
Scoped— one instance per Blazor circuit (one per browser tab). Thread-safe: UIA events fire on COM background threads; all state writes are guarded by Interlocked / volatile / Lock.
- WebRecorderClient
Spawns the Node.js web recorder (
node bin/record.mjs --stream) as a child process and translates its JSON stdout stream into RecordedEvent objects.Approach: direct child process (option a) — Studio spawns Node and reads JSONL from stdout. One JSON line is emitted per event. The C# side parses each line and raises EventCaptured. StopAsync() sends SIGINT (Process.Kill on Windows) and waits for the process to exit.
Interfaces
- IStudioRecorderService
Testability seam for the studio-side recording service. The real implementation wraps RecordingSession; tests substitute a mock.