feat: Add semble install#176
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests.
🚀 New features to boost your workflow:
|
|
@greptileai review |
Confidence Score: 4/5Safe to merge with one follow-up: the uninstall code path needs an end-to-end test. The installer logic itself is sound and individual helpers are well-tested. The gap is that run("uninstall") is never called end-to-end — the full uninstall flow (remove operations, "not-found" returns through _apply, different UI text, different footer) can silently regress without the test suite catching it. The reviewer specifically asked for e2e coverage of all codepaths, so this missing test is the main concern. tests/test_installer.py — needs a run("uninstall") end-to-end test to match the run("install") test that already exists. Reviews (3): Last reviewed commit: "Fix toml edgecase" | Re-trigger Greptile |
Confidence Score: 3/5The install path works correctly for fresh configs; the uninstall path can corrupt pre-existing configs where semble was not the first entry. The src/semble/installer.py — specifically the Reviews (2): Last reviewed commit: "Group types/vars" | Re-trigger Greptile |
|
@greptileai review this branch again main. Focus on two things:
|
stephantul
left a comment
There was a problem hiding this comment.
Small docs comments, but looks good!
This PR adds a
semble installcommand. It detects installed coding agents and configures semble globally across three integration types (MCP, instructions, sub-agent). We use tree-sitter for json/jsonc parsing so comments in MCP/settings jsons are preserved.Here's what the flow looks like in the terminal on running
semble install(semble uninstallgives the same flow but the reverse (uninstalling whatever is selected)):