# Probe: e2e-smoke # # Playwright-in-process L3 (chat round-trip) + L4 (tool rendering) coverage # across every showcase service on Railway. Discovery source # `railway-services` enumerates services by `namePrefix: "showcase-"`, # excluding the infra services that don't run user-facing demos. # # Each invocation: # - Launches a single headless chromium instance via `playwright`. # - Runs L3 against /demos/agentic-chat (asserts: any non-empty response). # - For services whose registry `demos` array includes `tool-rendering`, # runs L4 against /demos/tool-rendering (asserts: response contains # weather vocabulary from the reference list in d4-chat-roundtrip.ts). # - Returns an aggregate `e2e-smoke:` ProbeResult and side-emits # `chat:` + (when applicable) `tools:` via ctx.writer. # # Schedule: every 15 minutes (`*/15`, matching the `smoke` cadence). # Each L3+L4 tick pulls a real chromium page, but the `max_concurrency` # cap below keeps memory footprint and bandwidth in check while still # catching regressions within a deploy window. # # timeout_ms (180s = 3 minutes) bounds the WHOLE driver invocation. The # driver subdivides internally: 60s page-timeout per level, 2 levels = # 120s worst case, plus chromium launch overhead. 3-minute outer cap # catches pathological stalls without starving siblings. # # max_concurrency (2) caps simultaneous chromium instances per tick. Each # chromium ~= 300MB resident; 2 parallel puts us at ~600MB peak which # fits the orchestrator's Railway footprint. Higher concurrency trades # faster tick completion for OOM risk — keep at 2 unless the container's # memory budget is raised. # # nameExcludes drops infra services that don't expose user demos: # - showcase-aimock (LLM mock upstream) # - showcase-harness (this orchestrator itself) # - showcase-pocketbase (state store) # - showcase-shell (landing / router service) # - showcase-shell-dashboard / -docs / -dojo (auxiliary UI services) kind: e2e_smoke id: d4-chat-roundtrip-e2e schedule: "*/15 * * * *" timeout_ms: 180000 max_concurrency: 2 discovery: source: railway-services filter: namePrefix: "showcase-" nameExcludes: - showcase-aimock - showcase-harness - showcase-pocketbase - showcase-shell - showcase-shell-dashboard - showcase-shell-docs - showcase-shell-dojo # Decommissioned starters — Railway services stopped (PR #4390) - showcase-starter-ag2 - showcase-starter-agno - showcase-starter-claude-sdk-python - showcase-starter-claude-sdk-typescript - showcase-starter-crewai-crews - showcase-starter-google-adk - showcase-starter-langgraph-fastapi - showcase-starter-langgraph-python - showcase-starter-langgraph-typescript - showcase-starter-langroid - showcase-starter-llamaindex - showcase-starter-mastra - showcase-starter-ms-agent-dotnet - showcase-starter-ms-agent-python - showcase-starter-pydantic-ai - showcase-starter-spring-ai - showcase-starter-strands key_template: "d4-chat-roundtrip-e2e:${name}"