Releases: iblameandrew/deepsearch-academic
Releases · iblameandrew/deepsearch-academic
Release list
academic-deepsearch 0.1.2
Changelog
0.1.2 — 2026-08-14
- Align Ruff isort sections (
academic_deepsearch/testsas first-party) so Linux CI lint matches local formatting.
0.1.1 — 2026-08-14
- Fix CI collection: put the repo root on
pytestpythonpathand shiptestsas a package sotests.fakesimports on Linux runners.
0.1.0 — 2026-08-13
First packaged release.
Added
- Installable
academic_deepsearchlibrary with a Streamlit-free public API (ResearchPipeline, RAPTOR, filters, reports, QA). - llama.cpp
llama-serverbackend via the OpenAI-compatible/v1API (langchain-openai). Separate chat and embedding base URLs are supported. - Extensive offline pytest suite (unit, integration, contract) with coverage gate.
- Multi-stage
Dockerfile(base/test/runtime) anddocker-compose.yml. - GitHub Actions CI (lint, Python 3.11/3.12 tests, Docker builds) and a tag-driven release workflow that publishes to GHCR.
Changed
- Streamlit
app.pyis now a UI shell over the library. - Model discovery uses llama.cpp
GET /v1/modelsandGET /healthinstead of a local model manager.
Fixed
- PDF report generation no longer raises when a pipeline diagram is omitted.
- An empty publisher filter now keeps papers (counted as
Uncategorized) instead of dropping them. - Live search logs papers that have no journal name into the publisher discard log.
- Missing abstracts are labeled
Missing abstractrather than a PDF-corruption message.
Removed
- Ollama client,
langchain-ollama, and all:11434integration.
academic-deepsearch 0.1.1
Changelog
0.1.1 — 2026-08-14
- Fix CI collection: put the repo root on
pytestpythonpathand shiptestsas a package sotests.fakesimports on Linux runners.
0.1.0 — 2026-08-13
First packaged release.
Added
- Installable
academic_deepsearchlibrary with a Streamlit-free public API (ResearchPipeline, RAPTOR, filters, reports, QA). - llama.cpp
llama-serverbackend via the OpenAI-compatible/v1API (langchain-openai). Separate chat and embedding base URLs are supported. - Extensive offline pytest suite (unit, integration, contract) with coverage gate.
- Multi-stage
Dockerfile(base/test/runtime) anddocker-compose.yml. - GitHub Actions CI (lint, Python 3.11/3.12 tests, Docker builds) and a tag-driven release workflow that publishes to GHCR.
Changed
- Streamlit
app.pyis now a UI shell over the library. - Model discovery uses llama.cpp
GET /v1/modelsandGET /healthinstead of a local model manager.
Fixed
- PDF report generation no longer raises when a pipeline diagram is omitted.
- An empty publisher filter now keeps papers (counted as
Uncategorized) instead of dropping them. - Live search logs papers that have no journal name into the publisher discard log.
- Missing abstracts are labeled
Missing abstractrather than a PDF-corruption message.
Removed
- Ollama client,
langchain-ollama, and all:11434integration.
academic-deepsearch 0.1.0
Changelog
0.1.0 — 2026-08-13
First packaged release.
Added
- Installable
academic_deepsearchlibrary with a Streamlit-free public API (ResearchPipeline, RAPTOR, filters, reports, QA). - llama.cpp
llama-serverbackend via the OpenAI-compatible/v1API (langchain-openai). Separate chat and embedding base URLs are supported. - Extensive offline pytest suite (unit, integration, contract) with coverage gate.
- Multi-stage
Dockerfile(base/test/runtime) anddocker-compose.yml. - GitHub Actions CI (lint, Python 3.11/3.12 tests, Docker builds) and a tag-driven release workflow that publishes to GHCR.
Changed
- Streamlit
app.pyis now a UI shell over the library. - Model discovery uses llama.cpp
GET /v1/modelsandGET /healthinstead of a local model manager.
Fixed
- PDF report generation no longer raises when a pipeline diagram is omitted.
- An empty publisher filter now keeps papers (counted as
Uncategorized) instead of dropping them. - Live search logs papers that have no journal name into the publisher discard log.
- Missing abstracts are labeled
Missing abstractrather than a PDF-corruption message.
Removed
- Ollama client,
langchain-ollama, and all:11434integration.
v0.2.0 — Exhaustive bug fix release
Exhaustive bug hunt & fixes
Critical fixes
- Missing dependency: added
semanticscholartorequirements.txt(app would fail to install from a clean env) - Broken search loop:
semantic_scholar_search_nodewas re-callingsch.search_paper(query, bulk=True)inside awhileloop, which re-creates the same paginated iterator each iteration;seen_urlsthen drops all duplicates and the loop never makes real progress (and would hammer the rate limiter). Now iteratesPaginatedResultsdirectly. - Broken LangChain imports: migrated to non-deprecated packages for LangChain 1.x:
langchain.text_splitter->langchain_text_splitterslangchain_community.chat_models.ChatOllama->langchain_ollama.ChatOllamalangchain_community.embeddings.OllamaEmbeddings->langchain_ollama.OllamaEmbeddings
Cleanup
- Removed unused imports (
numpy as np,random,fpdf,PyPDFLoader,langchain_community.document_loaders) - Hoisted
import tempfileto module top - Removed leftover debug
print()statements infilter_by_relevance_node - Tightened relevance LLM check: was
"yes" in answer.content.lower()(matches"yesterday","yellowness"); now exactYes/Nomatch - Dropped dead deps from
requirements.txt:arxiv,pypdf,langchain-google-genai, duplicatepython-dotenv - Added
langchain-text-splittersandlangchain-ollamatorequirements.txt
PDF report generation
- Moved temp-PNG cleanup in
generate_pdf_reportto afterpdf.output()(was deleting the file before the PDF was finalized, fragile on Windows) - Wrapped
os.removeintry/except OSError
Diagram & chat
- Replaced non-standard Mermaid self-loop edge (
B -- label --> B) with a single labeled node (renders correctly) - Wrapped chat LLM call in
try/exceptso a model failure surfaces a graceful error in chat history instead ofNameError - Strip
<think>...</think>blocks from chat responses (already done for the academic report; now consistent for chat)