feat: add OpenCode setup docs + E2E config validation tests (v0.6.9)#54
Merged
Conversation
Adds Option D (OpenCode) to Quick Start section of README.md: - Config snippet using correct OpenCode format (mcp key, type:local, environment block) - Diff table vs Claude Code showing key differences - Docker/container variant with IRIS_CONTAINER - .iris-agentic-dev.toml callout for project-local config - check_config verification step Two new E2E tests in test_e2e.rs: - e2e_opencode_setup_follows_readme: simulates noob following README verbatim, validates JSON snippet, launches binary with only the documented env vars, calls check_config to verify live IRIS connection - e2e_opencode_docker_snippet_is_valid_json: validates Docker variant JSON Both snippet constants (OPENCODE_README_SNIPPET, OPENCODE_DOCKER_README_SNIPPET) are the literal README text — any typo in the docs breaks CI.
Documents the data-loss gotcha from docker stop without graceful IRIS shutdown: tables exist but rows are 0. Covers the fix in iris-devtester 1.18.1+ (__exit__ calls stop_gracefully()), docker-compose patterns, Kubernetes PreStop hook, and why stop_grace_period alone is not enough.
Based on Jochen Deubner's testing feedback: - Atelier Recurse=0 is the most common setup issue - OpenCode GUI beta on Windows doesn't trigger MCP tools (CMD/TUI works) - WSL2 users need Windows binary when IRIS is on the Windows host - Added verbose logging diagnostic instructions
… wsl.exe workaround Jochen Deubner reported iris-agentic-dev 'failed' in OpenCode Windows GUI when using Linux binary path. Root cause: Windows process can't exec ELF. Adds: - Table showing Windows GUI vs WSL2 TUI configurations - Explicit warning about Linux binary in Windows GUI - wsl.exe workaround for Windows config pointing to Linux binary - Note that mirrored networking makes localhost work transparently
cls_text was a required parameter but was never used in the implementation. Callers (like the arno/ivg session) were avoiding the tool thinking the 46KB class file was 'too large' — it would have been accepted but ignored. Making cls_text optional (with #[serde(default)]) fixes the confusion. Reordered struct so cls_name comes first (it's the only required field).
…is also set (v0.6.11) When host= and container= are both in .iris-agentic-dev.toml (split-brain setup: HTTP to one server, docker exec to another), the container= field was silently ignored because the host= branch returned early without setting IRIS_CONTAINER. Fix: set IRIS_CONTAINER from container= before returning the HTTP connection. This makes the 'HTTP for Atelier tools, docker exec for iris_execute' pattern work correctly without needing to restart the MCP server.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test plan
e2e_opencode_setup_follows_readmepasses — simulates new user following README, validates snippet JSON, launches binary with only the documented env vars, callscheck_config→connected: truee2e_opencode_docker_snippet_is_valid_jsonpasses — validates Docker variant snippet is valid JSON with required keys