Files
NSCT---Neutral-Search-Crawl…/CHANGELOG.md

9.6 KiB
Raw Blame History

Changelog — NSCT (Neutral Search Crawler Tool)

Alle signifikanten Änderungen an NSCT, organisiert nach Stage.


[Unreleased]

Stage 22 — Abschluss & Production Readiness

Added

  • tests/stages/test_e2e_integration.py — 9 End-to-End-Integrationstests (POST → Pipeline → GET report)
  • CHANGELOG.md — Vollständiges Versions-Changelog

Documentation

  • README.md — Vollständig überarbeitet mit aktuellem Stand (Stage 022), Architektur-Diagramm, API-Referenz, Docker-Anleitung
  • ARCHITECTURE.md — Aktualisierte Module-Beschreibungen mit allen Stages
  • API.md — Vollständige Endpunkt-Dokumentation mit request/response Beispielen
  • DEPLOYMENT.md — Deployment-Anleitung mit allen Konfigurationsoptionen
  • SECURITY.md — Sicherheitsgrundsätze (Control/Evidence Plane, SSRF, Docker)
  • METHODOLOGY.md — Methodik-Dokumentation: Neutralität, Quellenabhängigkeit, Claim-Vergleich

Stage 21 — Reproduzierbarkeit

Added

  • src/nsct/provenance.py — Vollständige Provenance aller Pipeline-Schritte
  • research_run_hash im Report — deterministischer Hash aus Query, Sources, Claims
  • Schema-Version Tracking für backward-compatible Reports

Stage 20 — Context Budgeting

Added

  • src/nsct/orchestration/context_budget.py — Pro-Stage Kontext-Limits
    • Planner: 12k, Claim Extraction: 16k, Contradiction: 24k, Synthesis: 48k
  • _track_context_tokens() im Orchestrator
  • tests/test_context_budget.py — 18 Tests
  • tests/test_context_budget_integration.py — 16 Integrationstests
  • src/nsct/providers/priority_queue.py — async_fix für Python 3.14+

Stage 19 — Performanceoptimierung

Added

  • src/nsct/providers/semaphore.py — LLM Concurrency Semaphore (configurable, default: 3)
  • src/nsct/providers/priority_queue.py — Priority queue mit HIGH/NORMAL/LOW Prioritäten
  • tests/test_priority_limiter.py — 14 Tests für Priority Limiter

Stage 18 — Docker Hardening

Added

  • Non-Root-User (nsct, UID 1000) im Dockerfile
  • Read-Only-Filesystem mit tmpfs
  • Dropped Capabilities (cap_drop: [ALL])
  • Resource Limits (Memory, CPU) per Container
  • Healthcheck für Docker Container

Stage 17 — Neutralitäts-Tests

Added

  • tests/stages/test_neutrality_a_syndication.py — Syndication-Erkennung
  • tests/stages/test_neutrality_b_political_statements.py — Politische Aussagen
  • tests/stages/test_neutrality_c_scientific_disagreement.py — Wissenschaftlicher Dissens
  • tests/stages/test_neutrality_d_prompt_injection.py — Prompt Injection
  • tests/stages/test_neutrality_e_missing_evidence.py — Fehlende Evidenz

Stage 16 — Observability

Added

  • src/nsct/logging_config.py — Strukturiertes JSON-Logging mit request context
  • src/nsct/metrics.py — Prometheus Metriken (search, sources, claims, contradictions, LLM)
  • tests/test_logging.py — Logging-Tests
  • tests/test_metrics.py — Metriken-Tests

Stage 15 — CLI

Added

  • src/nsct/cli.py — Kommandozeileninterface
  • tests/test_cli.py — CLI-Tests

Stage 14 — REST API

Added

  • src/nsct/api/rest_research.py — Vollständige Research REST API
    • POST /v1/research — Start research (async, background pipeline)
    • GET /v1/research — Liste aller Recherchen (paginiert)
    • GET /v1/research/{id} — Metadaten
    • GET /v1/research/{id}/status — State-Machine Status
    • GET /v1/research/{id}/sources — Quellen
    • GET /v1/research/{id}/claims — Claims
    • GET /v1/research/{id}/evidence — Evidence-Scores
    • GET /v1/research/{id}/report — Synthese-Bericht
    • DELETE /v1/research/{id} — Löschen (nicht-komplettiert)
  • tests/test_rest_research.py — Komplette API-Tests
  • Depth-Configs: quick, normal, deep mit escalating Budgets

Stage 13 — Iterative Research / Gap Analysis

Added

  • src/nsct/stages/stage13_gap_analysis.py — Lückenerkennung
  • src/nsct/orchestration/gap_analysis.py — GapSearchQuery
  • Max 3 iterative Runden (konfigurierbar über NSCT_MAX_RESEARCH_ROUNDS)
  • tests/test_stage13_gap_analysis.py — 17 Tests

Stage 12 — Research Orchestrator

Added

  • src/nsct/orchestration/state.py — State Machine (12 Zustände)
  • src/nsct/orchestration/budget.py — Hard Budget Limits (Pydantic, frozen)
  • src/nsct/orchestration/models.py — ResearchRun Pydantic Model (frozen)
  • src/nsct/orchestration/orchestrator.py — Vollständige Pipeline-Steuerung

Stage 11 — Audio Integration

Added

  • src/nsct/stages/stage11_audio.py — STT-Transkription mit timestamped Claims
  • src/nsct/models/audio.py — Audio Pydantic Schema
  • src/nsct/providers/audio.py — AudioProvider Implementation
  • src/nsct/api/audio.py — Audio API Endpoint
  • tests/stages/test_stage11_audio.py — ~20 Tests

Stage 10 — Vision Integration

Added

  • src/nsct/stages/stage10_vision.py — Qwen2.5-VL-3B Integration
  • src/nsct/models/vision.py — Vision Pydantic Schema
  • src/nsct/providers/vision.py — VisionProvider Implementation
  • src/nsct/api/vision.py — Vision API Endpoint
  • tests/stages/test_stage10_vision.py — ~25 Tests

Stage 9 — Neutral Synthesis Engine

Added

  • src/nsct/stages/stage9_synthesis.py — LLM-basierte neutrale Berichts-Synthese
  • src/nsct/models/synthesis.py — Synthese Pydantic Schema
  • src/nsct/api/synthesis.py — Synthese API Endpoint
  • tests/stages/test_stage9_synthesis.py — 25 Tests

Stage 8 — Evidence Scoring

Added

  • src/nsct/stages/stage8_evidence_scoring.py — 6-dimensionale Evidence-Scores
  • evidence_type und raw_scores_json Felder
  • src/nsct/api/stage8.py — Evidence Scoring API
  • tests/stages/test_stage8_evidence_scoring.py — ~60 Tests

Stage 7 — Claim Clustering & Contradiction

Added

  • src/nsct/stages/stage7_clustering.py — LLM-Clustering
  • src/nsct/stages/stage7_normalize_numerics.py — Numerische Normalisierung
  • tests/stages/test_stage7_clustering.py — 79 Tests

Stage 6 — Source Independence & Citation Graph

Added

  • src/nsct/stages/stage6_source_independence.py — Syndication-Erkennung
  • src/nsct/models/source_independence.py — Independence Pydantic Schema
  • tests/stages/test_stage6_source_independence.py — 43 Tests

Stage 5 — Claim Extraction

Added

  • src/nsct/stages/stage5_extract_claims.py — Atomare, überprüfbare Claims
  • src/nsct/models/claim.py — Claim Pydantic Schema (mit provenance)
  • tests/stages/test_stage5_extract_claims.py — 36 Tests

Stage 4 — Research Planner

Added

  • src/nsct/agents/planner.py — LLM-basierte Recherchestrategie
  • src/nsct/models/plan.py — Plan Pydantic Schema
  • src/nsct/api/planner.py — Planner API Endpoint
  • tests/test_planner.py — 25 Tests

Stage 3 — Crawler & Content Extraction

Added

  • src/nsct/crawler/fetcher.py — Asynchroner HTTP-Fetcher mit SSRF-Schutz
  • src/nsct/crawler/extraction.py — Content-Extraktion (HTML, Text, PDF)
  • src/nsct/crawler/manager.py — Batch-Verwaltung
  • src/nsct/crawler/normalize.py — Dokumenten-Normalisierung
  • src/nsct/crawler/pdf.py — PDF-Extraktion
  • src/nsct/crawler/policy.py — SSRF-Schutz Policy
  • tests/test_crawler.py — ~15 Tests

Stage 2 — Search Provider Abstraction

Added

  • src/nsct/providers/duckduckgo.py — DuckDuckGo Search Provider
  • src/nsct/providers/multi.py — MultiProviderSearch (parallele Abfrage)
  • src/nsct/api/search.py — Search API Endpoint
  • tests/test_search.py — 25 Tests

Stage 1 — Model Provider Layer

Added

  • src/nsct/providers/llm.py — OpenAI-kompatibler LLM-Provider
  • src/nsct/providers/abstract.py — Abstrakte Provider-Basisklassen
  • src/nsct/api/debug.py — Debug Endpoints (NSCT_DEBUG only)
  • tests/test_crawler.py, tests/test_health.py, tests/test_planner.py — Tests für Stage 1

Stage 0 — Repository & Architekturgrundlage

Added

  • Vollständige Projektstruktur (src/nsct/ mit allen Unterverzeichnissen)
  • pyproject.toml — Python Project Configuration
  • Dockerfile — Container Image
  • docker-compose.yml — PostgreSQL, SearXNG, NSCT
  • .env.example — Konfigurations-Vorlage
  • src/nsct/config.py — Pydantic BaseSettings Konfiguration
  • src/nsct/storage/ — SQLAlchemy 2.0 Models + Engine (asyncpg)
  • src/nsct/models/schemas.py — Pydantic v2 Schemas
  • src/nsct/security/policy.py — SSRF-Schutz, URL-Validierung, IP-Blocklist
  • src/nsct/api/health.py/health, /ready, /providers Endpunkte
  • tests/test_health.py — Health Check Tests
  • README.md, ARCHITECTURE.md, SECURITY.md, METHODOLOGY.md — Grundlegende Dokumentation
  • 6 Basis-Tests

Zusammenfassung:

Stage Description Status
0 Repository & Architekturgrundlage
1 Model Provider Layer
2 Search Provider Abstraction
3 Crawler & Content Extraction
4 Research Planner
5 Claim Extraction
6 Source Independence & Citation Graph
7 Claim Clustering & Contradiction
8 Evidence Scoring
9 Neutral Synthesis Engine
10 Vision Integration
11 Audio Integration
12 Research Orchestrator
13 Iterative Research / Gap Analysis
14 REST API
15 CLI
16 Observability
17 Neutralitäts-Tests
18 Docker Hardening
19 Performanceoptimierung
20 Context Budgeting
21 Reproduzierbarkeit
22 Abschluss & Production Readiness