Repository navigation
refactor(registry/coder/modules/aider)!: remove agentapi, tasks and start logic - #1178
Conversation
Module Scorecard Check
|
| Theme | Before | After |
|---|---|---|
| Presentation & Onboarding | 6 / 17 | 12 / 17 |
| Integration | 10 / 25 | 10 / 25 |
| Credential Hygiene | 16 / 20 | 16 / 20 |
| Restricted-Environment | 0 / 20 | 7 / 20 |
| Engineering Quality | 8 / 10 | 10 / 10 |
| Overall | 43 / 100 | 60 / 100 |
Full scorecard for this PR
| Presentation & Onboarding | Agent Integration | Credential Hygiene | Restricted-Environment Readiness | Engineering Quality | Overall |
|---|---|---|---|---|---|
| 12 / 17 | 10 / 25 | 16 / 20 | 7 / 20 | 10 / 10 | 60 / 100 |
Drilldown
Presentation & Onboarding — 12 / 17
| Criterion | Max | Score | Notes |
|---|---|---|---|
| Configuration-mode examples | 12 | 12 | README covers multiple major modes: standalone mode with launcher coder_app, custom provider (ai_provider = "custom" + custom_env_var_name), configuration file (base_aider_config), and the scripts output for sync ordering. Each example has sensible defaults. |
| Visual preview | 5 | 0 | No image, GIF, or video anywhere in the README; only an icon reference. |
Credential Hygiene — 16 / 20
| Criterion | Max | Score | Notes |
|---|---|---|---|
| Secrets marked sensitive | 16 | 16 | api_key is declared sensitive = true in main.tf. All README examples reference var.gemini_api_key, var.anthropic_api_key, var.deepseek_api_key — no inline literal or placeholder keys appear. |
| Non-hardcoded auth path | 4 | 0 | No documented ServiceAccount/IAM/OAuth/AI-Gateway alternative to pasting an API key; the only path shown is a Terraform variable holding the raw key. |
Restricted-Environment Readiness — 7 / 20
| Criterion | Max | Score | Notes |
|---|---|---|---|
| Mirrorable artifact source | 5 | 0 | Install script hardcodes https://aider.chat/install.sh in install_with_official_installer(); no module variable overrides this download URL. |
| Bring-your-own binary | 10 | 5 | install_aider = false skips install and validates an existing aider on PATH (tested in main.test.ts), but this mode is only described in the main.tf variable description, not demonstrated or called out in README prose/examples — under-documented. |
| Egress transparency | 3 | 0 | No dedicated network/air-gapped section; the install URL only appears in source code, not in a README endpoints section. |
| Runs without sudo | 2 | 2 | install.sh.tftpl never invokes sudo; installs to ~/.local/bin and writes to user-owned files only. |
Engineering Quality — 10 / 10
| Criterion | Max | Score | Notes |
|---|---|---|---|
| Input quality | 6 | 6 | All variables have clear descriptions and sensible defaults; ai_provider has a validation block constraining allowed values. |
| Test coverage | 4 | 4 | main.tftest.hcl covers business logic (env var selection per provider, workdir trimming, config encoding, scripts output ordering, validation failure). main.test.ts runs end-to-end container tests covering install/skip-install paths, secret leakage checks, config file writes, and PATH/symlink behavior. |
Agent Integration — 10 / 25
| Criterion | Max | Score | Notes |
|---|---|---|---|
| AI governance | 10 | 0 | No mention of Coder AI Gateway or Agent Firewall; the v3 changelog explicitly states AgentAPI support was dropped, which counts as absent per calibration. |
| Dashboard entry point | 5 | 5 | README's "Standalone mode with a launcher app" example explicitly defines a coder_app resource to launch Aider. |
| Session continuity | 5 | 0 | No documented resume/session-ID support or persistent session manager (tmux/screen) for reconnecting to an Aider session. |
| Managed configuration | 5 | 5 | base_aider_config variable is documented with a full example, writing YAML config to ~/.aider.conf.yml. |
Overall — 60 / 100
Raw 55 / 92 → round(55 / 92 × 100) = 60
Tip
You can run this locally by telling your agent: "review this module against .github/scorecard/SCORECARD.md".
Scored against SCORECARD.md with solstice-1. Language-model scores are advisory.
|
Automated review requested by @matifali. Please sanity-check before acting on it.
SummaryThis PR replaces the Checks
Findingsshould-fix
nit Verdict: approve with nitsApprove once #1 is addressed (or explicitly justified and documented) and dogfood is re-run. The rest are nits. |
|
Re should-fix #1 (Aider is reinstalled on every workspace start): leaving this as is, intentionally. With
Generated with Coder Agents. |
Closes REG-80
Refactor
coder/aiderto install and configure Aider only, matching the claude-code, codex, copilot, cursor-cli, opencode, and kiro-cli migrations. Changes beyond the AgentAPI removal are limited to what the current Aider docs require.order,group,report_tasks,subdomain,cli_app,web_app_display_name,cli_app_display_name,install_agentapi,agentapi_version,ai_prompt,system_prompt), the unusedexperiment_additional_extensions, and the start script.https://aider.chat/install.sh) instead ofapt-get install pipx+aider-install. Withinstall_aider = false, only checkaideris onPATH.api_keyandmodelare exported throughcoder_env(provider key env var,AIDER_MODEL) instead of being rendered into the start script.ollamanow maps toOLLAMA_API_KEY.base_aider_configis written verbatim to~/.aider.conf.yml, where Aider actually reads it.workdiris optional and created if missing.scriptsoutput; README reduced to examples and doc links; rewrite tests. Bump to3.0.0.Decision log
aider --help0.86.2)curl -LsSf https://aider.chat/install.sh | shinstalls uv andaider-chat@latestinto~/.local/bin; no version argumentinstall_aider = true; no version input since the installer cannot pin~/.config/aider/.aider.conf.yml(old target) is ignored~/.aider.conf.yml; drop the old re-indent, which produced invalid YAML for configs with more than one top-level key--modelreadsAIDER_MODEL; env wins over the config filecoder_envAIDER_MODEL; drop the unused--ollama-modellocal (flag does not exist)OLLAMA_API_BASEandOLLAMA_API_KEY,OLLAMA_HOSTis not read; Azure also readsAZURE_OPENAI_API_*ollamatoOLLAMA_API_KEY; skip the env whencustomhas nocustom_env_var_namemcpinputai_providervalidation guards the env var lookupsystem_prompt,experiment_additional_extensionssystem_promptonly prefixed the Tasks prompt;experiment_additional_extensionswas never referencedTesting
terraform test(10 passed),bun test main.test.ts(10 passed, container-based),terraform fmt,terraform validate, prettier, shellcheck on the rendered install script,readmevalidationcodercom/enterprise-node:latestcontainer running the rendered install script with the real installer: Aider 0.86.2 installed,CODER_SCRIPT_BIN_DIRsymlink created, workdir created,~/.aider.conf.ymlloaded byaider --verbose(read,dark-mode),AIDER_MODELoverrides the configmodel, second run succeeds, real Anthropic call through Coder AI Gateway answered and followed thereadconventions file~/.local/bin), workdir created,~/.aider.conf.ymlmatchesbase_aider_config, script order pre_install, install, post_install, then a downstreamcoder exp syncscript;AIDER_MODELset;aider --messagethrough Coder AI Gateway answeredGenerated with Coder Agents.