feat(harness): add OpenClaw, Kimi, Grok, Cursor, and OpenCode user profiles - #467
Merged
Merged
Conversation
…ofiles Extend the slice-1 user-scope profile layer (#465) with the five remaining issue #438 harnesses behind the same sync/doctor/uninstall contract: dry-run default, receipt-based ownership, idempotent sync, and uninstall that removes only Brigade-owned artifacts. - OpenClaw: marked block in the canonical workspace AGENTS.md, ~/.openclaw/skills, existing openclaw MCP adapter. - Kimi Code: capability probe selects ~/.kimi over ~/.kimi-code, with the profile carrying the probed MCP path; new kimi-user adapter (mcpServers JSON) round-trips foreign keys. - Grok CLI: ~/.grok AGENTS.md + skills, existing grok-user adapter. - Cursor: instructions ride the managed plugin/rule/hook surface from cursor_user_cmd (whole-file managed rule + generated plugin/hook artifacts + one managed hooks.json sessionStart entry), existing cursor-user adapter. - OpenCode: ~/.config/opencode AGENTS.md + skills, new opencode-user adapter for the global config. The profile engine gains generated-file and co-owned hook planning on top of the pre-reserved state section; slice-1 Claude/Codex behavior is unchanged. --target all now covers all seven harnesses. Closes #438 Co-Authored-By: Claude <noreply@anthropic.com>
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository: escoffier-labs/coderabbit/.coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
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
Slice 2 of #438, based on latest main and built on the slice-1 profile layer merged in #465. Adds the five remaining user-scope harness adapters behind the same contract and closes #438.
~/.openclaw/workspace/AGENTS.md~/.openclaw/skillsopenclawadapterAGENTS.mdunder probed rootskills/under probed rootkimi-useradapter (mcpServers JSON), probed path~/.grok/AGENTS.md~/.grok/skillsgrok-useradaptercursor_user_cmdbuilders)~/.cursor/skillscursor-useradapter~/.config/opencode/AGENTS.md~/.config/opencode/skillsopencode-useradapter (global config, top keymcp)Design notes
brigade-loop.mdcrule uses whole-file ownership so itsalwaysApplyfrontmatter stays at the top of the file;plugin.jsonand the session-start hook script are generated artifacts;hooks.jsonkeeps exactly one managedsessionStartentry and preserves foreign entries.~/.kimiwhen it exists and falls back to~/.kimi-code; the profile carries the probed MCP path instead of blindly copying the static adapter path._server_targets_harnessaliasesgrok/kimi/opencodeto their*-useradapters, matching the existingcursor/cursor-useralias. Slice-1 Claude/Codex behavior is unchanged (slice-1 suites pass unmodified except the two--target allassertions, which now expect seven profiles).cursor_user_cmdstate (version 1) and profile state (schema_version 2) share~/.cursor/brigade/install-state.json; each refuses the other's schema as a conflict, so they never clobber each other.Contract honored per harness
--writerequired to touch disk.doctorreports drift/conflicts read-only.--target allnow covers all seven harnesses (Pi keeps its own bridge).Tests
New
tests/test_harness_user_scope_slice2.py(48 cases) drives everything through a temp HOME/tmp_path: dry-run vs--write, existing-config preservation, idempotent re-sync, uninstall-only-owned, doctor drift, Kimi probe selection, Kimi MCP foreign-key round-trip, Cursor managed-surface + conflict handling, stdio gate, and MCP uninstall per harness. No test touches the real~/.openclaw,~/.kimi-code,~/.grok,~/.cursor, or~/.config/opencode.Verification (brigade-wired)
Closes #438