git séance: I asked the ghost of `request` why it died, and made it cite its sources
Описание и применение
git séance использует графовое представление истории репозитория request и локальную модель Gemma 4 для ответов на вопросы о принятии решений, автоматически цитируя исходные проблемы и коммиты.
Задача
Inherited or depended on an abandoned Node.js HTTP library and needed to understand historical design decisions before modifying it.
Результат
The system achieved 9/10 correct answers with 9/10 correct citations using a combined graph + vector retrieval approach, outperforming plain vector search (8/10).
Рабочий процесс
- 1. Ingest GitHub issues, PRs, comments via API and commits via a blobless clone.
- 2. Build node tables (Thread, Comment, Commit) and relationship tables (REPLIES, MENTIONS, REFERS, PART_OF).
- 3. Embed nodes with nomic‑embed‑text and store in LanceDB.
- 4. Query graph with Lance‑Graph Cypher to retrieve relevant threads, comments, and commits.
- 5. Feed retrieved evidence to Gemma 4 model to generate an answer.
- 6. Apply regex to verify each citation matches retrieved evidence, dropping invalid ones.
- 7. Return answer with valid citations.
Доказательства
git séance lets you ask that history a question. A local open-weight model (Gemma 4 through Ollama) answers as the project's ghost, but it may only speak from the history: every claim cites an issue ([#3142]) or a commit ([b66e4cd]), and the code removes any citation that isn't in what was actually retrieved.
The first project summoned is request, the Node.js HTTP library that went into maintenance mode in 2020: 3,477 issues and pull requests, 12,441 comments and 2,290 commits.
Gemma 4 E4B, about a minute per answer on a 6 GB GTX 1660 Ti.
- Дата записи: 2026-11-01T08:44:18.199Z