mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-09 12:17:13 +00:00
b958322400kept the extension catalogue in vars/main.yml as code_agent_extensions, a map from role id to extension id filtered through group_names. That put a catalogue in vars/ where every other role keeps one in meta/addons/, and it knew only Claude. The fact splits three ways now, each owned once. meta/services.yml states whether the host deploys the agent, and is the only place group_names appears. meta/addons/<id>.yml states the extension id and defers its gate to that flag through lookup('config'), which is what the addon contract expects and what test_addon_enabled_no_group_names enforces: an addon testing group_names itself restates a fact the owning role already carries. vars/main.yml reads the addons back, and 00_core.yml loops them. The loop evaluates item.value.enabled | bool in its when rather than filtering with selectattr. An addon's enabled survives as Jinja text, so selectattr would read the string 'False' as true and install an extension the host did not ask for. codex joins Claude. open-vsx.org serves openai.chatgpt from a verified openai namespace as 'Codex, OpenAI's coding agent', so the id resolves on the Open VSX registry that Code - OSS and VSCodium query, not only on the Microsoft one. Cursor and pi stay out, asb958322400recorded: neither Anysphere nor earendil-works publishes there. The two tasks/addons/ hooks are empty because the generic install loop is the whole integration; test_addons_integration_tasks requires the file to exist for a service-coupled addon, and web-app-nextcloud/tasks/addons/deck.yml is the same shape. Verified: 396 lints with 363 subtests, including the three that this change turns green, and the extension ids resolved against the Open VSX API. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2 lines
4 B
YAML
2 lines
4 B
YAML
---
|