refactor(opencode): удалены устаревшие профили safe-build/safe-plan

Профили дублировали работу permission-reviewer статическими списками:
их deny обходили ревьюер и давали отказы без причины (git push). Теперь
решения об ask принимает плагин; статикой оставлены только deny на чтение
секретов - детерминированная гарантия, LLM-ревьюеру не доверяем.

- opencode.json: default_agent -> build, убраны статические списки
  и deny на git push (решение за ревьюером)
- permission-reviewer.jsonc: actorProfiles переключены на встроенные
  build/plan
- install.sh: блок линковки agents заменён чисткой старого симлинка;
  добавлено копирование permission-reviewer.jsonc в ~/.config/opencode
  (плагин читает его только оттуда - раньше тюнинг не применялся)
- тесты: проверка чистки симлинка и копирования конфига ревьюера
This commit is contained in:
Dmitry Dementiev committed 2026-10-10 17:32:34 +02:00
1 parent c3efe60a00
commit 32cd7097e6
6 files changed
+34 -212

No files matched your search

+4 -1
View File
@@ -482,13 +482,16 @@ test_opencode_runtime_dir_is_preserved_and_config_is_managed() {
cat > "$home_dir/.config/opencode/opencode.json" <<'EOF'
{"source":"local"}
EOF
# Артефакт прежнего установщика: симлинк на удалённые профили агентов
ln -s "$repo_root/opencode/.config/opencode/agents" "$home_dir/.config/opencode/agents"
run_install "$repo_root" "$home_dir" env WSL_DISTRO_NAME= INSTALL_INTERACTIVE_MODE=never >/tmp/test-install.out
[ -f "$home_dir/.config/opencode/package.json" ] || fail "Expected opencode runtime files to be preserved"
[ -L "$home_dir/.config/opencode/agents" ] || fail "Expected ~/.config/opencode/agents symlink"
assert_not_exists "$home_dir/.config/opencode/agents"
[ -L "$home_dir/.config/opencode/skills" ] || fail "Expected ~/.config/opencode/skills symlink"
assert_file_contains "$home_dir/.config/opencode/opencode.json" '"$schema": "https://opencode.ai/config.json"'
assert_file_contains "$home_dir/.config/opencode/permission-reviewer.jsonc" '"confidenceThreshold"'
backup_path="$(find "$home_dir/.config/opencode" -maxdepth 1 -name 'opencode.json.bak.*' -print -quit)"
[ -n "$backup_path" ] || fail "Expected backup for existing opencode.json"