WILIX Logo

Wilpy — staging E2E checklist (P0)

Manual acceptance on staging after deploy of feat/wilpy-agent-p0.
Admin env: /one/docs/admin/wilpy-env · Design: Wilpy P0 spec

Канон: wilix-site/content/one/docs/admin/wilpy-e2e-checklist.md (этот файл).

Prerequisites

  • Chart deployed with WILPY_DATABASE_URL, temporal.address, dashboard.wilpyWorker.enabled: true
  • Temporal namespace wilpy exists on self-hosted frontend
  • Wilpy sandbox images built and pushed (wilix/wilpy:clean, :project); Helm SF_IMAGE_WILPY_* points at registry
  • SANDBOX_PROVIDER=daytona, DAYTONA_API_KEY set
  • PLATFORM_ORGANIZATION_ID set (interim tenant mapping)
  • At least one Virtual MCP Server attached to a team the test user can use
  • Settings → Platform → LLM: at least one enabled provider + model; mark one as default
  • Test user can view default model (public or ACL); private model without ACL must not appear in Wilpy picker

1. Recipe + session create

  • Dashboard → Recipes → New recipe, agentType = Wilpy (first in list)
  • Set image kind project (or clean for empty workspace)
  • Attach hosted MCP server(s) from VS; save recipe
  • Launch session from recipe; sandbox reaches running (no relay phase failure in agents-api logs)
  • Session row shows agentType=wilpy; wilpy_session_id populated in DB
  • agents-api log: wilpy session API mounted at /api/wilpy/*
  • wilpy-worker log: Wilpy Temporal worker bootstrapped

2. Chat embed

  • Open session page; Wilpy chat UI renders (not ACP transcript rail)
  • Send a user message; assistant turn completes (SSE/stream)
  • Long toolbox turn (>60s) stays connected (nginx /api/agents-proxy/ has 3600s + buffering off)
  • No errors in browser console for /api/wilpy/* or chat-ui bundle

2b. LLM catalog + picker

  • Wilpy chat model picker lists models from platform catalog (not hardcoded env provider)
  • Private model without ACL is hidden from picker for test user
  • Recipe with modelRef pin: new session uses pinned model on first turn (check worker resolve logs or response metadata)
  • Change model in picker mid-session; next turn uses selected model
  • User without ACL on pinned private model: turn fails gracefully (llm_model_forbidden / unavailable tool path — not worker crash)

3. Toolbox — read + bash

  • Prompt that triggers read file in /workspace (or recipe git checkout path) — tool succeeds
  • Prompt that runs shell (e.g. git status, ls) — tool succeeds with stdout in tool result
  • Sandbox shell page (if enabled) opens PTY on wilpy sandbox

4. Stop sandbox → MCP only degrade

  • With an active wilpy session, stop the sandbox (session rail or sandboxes list)
  • Session stays active (not hard-failed); hosted MCP tools still callable
  • Prompt requiring remote sandbox tool returns toolbox_unavailable (or equivalent) in tool result only
  • Transcript / system prompt does not mention sandbox stopped or inject sandbox status
  • MCP remint occurred (check agents-api logs: wilpy session patch after stop)

5. Wake sandbox

  • Start/wake stopped sandbox from UI
  • Wilpy session receives updated toolbox URL (patch in logs)
  • Remote read/bash tools work again on next turn

6. ACP regression (opencode / cursor)

  • Create opencode session on existing recipe — relay starts, chat works
  • Create cursor session — relay + vendor CLI unchanged
  • Permission / cancel / reattach flows unchanged for ACP agents

Sign-off

CheckTesterDateNotes
1–3 Create + chat + toolbox
2b LLM catalog / ACL / picker
4–5 Degrade + wake
6 ACP regression

Pass criteria: all sections checked; no wilpy-specific relay errors; ACP agents unaffected.

WILIX Logo
© 2025 WILIX · С любовью к пользователям
ООО "ВИЛИКС" ИНН: 2308266448 ОГРН: 1192375046819