Skip to content

feat: add safe native harness setup and removal - #19

Merged
davidrobertson merged 29 commits into
mainfrom
codex/feat/native-harness-setup-remove
Aug 11, 2026
Merged

feat: add safe native harness setup and removal#19
davidrobertson merged 29 commits into
mainfrom
codex/feat/native-harness-setup-remove

Conversation

@davidrobertson

@davidrobertson davidrobertson commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add modular setup and remove lifecycle adapters for Codex, Cursor, VS Code, GitHub Copilot, and Kiro
  • install Codex and the shared Copilot/VS Code plugin through documented native CLIs; return manual-required for Cursor and Kiro where no documented noninteractive install/remove command exists
  • package Codex and Cursor so their native manifests load skills, MCP, and hooks, while keeping the repository-root Agent Plugin valid for Kiro Powers
  • preserve unrelated harness configuration, remove only exact Agent LCM legacy hooks, and report concurrent configuration changes without overwriting them
  • launch npm-provided native CLI shims safely on Windows, with fail-closed PATH lookup and shell-metacharacter rejection
  • add one current manual install guide per harness and update all repository guidance

Root cause corrected

The schema-marked root Agent Plugins manifest takes priority over Codex and Cursor compatibility manifests. That portable format loads skills and MCP but not native hooks. The npm artifact now omits the root manifest so Codex and Cursor select .codex-plugin/plugin.json and .cursor-plugin/plugin.json; the source repository retains the root manifest for Kiro.

Verification

  • npm run typecheck
  • npm test (359 passed; one Windows-only regression skipped on Linux)
  • npm run smoke
  • npm pack --dry-run (native manifests present; root plugin.json absent)
  • real Codex source-versus-packed manifest toggle and packed setup/remove
  • adversarial setup/remove races, symlink and non-regular targets, shared-resource retention, fixed native argv, and stderr-secret suppression
  • GitHub CI run 31506186588: Linux quality, macOS, and Windows all passed; Windows exercised .cmd lifecycle shims and the fail-closed lookup regression
  • exact-SHA goal, code, security, context, manual QA, and runtime-debug reviews all passed for e16d17fd201d21552c4264f9c9fd3c64566b709c

Known native limits

Cursor Marketplace and Kiro Powers installation/removal remain guided manual steps because their current public docs do not provide a stable noninteractive lifecycle command. Single-harness Copilot or VS Code removal retains their shared native plugin by design.

Plan: .omo/plans/native-harness-setup-remove.md
Plan: .omo/plans/native-harness-setup-remove.md
Plan: .omo/plans/native-harness-setup-remove.md
Plan: .omo/plans/native-harness-setup-remove.md
Plan: .omo/plans/native-harness-setup-remove.md
Plan: .omo/plans/native-harness-setup-remove.md
@davidrobertson
davidrobertson marked this pull request as ready for review August 11, 2026 18:27
@davidrobertson
davidrobertson merged commit f60f2ae into main Aug 11, 2026
3 checks passed
@davidrobertson
davidrobertson deleted the codex/feat/native-harness-setup-remove branch August 11, 2026 18:27
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