opencode-config/docs/handoff/pr-85-memory-setup-step5-docs.md
Sergey 3aa5330003
fix(memory): setup step 5 check index.json + align docs to real state (#85)
* fix(memory): check index.json not .rag dir in setup step 5

* docs(readme): align to real state after memory PRs

* chore(env): remove dead vars from env example

* docs(handoff): add handoff + ADR-037 for memory setup step5 fix

* docs(handoff): set PR number

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-26 20:12:15 +03:00

3.3 KiB
Raw Blame History


pr: 85 title: fix(memory): setup step 5 check index.json + align docs to real state

Что сделано

  • .opencode/scripts/setup-memory.sh step 5: проверка [ ! -d "$MEMORY_DIR/.rag" ] заменена на [ ! -f "$MEMORY_DIR/.rag/index.json" ]. Теперь скрипт проверяет наличие нашего индексного файла (формат Python memory CLI), а не саму директорию — это форсирует rebuild, если остался stale Rust rag-cli индекс (meta.json + index.bin без index.json).
  • README.md Quick start: убран mkdir -p app_data/{workspaces,ssh} (директории уже в репо с .gitkeep).
  • README.md Structure: убрана строка app_data/opencode-memory/ (runtime dir, не в репо); tools list обновлён до актуальных 10 tools (commit, create-issue, create-pr, memory-setup, merge-pr, pipeline-status, post-docs-review, post-review, spec-status, tunnel).
  • README.md Configuration: таблица расширена с 6 до 13 vars (+7: OPENAI_BASE_URL, OPENAI_API_KEY, OPENAI_EMBEDDING_MODEL, OPENAI_EMBEDDING_BATCH_SIZE, OPENCODE_MEMORY_REMOTE, MEMORY_CHUNK_SIZE, MEMORY_CHUNK_OVERLAP).
  • README.md Memory setup: "local RAG" → "cloud embeddings (OpenRouter Qwen3 8B)"; default OPENCODE_MEMORY_DIR исправлен с app_data/opencode-memory/ на /root/.local/share/opencode/opencode-memory.
  • .env.example: удалён OPENAI_EMBEDDING_BATCH_DELAY (dead — не используется в embedder.py); удалён REDIS_PASSWORD + комментарий (dead — нигде не используется). Telegram и Cloudflare оставлены.

Почему

После merge PR#77 (setup-memory.sh wrapper) и PR#83 (incremental index) end-to-end проверка показала, что plugin продолжал использовать оригинальный Rust rag-cli: wrapper не перезаписывался, meta.json оставался в Rust схеме, index.bin лежал рядом. Причина — баг в step 5: проверка [ ! -d "$MEMORY_DIR/.rag" ] всегда false, если Rust rag-cli уже создавал директорию. Проверка index.json (наш формат) форсирует rebuild при рассинхронизации форматов.

README и .env.example устарели после PR#75/#77/#83: инструкции создавали уже существующие директории, описывали "local RAG" вместо cloud embeddings, таблица конфига была неполной, dead env vars вводили в заблуждение.

Pending

— (после merge: удалить stale Rust rag-cli index вручную при первом запуске setup-memory.sh — step 5 пересоберёт в нашем формате)

Watch out

  • ADR-037 зафиксировал решение проверять index.json, не директорию — при будущих правках setup-memory.sh не откатывать к dir-check.
  • README tools list содержит 10 .ts tools (без _shared.ts, который вспомогательный).
  • Если добавится новый tool — обновить README Structure tools list.