Skip to content

feat: add project-scoped OpenCode support - #42

Open
davidrudduck wants to merge 9 commits into
Intelligent-Internet:mainfrom
ExpansionX:feat/opencode-support-a
Open

davidrudduck wants to merge 9 commits into
Intelligent-Internet:mainfrom
ExpansionX:feat/opencode-support-a

Conversation

@davidrudduck

@davidrudduck davidrudduck commented Sep 14, 2026 •

Copy link
Copy Markdown

Summary

  • register OpenCode as a Zenith provider with opencode acp execution and build-mode ACP session setup
  • add project-scoped .opencode/opencode.json MCP host configuration with preservation, idempotency, diagnostics, and conflict handling
  • add OpenCode agent assets, shared skill installation support, package metadata, and PR-A test coverage
  • add audience-specific OpenCode documentation for users, administrators, and developers under docs/opencode-support/

Scope

This PR is limited to OpenCode support PR A: provider registration, project-scoped OpenCode host config, OpenCode agents/skills, documentation, and hermetic/disposable validation. It intentionally does not implement PR B model/effort session options, live OpenCode worker smokes, user-scoped setup, provider billing grants, or PR C terminal-review isolation.

Validation

  • uv run ruff check .
  • uv run mypy src
  • uv run pytest -q -rs -> 283 passed, 7 skipped
  • uv build
  • focused OpenCode/docs follow-up validation: uv run pytest -q tests/test_cli.py tests/test_config.py tests/test_assets.py tests/test_acp_runner.py -> 110 passed
  • disposable OpenCode e2e: zenith init --agent opencode twice, byte-idempotent .opencode/opencode.json, opencode debug config resolves mcp.zenith, opencode mcp list reports zenith connected
  • root opencode.json conflict e2e: init fails clearly, root config hash preserved, remediation text present, canary values not leaked

Notes

  • The 7 skipped tests are opt-in live-provider smoke tests that require explicit env flags/credentials.
  • OpenCode validation used local opencode CLI surfaces and did not run paid/live provider dispatch.
  • PR-B/PR-C behavior is documented as future scope rather than implemented here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant