* feat(src): migrate second-brain RAG CLI + tests * fix(embedder): strip hardcoded ai.slaid098.dev endpoint * refactor: rename slaid098/opencode to opencode-config * docs(handoff): add pr-5 handoff + ADR-001 * fix(docs): rebase handoff/ADR naming to PR number + drop dangling ADR-009 refs * fix(tests): update script paths + assertions for opencode-config migration * fix(pyproject): update cov + ruff paths config/scripts -> .opencode/scripts * docs: update project map + handoff + ADR --------- Co-authored-by: opencode-agent <agent@slaid098.dev>
2.2 KiB
2.2 KiB
PR #17: Migrate src/ + tests/ + Python tooling
Что сделано
- Перенесён Python-пакет
second-brain(RAG CLI):src/memory/(6 файлов) - Перенесены тесты:
tests/(15 файлов: 13 .py + 1 .mjs + 1 .ts) - Перенесён Python tooling:
pyproject.toml,uv.lock,.pre-commit-config.yaml,.python-version src/memory/embedder.py: вынесен hardcoded endpointai.slaid098.dev→ env-only (AI_PROVIDER_API_URL)pyproject.toml: renameslaid098/opencode→slaid098/opencode-configв [project.urls]- Тесты: mock URLs обновлены
slaid098/opencode→slaid098/opencode-config - Source: ветка
fix/pipeline-status/review-next-by-verdict(включает фикс610452f+ тесты01212b5)
Почему
Миграция из приватного репо slaid098/opencode в публичный slaid098/opencode-config. Hardcoded приватный API endpoint удалён — env-only для публичного релиза.
Pending
pipeline-status.py(fix610452f) мигрирует через #7 (.opencode/scripts/), не через #5pyproject.tomlв корне может триггерить LSP-конфликт на bare-metal Windows — отслеживать
Watch out
- Issue #5 заявляла "14 tests файлов", по факту 15 (13 .py + .mjs + .ts) — расхождение +1
config/scripts/pipeline-status.pyНЕ в scope #5 — он вconfig/scripts/→ мигрирует через #7tests/test_pipeline_status.pyсодержит тесты для REQUEST_CHANGES/NEEDS_DISCUSSION NEXT (из fix-ветки)- 10 из 15 тестов падают (FileNotFoundError) — они зависят от
config/scripts/иconfig/tools/которых нет в репо (мигрируют через #7) tests/test_embedder.pyобновлён:os.environ.setdefault("AI_PROVIDER_API_URL", "http://test/v1")перед import — необходим из-за strip hardcoded URL в embedder.pyruff formatреформатнул 2 файла (test_pipeline_status.py, test_spec_status.py) — строки превысили 100 chars после добавления-configк URL