Skip to content

feat: web UI, Python support, incremental indexing, cycle detection +… - #1

Merged
AudreyYZY merged 2 commits into
mainfrom
feat/web-ui-and-fixes
Aug 29, 2026
Merged

feat: web UI, Python support, incremental indexing, cycle detection +…#1
AudreyYZY merged 2 commits into
mainfrom
feat/web-ui-and-fixes

Conversation

@AudreyYZY

Copy link
Copy Markdown
Owner

… 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.

Claude-Session: https://claude.ai/code/session_017jzzJmrj7U9n7SbduD615V

… 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>
@AudreyYZY
AudreyYZY merged commit af4eaf3 into main Aug 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants