A native app journey,
applied through Reflow.
Source-installed SwiftVM already runs application journeys through reflow plan and reflow apply. This excerpt follows the QA wrapper: stage the campaign and executor by digest, check out the application source in the guest, then run the named journey.
The scenario shown is shortened to waiting for the plot and capturing launched. The wrapper also prepares the test app, runs the MacOSApp guest executor, checks its outcomes and exports evidence. Input digests and the export prefix are declared flow inputs supplied for the run.
Compare what the journey exercised.
Reflow QA has compared launch and zoom/back captures and ingested both Go and Swift coverage from the exported profiles. Your agent can relate a visible change to the code the instrumented journey exercised. Coverage establishes execution; it does not establish every application state.
SwiftVM is available for development through a private source checkout and a pinned source-catalog installation. It requires a provisioned, sealed macOS template, a private binding and staged inputs. It is not bundled with the public CLI. The MacOSApp guest executor inherits Accessibility and Screen Recording grants from the template’s guest agent, checked in each clone.
Current guest_run flow · QA excerptSwiftVM
vm.guest_run (
inputs=json(
[{"name":"campaign.tar","sha256":"${inputs.campaignTarSha256}"},
{"name":"pin.bundle","sha256":"${inputs.pinBundleSha256}"},
{"name":"guest-exec.tar","sha256":"${inputs.guestExecTarSha256}"},
{"name":"guest-journey.sh","sha256":"${inputs.guestJourneySha256}"}]
)
files=json(
{"scenario.json":{"version":1,"actions":[
{"do":"waitFor","selector":{"identifier":"gigahog.plot"},"state":"present"},
{"do":"capture","name":"launched"}]}}
)
jobs=json(
[{"name":"checkout","timeoutMs":300000,
"argv":["/usr/bin/git","clone","-q","inputs/artifacts/pin.bundle","src"]},
{"name":"journey","timeoutMs":1200000,
"argv":["/bin/sh","inputs/artifacts/guest-journey.sh","src",
"inputs/artifacts/campaign.tar","inputs/artifacts/guest-exec.tar",
"inputs/files/scenario.json","J01-launch-root","scanned","1","1","0","out"]}]
)
exportName="${inputs.exportPrefix}-j01-launch-root"
timeoutMs=1500000
)
From the source-installed QA wrapper, with a shortened scenario. Requires its staged app, executor and journey script, declared inputs, and a private VM binding. This page does not execute the flow.