feat: web UI, Python support, incremental indexing, cycle detection +… - #1
Merged
Conversation
… import-resolution fixes
Fixes
- tree-sitter-languages is incompatible with tree-sitter >= 0.22 and had no
wheels for 3.12/3.13; every parser test failed on a clean install. Swapped
for tree-sitter-language-pack.
- Relative imports resolved against the project root instead of the importing
file, so most dependency_edges were silently missing. resolve_import_path
now takes from_file.
- tsconfig.json is JSONC in practice; json.load rejected it and dropped every
path alias. Added a JSONC pre-pass.
- '@scope/pkg' npm packages were treated as internal imports; alias patterns
are now matched explicitly, with exact rules beating wildcards.
- TS 'paths' targets with a mid-string star ('./src/*.ts') and coexisting
exact + wildcard rules for the same name were mis-parsed.
- Asset imports ('./styles.css') counted as broken internal imports.
- dependency_edges were inserted once per imported name; now deduplicated
with a weight column and a UNIQUE index.
- 'export ... from' re-exports produced no dependency edge, leaving holes
around barrel files.
- BFS helpers emitted duplicate adjacency entries; Mermaid node ids could
collide and labels could break the syntax.
- Tests wrote into the developer's real ~/.codeatlas.
Features
- Python parser (functions, classes, methods, module/class-level assignments,
absolute and relative imports, call edges) behind a language-dispatching
parser front end.
- Incremental indexing keyed on content hash; deleted files are pruned.
- Import cycle detection (iterative Tarjan SCC) + 'cycles' command.
- Structured architecture report ('explain'), JSON 'export', 'projects'.
- Web UI: 'codeatlas serve' — FastAPI backend plus a single dependency-free
HTML frontend with an interactive dependency map, file and symbol browsers.
Housekeeping
- LICENSE, CONTRIBUTING.md, CI across 3 OSes with format + mypy + coverage,
versioned SQLite schema, project-name sanitising, README/README_CN/CLAUDE.md
rewritten. 35 -> 100 tests, 83% coverage.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017jzzJmrj7U9n7SbduD615V
Co-authored-by: AudreyYZY <84211946+AudreyYZY@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
… import-resolution fixes
Fixes
Features
Housekeeping
Claude-Session: https://claude.ai/code/session_017jzzJmrj7U9n7SbduD615V