Client E2E Harness
Language
- Go and shell scripts.
Runtime Context
- Client-side E2E runner for validating client/server integration.
Purpose
- Loads E2E configuration and journey specs, creates server-side E2E runs, executes journeys, writes JSONL logs, and submits results.
Key Files
packages/client/scripts/e2e/runpackages/client/scripts/e2e/run_all_suitespackages/client/scripts/e2e/scaffoldpackages/client/scripts/e2e/main.gopackages/client/scripts/e2e/config.example.yamlpackages/client/scripts/e2e/journeys/*.yamlpackages/client/internal/e2e/api.gopackages/client/internal/e2e/runner.gopackages/client/internal/e2e/journey.gopackages/client/internal/e2e/journey_executor.gopackages/client/internal/e2e/selector.gopackages/client/internal/e2e/runtime_scripts.gopackages/server/lib/nixstasis/e2e.ex
Public Interfaces
- CLI scripts:
scripts/e2e/runscripts/e2e/run_all_suitesscripts/e2e/scaffold
- Go E2E package interfaces:
api.goAPI client for/e2eendpoints.runner.gorun orchestration.journey_executor.goaction execution and JSONL log emission.selector.gosuite/journey selection.
Dependencies
Internal
internal/e2einternal/transportinternal/script- Server E2E API and configuration.
External
- YAML parsing through
go.yaml.in/yaml/v3. - Runtime container fallback mentioned in
packages/client/README.md: Apple Container, Docker, then Podman for non-Linux runtime E2E.
Client-Server Interaction Details
- Creates runs through
POST /e2e/runs. - Uses
X-E2E-Protocol-Version. - Fetches suite catalog through
GET /e2e/suites. - Submits journey outcomes through
POST /e2e/runs/:id/results. - Logs can be inspected through
GET /e2e/runs/:id/results/:journey_id/log.
Traceable references:
README.md:53-225packages/client/README.md:42-114packages/client/internal/e2e/api.gopackages/client/internal/e2e/runner.gopackages/client/internal/e2e/journey_executor.go