8 Commits

Author SHA1 Message Date
Austin Horstman
8cfa9c9514 github-copilot-cli: reuse empty settings evaluation
The MCP-only case already evaluates an empty settings configuration.
Check its activation output there instead of repeating the evaluation,
while retaining the separate mutable-empty and file ownership cases.
2026-10-04 09:16:29 -05:00
Austin Horstman
d2f65d77f7 github-copilot-cli: clarify mutable transitions and cover ownership
Check effective file overrides, trust-state parsing, and custom paths without changing the opt-in default. Describe byte-identical relinking accurately during the filename migration.
2026-10-04 09:16:29 -05:00
Austin Horstman
fafaa4d767 github-copilot-cli: add mutableSettings option
Copilot CLI replaces settings.json when it saves a setting, for example
after changing the model or theme from inside the CLI. With a linked
file that replaces the link, and the next activation reports a
collision.

Add an opt-in mutableSettings option that merges the declared settings
into a writable settings.json after linkGeneration with
mkImpureConfigMerger instead of linking it. Existing files are read as
JSON5, since Copilot CLI accepts comments there. Declared values take
precedence, keys later removed from the settings stay in the file, and
comments and formatting are not preserved. The default still links the
file.

Turning the option off links the file again. mkImpureConfigCleanup
removes a merged copy Copilot CLI has not changed so the link can
replace it; a changed one is reported as a collision.

Mention the option in the news entry and release note as the way to
keep a settings.json Copilot CLI already wrote.
2026-10-04 09:16:29 -05:00
Austin Horstman
5d3e8eea68 github-copilot-cli: write settings to settings.json
Since Copilot CLI 1.0.35, user settings live in settings.json and
config.json holds internal state. On startup, 1.0.88 moves user keys
out of a Home Manager config.json into settings.json and rewrites
config.json as a regular file, replacing the link, so the next switch
collides on config.json.

Link the declared settings as settings.json instead and stop managing
config.json, including the firstLaunchAt workaround that only existed
for it. A read-only settings.json link survives startup; Copilot CLI
replaces it only when it saves a setting.

Copilot CLI drops trusted_folders from settings.json and moves
trustedFolders into its own state in config.json, rewriting
settings.json and so replacing a linked file. Leave both keys out of
the file, warn when either is set, and do not manage the file when
they are the only settings. Document the canonical allowedUrls and
deniedUrls names.

The old config.json link is removed by linkGeneration when it still
points into a generation; a regular file left by Copilot CLI stays for
it to manage. The news entry and release note tell users whose Copilot
CLI already wrote a regular settings.json to remove it before
switching, since the new link would collide with it.
2026-10-04 09:16:29 -05:00
Austin Horstman
dca466f132 github-copilot-cli: avoid IFD for path inputs
Validate derived agent and skill directories during builds and normalize derived skill files without evaluation-time filesystem reads.
2026-08-16 19:46:12 -05:00
Austin Horstman
edf3f59954 github-copilot-cli: add lsp server support 2026-05-01 12:40:55 -05:00
Austin Horstman
feda41500e github-copilot-cli: add context, agents, and skills
Add support for managing Copilot CLI global instructions via programs.github-copilot-cli.context, written to copilot-instructions.md under COPILOT_HOME.

Also manage custom agents and skills from inline definitions, file paths, and directories, with focused tests and a news entry covering the new options.
2026-05-01 12:06:19 -05:00
Josef Hofer
503480e513 github-copilot-cli: add module 2026-04-29 16:37:13 -05:00