Skip to content

[codex] add copilot support#34

Merged
Jercik merged 1 commit intomainfrom
codex/add-copilot-support
Apr 7, 2026
Merged

[codex] add copilot support#34
Jercik merged 1 commit intomainfrom
codex/add-copilot-support

Conversation

@Jercik
Copy link
Copy Markdown
Owner

@Jercik Jercik commented Apr 6, 2026

Summary

  • add copilot as a first-class harness for globalOverrides
  • sync Copilot CLI global instructions to ~/.copilot/copilot-instructions.md
  • update sample config, docs, and tests to reflect Copilot CLI support

Why

Copilot support needed to be modeled explicitly instead of relying on implicit compatibility. The implementation now follows the Copilot CLI instruction loading documented in the adjacent research docs.

Validation

  • pnpm test
  • pnpm typecheck
  • pnpm lint

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Approach Review: Approach looks good. Adding copilot as a new entry in the existing HARNESS_REGISTRY is the natural extension point — the registry pattern was designed for exactly this kind of addition. No alternative approach to suggest.


Approach review by Claude (opus)

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Approach Review: approach looks good. Modeling Copilot as a first-class harness is consistent with the existing registry-based design for tool-specific global targets, and Copilot CLI’s user-level instructions use a distinct official path (~/.copilot/copilot-instructions.md), so this does not look like unnecessary complexity or a missed simpler abstraction.


Approach review by Codex CLI (gpt-5.4)

Copy link
Copy Markdown
Owner Author

@Jercik Jercik left a comment

Choose a reason for hiding this comment

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

Approach Review: approach looks good


Approach review by Copilot (gpt-5.4)

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Summary: No issues found.


Code review by Codex CLI (gpt-5.4)

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Summary: No issues found. Clean, well-scoped addition that follows existing patterns consistently across registry, config, tests, and docs. Copilot CLI target path verified against official GitHub docs.


Code review by Claude (opus)

gemini: { target: "~/.gemini/AGENTS.md" },
opencode: { target: "~/.config/opencode/AGENTS.md" },
codex: { target: "~/.codex/AGENTS.md" },
copilot: { target: "~/.copilot/copilot-instructions.md" },
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

ℹ️ Info: Verified that ~/.copilot/copilot-instructions.md is the correct path for Copilot CLI user-level instructions per GitHub docs. Good.

Comment thread src/core/sync.test.ts

beforeEach(() => {
vi.clearAllMocks();
vi.mocked(fsPromises.lstat).mockRejectedValue(
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

ℹ️ Info: This beforeEach lstat mock reset is a good defensive addition. vi.clearAllMocks() clears call history but technically preserves mock implementations — however, re-establishing the default explicitly here makes the test setup self-documenting and guards against any mockResolvedValueOnce queue leakage between tests. Nice housekeeping bundled with this PR.

const paths = actionsArgument.map((action) => action.path);
expect(paths.some((p) => p.endsWith("/.claude/CLAUDE.md"))).toBe(true);
expect(paths.some((p) => p.endsWith("/.codex/AGENTS.md"))).toBe(true);
expect(
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

ℹ️ Info: Good addition. The test now verifies that all five harnesses (including copilot) receive write actions when global patterns are configured. This catches any future regression where a new harness is added to the registry but accidentally excluded from the sync loop.

@Jercik Jercik marked this pull request as ready for review April 7, 2026 03:50
@Jercik Jercik merged commit 7c718e9 into main Apr 7, 2026
11 of 12 checks passed
@Jercik Jercik deleted the codex/add-copilot-support branch April 7, 2026 03:51
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 7, 2026

🎉 This PR is included in version 5.11.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 56a488cbec

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

gemini: { target: "~/.gemini/AGENTS.md" },
opencode: { target: "~/.config/opencode/AGENTS.md" },
codex: { target: "~/.codex/AGENTS.md" },
copilot: { target: "~/.copilot/copilot-instructions.md" },
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 Badge Respect COPILOT_HOME for Copilot global instructions

The new Copilot harness hard-codes ~/.copilot/copilot-instructions.md, so global sync writes to the wrong location whenever users run Copilot CLI with a non-default config directory (for example by setting COPILOT_HOME, which GitHub’s CLI docs describe as overriding ~/.copilot). In that setup, synced instructions are silently ignored by Copilot CLI even though sync reports the Copilot target was handled.

Useful? React with 👍 / 👎.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant