chore(config): remove deprecated ai provider and add memory readme section (#106)

* chore(config): remove deprecated ai provider and add memory readme section

* docs(handoff): set PR number 106

* docs(project-map): update after structural changes

---------

Co-authored-by: opencode-agent <agent@opencode.local>
This commit is contained in:
Sergey 2026-07-27 02:23:33 +03:00 committed by GitHub
parent 4cf149cb02
commit 7d730baa4c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 49 additions and 37 deletions

View file

@ -1,7 +1,3 @@
# AI Provider
AI_PROVIDER_BASE_URL=https://your-ai-provider.example.com/v1/
AI_PROVIDER_API_KEY=your-api-key-here
# OpenAI Embeddings (Memory CLI) # OpenAI Embeddings (Memory CLI)
# OpenRouter defaults (Qwen3 8B, batch=50). For OpenAI direct, use: # OpenRouter defaults (Qwen3 8B, batch=50). For OpenAI direct, use:
# OPENAI_BASE_URL=https://api.openai.com/v1 # OPENAI_BASE_URL=https://api.openai.com/v1
@ -38,7 +34,7 @@ TUNNEL_DOMAIN=
# Remote: http://<your-server-ip>:8765/mcp # Remote: http://<your-server-ip>:8765/mcp
ANTIDETECT_BROWSER_MCP_URL=http://localhost:8765/mcp ANTIDETECT_BROWSER_MCP_URL=http://localhost:8765/mcp
# OpenCode Memory (required — memory-setup tool exits 1 if OPENCODE_MEMORY_REMOTE unset) # OpenCode Memory (optional — auto-setup on first memory-save if unset)
# Point at your fork of opencode-memory (see README "Memory setup" for the upstream repo) # Point at your fork of opencode-memory to sync via git push
OPENCODE_MEMORY_REMOTE=https://github.com/your-username/your-opencode-memory.git OPENCODE_MEMORY_REMOTE=https://github.com/your-username/your-opencode-memory.git
OPENCODE_MEMORY_DIR=/root/.local/share/opencode/opencode-memory OPENCODE_MEMORY_DIR=/root/.local/share/opencode/opencode-memory

View file

@ -12,35 +12,6 @@
}, },
"disabled_providers": [], "disabled_providers": [],
"provider": { "provider": {
"new_api": {
"name": "new api",
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "{env:AI_PROVIDER_BASE_URL}",
"apiKey": "{env:AI_PROVIDER_API_KEY}"
},
"models": {
"gemini-3.5-flash": {
"name": "Gemini 3.5 Flash",
"reasoning": true,
"attachment": true,
"modalities": {
"input": [
"text",
"image"
],
"output": [
"text"
]
},
"limit": {
"context": 250000,
"input": 250000,
"output": 16384
}
}
}
},
"openrouter": { "openrouter": {
"models": { "models": {
"deepseek/deepseek-v4-flash": { "deepseek/deepseek-v4-flash": {

View file

@ -32,6 +32,10 @@ docker compose up -d
Скопируйте `.env.example``.env`, заполните ключи. Скопируйте `.env.example``.env`, заполните ключи.
### Память
Файловая память (markdown + git) с keyword и semantic поиском. 5 tools: `memory-save`, `memory-search`, `memory-list`, `memory-access`, `memory-doctor`. Zero-config — первый `memory-save` создаёт репозиторий и индекс автоматически. Semantic поиск опционален: работает если задан `OPENAI_BASE_URL`, иначе keyword (ripgrep) всегда работает как fallback.
## English ## English
### Quick start ### Quick start
@ -62,6 +66,10 @@ Access at http://localhost:4096
Copy `.env.example``.env`, fill in keys. Copy `.env.example``.env`, fill in keys.
### Memory
File-based memory (markdown + git) with keyword and semantic search. 5 tools: `memory-save`, `memory-search`, `memory-list`, `memory-access`, `memory-doctor`. Zero-config — first `memory-save` creates the repo and index automatically. Semantic search is optional: works if `OPENAI_BASE_URL` is set, otherwise keyword (ripgrep) always works as fallback.
## License ## License
MIT — see [LICENSE](LICENSE). MIT — see [LICENSE](LICENSE).

View file

@ -0,0 +1,14 @@
# ADR-047: Remove deprecated `new_api` AI provider
## Статус
Accepted (2026-07-26)
## Контекст
В `.opencode/opencode.json` присутствовал блок провайдера `new_api` (gemini-3.5-flash, `@ai-sdk/openai-compatible`), завязанный на env vars `AI_PROVIDER_BASE_URL` / `AI_PROVIDER_API_KEY`. Провайдер был deprecated: embeddings уже переведены на `OPENAI_*` env vars (PR #75), активный LLM-провайдер — `openrouter`. `new_api` не упоминался нигде кроме `opencode.json:15-43` — мёртвый код, создававший ложное впечатление доступной альтернативы и требовавший неиспользуемые env vars в `.env.example`.
## Решение
Удалить блок `new_api` из `provider` в `.opencode/opencode.json` и соответствующие `AI_PROVIDER_*` env vars из `.env.example`. Заодно уточнить комментарий `OPENCODE_MEMORY_REMOTE` — теперь optional (auto-setup при первом `memory-save`), а не required. Добавить секцию «Память»/«Memory» в `README.md` для onboarding.
## Альтернативы
- Оставить `new_api` как есть — сохраняет мёртвый код и неиспользуемые env vars, вводит в заблуждение новых пользователей. Отклонено: пользователь подтвердил удаление.
- Перевести `new_api` на `OPENAI_*` env vars вместо удаления — избыточно, `openrouter` уже покрывает LLM-провайдер.

View file

@ -0,0 +1,23 @@
---
pr: 106
title: chore(config): remove deprecated ai provider and add memory readme section
---
## Что сделано
- Удалён блок `new_api` провайдера из `.opencode/opencode.json` (строки 15-43) — deprecated, не использовался
- Удалены `AI_PROVIDER_BASE_URL` / `AI_PROVIDER_API_KEY` из `.env.example` (строки 1-4)
- Обновлён комментарий про `OPENCODE_MEMORY_REMOTE` в `.env.example` — больше не required, auto-setup при первом `memory-save`
- Добавлена короткая секция «Память» / «Memory» в `README.md` (5 строк RU + 5 строк EN)
## Почему
`AI_PROVIDER_*` env vars и провайдер `new_api` (gemini-3.5-flash) — deprecated. Embeddings уже на `OPENAI_*` env vars (PR #75), LLM-провайдер `openrouter` активен. `new_api` не упоминался нигде кроме `opencode.json:15-43` — мёртвый код. Пользователь подтвердил удаление.
Секция про память в README — для onboarding: краткое описание 5 tools, zero-config, progressive enhancement (keyword всегда, semantic опционален).
Closes #105
## Pending
## Watch out

View file

@ -62,7 +62,7 @@ opencode-config/
│ │ ├── scaffold-handoff.sh # Scaffold handoff + ADR stubs │ │ ├── scaffold-handoff.sh # Scaffold handoff + ADR stubs
│ │ ├── spec-status.py # 9-phase spec oracle │ │ ├── spec-status.py # 9-phase spec oracle
│ │ └── tunnel.sh # Cloudflare tunnel toggle bash (named mode via CLOUDFLARE_TUNNEL_TOKEN) — PR#34 │ │ └── tunnel.sh # Cloudflare tunnel toggle bash (named mode via CLOUDFLARE_TUNNEL_TOKEN) — PR#34
│ ├── opencode.json # MCP servers, providers, permissions, agents (role-based tools) — PR#40, PR#69 (plugin block REMOVED PR#103) │ ├── opencode.json # MCP servers, providers, permissions, agents (role-based tools) — PR#40, PR#69 (plugin block REMOVED PR#103, deprecated `new_api` provider REMOVED PR#106)
│ ├── package.json # npm deps for tools/*.ts (deps: @vscode/ripgrep; devDeps: @types/node, typescript) — PR#101 │ ├── package.json # npm deps for tools/*.ts (deps: @vscode/ripgrep; devDeps: @types/node, typescript) — PR#101
│ └── .gitignore # Ignores node_modules, etc. │ └── .gitignore # Ignores node_modules, etc.
├── docs/ ├── docs/
@ -121,7 +121,7 @@ opencode-config/
├── .pre-commit-config.yaml # ruff + UV hooks ├── .pre-commit-config.yaml # ruff + UV hooks
├── docker-compose.yml # 2 services (dind + opencode), opencode_network, 4 bind mounts, port 4096 on 0.0.0.0 — PR#24, PR#51 ├── docker-compose.yml # 2 services (dind + opencode), opencode_network, 4 bind mounts, port 4096 on 0.0.0.0 — PR#24, PR#51
├── Dockerfile # node:22-trixie-slim (Debian 13 trixie, glibc 2.41) + uv + gh + chromium + docker.io + opencode-ai + repomix + cloudflared (@mathew-cf/opencode-memory REMOVED PR#103) — PR#24, PR#34, PR#57, PR#71, PR#103 ├── Dockerfile # node:22-trixie-slim (Debian 13 trixie, glibc 2.41) + uv + gh + chromium + docker.io + opencode-ai + repomix + cloudflared (@mathew-cf/opencode-memory REMOVED PR#103) — PR#24, PR#34, PR#57, PR#71, PR#103
├── .env.example # Placeholder-only env template (user copies to .env) — PR#24, PR#34 (TUNNEL_DOMAIN), PR#36 (OPENCODE_MEMORY_REMOTE/DIR) ├── .env.example # Placeholder-only env template (user copies to .env) — PR#24, PR#34 (TUNNEL_DOMAIN), PR#36 (OPENCODE_MEMORY_REMOTE/DIR), PR#106 (AI_PROVIDER_* removed, OPENCODE_MEMORY_REMOTE now optional)
├── app_data/ ├── app_data/
│ ├── opencode-memory/ # Persistent memory (separate git repo, gitignored) — PR#36 │ ├── opencode-memory/ # Persistent memory (separate git repo, gitignored) — PR#36
│ ├── workspaces/ # Agent working directory (.gitkeep) │ ├── workspaces/ # Agent working directory (.gitkeep)