-
Notifications
You must be signed in to change notification settings - Fork 0
Smoke Tests and Live Verification
This page lists the checks that catch problems unit tests can miss, especially reverse-proxy, Cloudflare, Claude.ai, ChatGPT, and AgentReady drift.
Run from the repository root:
go test ./...
go test -race ./...
go vet ./...
staticcheck ./...
govulncheck ./...
gitleaks detect --no-banner --redact --source .Run after deploy:
SMOKE_LIVE=1 ./scripts/check-agent-ready.sh
SMOKE_LIVE=1 ./scripts/smoke-agent-interop.shExpected:
- OAuth authorization server metadata returns valid JSON.
- Protected resource metadata returns valid JSON.
- MCP server card returns valid JSON.
-
/auth.mdcontains the agent registration metadata. - Anonymous
/mcpbehavior does not expose write/admin tools. -
resourceishttps://mcp.arleo.eu/mcp. -
issuerishttps://mcp.arleo.eu.
curl -sk https://mcp.arleo.eu/.well-known/oauth-authorization-server | jq .
curl -sk https://mcp.arleo.eu/.well-known/oauth-protected-resource | jq .
curl -sk https://mcp.arleo.eu/.well-known/oauth-protected-resource/mcp | jq .
curl -sk https://mcp.arleo.eu/.well-known/mcp/server-card.json | jq .
curl -sk https://www.arleo.eu/auth.md | grep -E 'agent_auth_metadata|identity_assertion|credential_types_supported'Do not treat HTTP 302 as success by itself. Inspect the Location header:
curl -skI "https://mcp.arleo.eu/authorize?response_type=code&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=write&state=test&code_challenge=CHALLENGE&code_challenge_method=S256"(scope=content.read+content.write+site.admin still works too — accepted as legacy compatibility aliases, all normalizing to write since #450 — but scope=write is the canonical form to use going forward.)
Success redirects with:
?code=...
Failure redirects with:
?error=...
Do not paste real authorization codes or bearer tokens into issues, wiki pages, logs, or screenshots.
After reconnecting Claude.ai:
- The connector should complete OAuth without
invalid_scope. - Read-only UX labels in Claude.ai do not mean anonymous access — but since #450, most read-only tools genuinely are anonymous now (see below).
- A
write-scoped connector should see the full write/build/admin tool set beyond the read surface. -
Verify SRI integrityrequireswrite. -
Validate siteandValidate front matterare ungated since #450 — they appear even with noAuthorizationheader at all, not just for authenticated callers. If a smoke run shows them missing from an anonymoustools/list, that's a regression of #450, not expected behavior.
After reconnecting ChatGPT:
- The redirect URI must be accepted only if it matches the configured HTTPS host/path policy.
- Unknown redirect hosts must not get the
writescope. - A
write-scoped client should see write/build tools; only a registered client withwritegets them at all.
If a live result contradicts the repo:
- Check OpenResty on the host.
- Check Nginx on the Hugo VM.
- Check Hugo static source files.
- Rebuild Hugo if static files changed.
- Purge only affected Cloudflare URLs if edge cache is stale.
Do not assume a Go server bug until the live route and static source are verified.