Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/shell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,10 @@ jobs:
- name: Run tests/bridge-render.sh
run: ./tests/bridge-render.sh

opencode-wrapper:
name: opencode wrapper regression
opencode-wrapper-removal:
name: opencode wrapper removal regression (#117)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run tests/opencode-wrapper.sh
run: ./tests/opencode-wrapper.sh
- name: Run tests/opencode-wrapper-removal.sh
run: ./tests/opencode-wrapper-removal.sh
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.8.2
0.9.0
30 changes: 30 additions & 0 deletions docs/changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,35 @@
# Changelog

## [0.9.0] - 2026-05-04

### Removed
- BREAKING: drop all `opencode-claude-auth` integration (#117). The bash
wrapper at the global `opencode` binary, the PascalCase patch, the
third-party plugin entry in generated `opencode.json`, and the matching
drift check in `lib/repair-opencode-json.py` are gone. Kimaki's built-in
AnthropicAuthPlugin handles OAuth on Kimaki bridges; non-Kimaki bridges
use opencode's native auth flow (`opencode auth login anthropic`). Older
upgrades installed the wrapper unconditionally on every Kimaki VPS, which
shimmed the npm-shipped binary purely to feed a plugin we no longer load.
- delete `lib/patch-claude-auth.py` and `tests/opencode-wrapper.sh`.

### Added
- `_remove_legacy_opencode_wrapper` in `runtimes/opencode.sh`. Detects the
`wp-coding-agents-opencode-wrapper-v2` sentinel on the global `opencode`
binary, restores a hardlink (or symlink) to the real `.opencode` binary,
and cleans up matching `.bak.*` files. Runs from `runtime_install` and
from upgrade Phase 7. Idempotent and a no-op on installs that never had
the wrapper.
- `tests/opencode-wrapper-removal.sh` regression: legacy wrapper is removed
cleanly, repo no longer ships the install machinery, non-wrapper binaries
are never touched.

### Changed
- upgrade Phase 7 renamed from `reapply_claude_auth_patch` to
`remove_legacy_opencode_wrapper_phase`.
- `.github/workflows/shell.yml`: replace `opencode-wrapper` job with
`opencode-wrapper-removal`.

## [0.8.2] - 2026-05-03

### Fixed
Expand Down
122 changes: 0 additions & 122 deletions lib/patch-claude-auth.py

This file was deleted.

24 changes: 10 additions & 14 deletions lib/repair-opencode-json.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,10 @@
Without --additive or --apply the tool is a pure diagnostic.

--additive is the default mode called from setup.sh and upgrade.sh: it
installs managed plugin entries the user is missing (dm-context-filter,
dm-agent-sync, opencode-claude-auth — whichever apply to the detected
runtime + chat-bridge combo) and migrates legacy agent prompts to the
top-level `instructions` array (fixes Anthropic Claude Max OAuth, see
wp-coding-agents#60). It never removes user-added plugin entries.
installs managed plugin entries the user is missing (dm-context-filter
and dm-agent-sync on Kimaki bridges) and migrates legacy agent prompts
to the top-level `instructions` array (fixes Anthropic Claude Max OAuth,
see wp-coding-agents#60). It never removes user-added plugin entries.

--apply is the opt-in full reconciliation, used by
`upgrade.sh --repair-opencode-json`. It removes unexpected plugin
Expand Down Expand Up @@ -85,15 +84,11 @@ def expected_plugins(
# "drift" comparisons on those runtimes are no-ops.
return plugins

# opencode-claude-auth: only when kimaki is NOT the chat bridge.
# Kimaki v0.6.0+ ships a built-in AnthropicAuthPlugin that supersedes it;
# loading both causes them to compete for the `anthropic` auth provider.
# See wp-coding-agents#51.
if chat_bridge != "kimaki":
plugins.append("opencode-claude-auth@latest")

# DM context filter + agent sync: only when the bridge is Kimaki, since
# these plugins rewrite Kimaki-specific prompts.
# these plugins rewrite Kimaki-specific prompts. wp-coding-agents does
# not manage opencode-claude-auth on any bridge — Kimaki ships its own
# AnthropicAuthPlugin, and non-kimaki bridges use opencode's native auth
# flow. See wp-coding-agents#117.
if chat_bridge == "kimaki":
plugins.append(f"{kimaki_plugins_dir}/dm-context-filter.ts")
plugins.append(f"{kimaki_plugins_dir}/dm-agent-sync.ts")
Expand Down Expand Up @@ -124,7 +119,8 @@ def repair(
"""Return the repaired `plugin` array.

Default behaviour: replace `plugin` with exactly `expected`. This removes
stale entries (like `opencode-claude-auth@latest` on kimaki installs).
stale entries left behind by older wp-coding-agents versions (e.g.
`opencode-claude-auth@latest`, which is no longer managed — see #117).

With preserve_extras=True: add missing entries but keep unexpected ones.
Not currently exposed via CLI — here for future use.
Expand Down
Loading
Loading