Releases: sharwariakre/CodeNarrator
Releases · sharwariakre/CodeNarrator
Release list
v0.1.1
What's Changed
- Broaden language and framework coverage in the analysis pipeline by @sharwariakre in #53
- Improve exploration breadth and dependency-graph fidelity by @sharwariakre in #54
- Improve exploration breadth and graph readability by @sharwariakre in #55
Full Changelog: v0...v0.1.1
v0 — Initial Release: Web App Architecture
v0 — Initial Release: Web App Architecture
CodeNarrator as a full-stack web application — FastAPI backend + React/TypeScript (Vite) frontend — with a complete autonomous codebase analysis pipeline.
What's fully working
- End-to-end pipeline:
ingest → snapshot → agentic loop (SSE streaming) → interpret → report - Git repo cloning via GitPython with GitHub size pre-check and private repo PAT support
- Deterministic analysis core: file scanning, per-language import extraction (Python via
ast+ regex fallback; JS/TS/Java/Go/Rust/C++ via regex), internal import resolution, dependency graph computation with cluster detection - Agentic exploration loop: Qwen2.5-Coder 7B via Ollama with 5 tools (
read_file,follow_import,search_for_pattern,mark_architecture_insight,stop_analysis), anti-stall machinery, minimum-files enforcement, content-fallback tool parsing - AI architecture interpretation via Ollama with hallucination stripping (invented file references removed)
- Self-contained HTML report with interactive D3.js force-directed dependency graph
- JSON state persistence with git HEAD staleness check and analysis history
- React frontend with live SSE "currently exploring" indicator, depth selector (Quick/Standard/Deep), and history view
- Path traversal guard on report serving
Known technical debt
To be addressed in next phase — library refactor:
- Pipeline orchestrated by
App.tsxover HTTP; not usable as a standalone Python library - Ollama hardcoded; no pluggable LLM backends
- Two inconsistent Ollama integration styles (
ollama.chatvs rawurllib) _compute_dependency_graph_summaryrecomputed three times per run (loop, interpret, report)- Legacy heuristic loop (
run_analysis_loop,advance_analysis_state,_select_next_candidate) superseded by agentic loop but not removed ast/subpackage scaffolded but not wired in (extract_astraisesNotImplementedError);language_registryadvertises tree-sitter backends that don't exist yetlogging_config.pyandtests/test_health.pyare empty filesanalysis_stateis a raw mutable dict, no clean result object