M-0: TransportMode + parametric harness ScenarioRunner scaffolding (UQ-5) #92

Open
opened 2026-05-12 19:36:37 +00:00 by KofTwentyTwo · 0 comments
KofTwentyTwo commented 2026-05-12 19:36:37 +00:00 (Migrated from github.com)

Goal

Add TransportMode enum and parametric scenario runner scaffolding to packages/Harness/ to support UQ-5 dual-mode execution.

Scope

  • TransportMode.{inProcessActor, jsonRoundTripWebView}
  • ScenarioRunner.run(_:in:) invokes a scenario closure once per mode
  • Reuses existing RealWKWebViewIntegrationTests infrastructure as the JSON substrate
  • Scaffolding stub only (no real scenarios yet)

Files

  • packages/Harness/Sources/Harness/TransportMode.swift (new)
  • packages/Harness/Sources/Harness/ScenarioRunner.swift (new)

Acceptance

  • swift test --package-path packages/Harness green
  • Stub scenario executes in both modes
  • No @testable import from production targets (UQ-5 mandate harness composes without testable)

Test

A stub scenario ping → pong runs in both .inProcessActor and .jsonRoundTripWebView modes.

Parent epic

#4

Source

.planning/architecture/JARVIS-API-MIGRATION-PLAN.md §2.1 (M-0.3)
.planning/architecture/JARVIS-API-DESIGN-v0.2.md UQ-5 (parametric harness mandatory)

## Goal Add TransportMode enum and parametric scenario runner scaffolding to packages/Harness/ to support UQ-5 dual-mode execution. ## Scope - `TransportMode.{inProcessActor, jsonRoundTripWebView}` - `ScenarioRunner.run(_:in:)` invokes a scenario closure once per mode - Reuses existing `RealWKWebViewIntegrationTests` infrastructure as the JSON substrate - Scaffolding stub only (no real scenarios yet) ## Files - `packages/Harness/Sources/Harness/TransportMode.swift` (new) - `packages/Harness/Sources/Harness/ScenarioRunner.swift` (new) ## Acceptance - [ ] `swift test --package-path packages/Harness` green - [ ] Stub scenario executes in both modes - [ ] No `@testable import` from production targets (UQ-5 mandate harness composes without testable) ## Test A stub scenario `ping → pong` runs in both `.inProcessActor` and `.jsonRoundTripWebView` modes. ## Parent epic #4 ## Source `.planning/architecture/JARVIS-API-MIGRATION-PLAN.md` §2.1 (M-0.3) `.planning/architecture/JARVIS-API-DESIGN-v0.2.md` UQ-5 (parametric harness mandatory)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/Jarvis#92