Skip to content

feat: keep installed OpenCode Goals updated with Loop - #123

Merged
ByBrawe merged 8 commits into
mainfrom
feat/goal-companion-updater
Aug 18, 2026
Merged

feat: keep installed OpenCode Goals updated with Loop#123
ByBrawe merged 8 commits into
mainfrom
feat/goal-companion-updater

Conversation

@ByBrawe

@ByBrawe ByBrawe commented Aug 18, 2026

Copy link
Copy Markdown
Owner

Problem

OpenCode Loop and OpenCode Goals are intentionally separate packages, but users who already have both installed can update Loop and silently remain on an older Goals release. That matters for fixes such as the 1.3.17 shell-progress/no-progress-guard hotfix.

Behavior

  • keep the existing Loop installer implementation unchanged behind a new wrapper;
  • when OpenCode Goals is already registered (package/local plugin or managed /goal command), a normal Loop install/update best-effort refreshes it through its own official @bybrawe/opencode-goal@latest installer;
  • --with-goals explicitly installs/updates Goals even when absent and fails closed if that explicit companion action fails;
  • --loop-only suppresses companion network work;
  • Loop uninstall/help/version never install or remove Goals;
  • automatic companion refresh failures warn but do not break an otherwise successful Loop update;
  • raw config parsing is JSONC-aware so mentions in comments do not trigger network work.

Safety / ownership

The wrapper delegates all actual Goals config mutation to the Goals package's own installer. Loop does not reimplement Goals package pinning or /goal command ownership.

Tests

A deterministic fake npm CLI proves package/local/managed-command detection, comment false-positive resistance, explicit install, opt-out, best-effort auto failure, fail-closed explicit failure, conflicting flags, and help non-mutation without touching the real registry.

Copilot AI lite review requested due to automatic review settings August 18, 2026 11:40

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@ByBrawe
ByBrawe merged commit 4d6d7b6 into main Aug 18, 2026
8 checks passed
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.

2 participants