Skip to content

feat: Add zcode support#218

Merged
Pringled merged 4 commits into
mainfrom
add-zcode-support
Jul 6, 2026
Merged

feat: Add zcode support#218
Pringled merged 4 commits into
mainfrom
add-zcode-support

Conversation

@Pringled

@Pringled Pringled commented Jul 3, 2026

Copy link
Copy Markdown
Member

This PR adds support for zcode. ZCode nests its MCP servers two levels deep (mcp.servers) instead of flat top-level key like every other supported agent, so merge_json_member/remove_json_member are generalized to accept a dot-separated section key and create missing intermediate objects on demand. Closes #217.

@codecov

codecov Bot commented Jul 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Files with missing lines Coverage Δ
src/semble/installer/agents.py 100.00% <ø> (ø)
src/semble/installer/config.py 100.00% <100.00%> (ø)
src/semble/version.py 100.00% <100.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@greptile-apps

greptile-apps Bot commented Jul 3, 2026

Copy link
Copy Markdown

Confidence Score: 5/5

This looks safe to merge after a small compatibility cleanup.

  • The ZCode install path and nested MCP config shape are covered by the changed tests.
  • Existing flat MCP keys still resolve as single path segments.
  • Literal dotted JSON section names now behave differently, but this is a narrow compatibility case.

src/semble/installer/config.py

Reviews (1): Last reviewed commit: "Cleanup" | Re-trigger Greptile

"""Add or update `section_key.member_key = value` in a JSON5 config file, preserving comments and formatting."""
existed = path.exists()
text = path.read_text(encoding="utf-8") if existed else ""
section_path = section_key.split(".")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Literal Dotted Keys Become Paths

When an existing JSON config contains a literal top-level key like "mcp.servers", this split makes merge_json_member look for mcp then servers instead of updating that member. The install then writes a second nested mcp.servers tree and leaves the original entry behind, so callers using literal dotted section names can get duplicate or stale MCP config.

@Pringled Pringled requested a review from stephantul July 3, 2026 14:33
@Pringled Pringled merged commit 6f2db52 into main Jul 6, 2026
16 checks passed
@Pringled Pringled deleted the add-zcode-support branch July 6, 2026 06:38
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.

Support new AI-tool

2 participants