code-atlas-mcp 0.1.2__tar.gz → 0.2.0.dev1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- code_atlas_mcp-0.2.0.dev1/.dockerignore +56 -0
- code_atlas_mcp-0.2.0.dev1/.github/workflows/release.yml +94 -0
- code_atlas_mcp-0.2.0.dev1/CHANGELOG.md +323 -0
- code_atlas_mcp-0.2.0.dev1/Dockerfile +63 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/PKG-INFO +2 -2
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/atlas.toml +8 -4
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/pyproject.toml +41 -2
- code_atlas_mcp-0.2.0.dev1/src/code_atlas/__init__.py +5 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/cli.py +64 -58
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/events.py +2 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/graph/client.py +109 -7
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/indexing/consumers.py +66 -41
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/indexing/orchestrator.py +306 -142
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/parsing/languages/cpp.py +2 -2
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/parsing/languages/go.py +1 -1
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/parsing/languages/jvm.py +2 -2
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/parsing/languages/php.py +1 -1
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/parsing/languages/python.py +226 -3
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/parsing/languages/ruby.py +1 -1
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/parsing/languages/rust.py +1 -1
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/parsing/languages/typescript.py +106 -3
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/search/embeddings.py +44 -25
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/search/engine.py +31 -2
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/search/guidance.py +24 -2
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/server/analysis.py +277 -1
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/server/mcp.py +20 -4
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/settings.py +31 -4
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/telemetry.py +2 -2
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/integration/server/test_mcp.py +51 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/indexing/test_orchestrator.py +77 -6
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/parsing/test_python.py +175 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/parsing/test_typescript.py +79 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/search/test_embeddings.py +66 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/search/test_engine.py +102 -0
- code_atlas_mcp-0.1.2/.github/workflows/release.yml +0 -55
- code_atlas_mcp-0.1.2/Dockerfile +0 -32
- code_atlas_mcp-0.1.2/src/code_atlas/__init__.py +0 -3
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/.atlasignore +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/.env.dist +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/.github/FUNDING.yml +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/.github/dependabot.yml +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/.github/labels.yml +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/.github/workflows/ci.yml +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/.github/workflows/labels.yml +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/.github/workflows/security.yml +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/.gitignore +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/.pre-commit-config.yaml +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/.prettierignore +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/.prettierrc.yaml +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/CLAUDE.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/CONTRIBUTING.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/LICENSE +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/README.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/agent.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docker-compose.yml +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docs/adr/0000-template.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docs/adr/0001-memgraph-as-database.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docs/adr/0002-build-from-scratch.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docs/adr/0003-python-rust-hybrid.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docs/adr/0004-event-driven-tiered-pipeline.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docs/adr/0005-deployment-process-model.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docs/adr/0006-pure-python-tree-sitter.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docs/adr/0007-qualified-name-strategy.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docs/adr/README.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docs/architecture.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docs/benchmarks.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docs/guides/adding-languages.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docs/guides/configuration.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docs/guides/repo-guidelines.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docs/guides/usage.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/docs/landscape.md +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/ruff.toml +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/graph/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/indexing/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/indexing/daemon.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/indexing/watcher.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/parsing/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/parsing/ast.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/parsing/detectors.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/parsing/languages/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/parsing/languages/markdown.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/schema.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/search/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/server/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/src/code_atlas/server/health.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/bench/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/bench/conftest.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/bench/test_bench_concurrent.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/bench/test_bench_indexing.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/bench/test_bench_memory.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/bench/test_bench_parser.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/bench/test_bench_query.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/conftest.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/integration/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/integration/conftest.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/integration/graph/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/integration/graph/test_client.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/integration/indexing/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/integration/indexing/test_consumers.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/integration/indexing/test_monorepo.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/integration/indexing/test_orchestrator.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/integration/indexing/test_watcher.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/integration/search/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/integration/search/test_embeddings.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/integration/search/test_engine.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/integration/server/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/conftest.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/indexing/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/indexing/test_monorepo.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/indexing/test_watcher.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/parsing/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/parsing/test_cpp.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/parsing/test_detectors.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/parsing/test_go.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/parsing/test_jvm.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/parsing/test_php.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/parsing/test_ruby.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/parsing/test_rust.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/search/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/search/test_guidance.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/server/__init__.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/server/test_health.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/server/test_mcp.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/test_cli.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/test_schema.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/tests/unit/test_telemetry.py +0 -0
- {code_atlas_mcp-0.1.2 → code_atlas_mcp-0.2.0.dev1}/uv.lock +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*.egg-info/
|
|
5
|
+
dist/
|
|
6
|
+
build/
|
|
7
|
+
.venv/
|
|
8
|
+
.uv/
|
|
9
|
+
|
|
10
|
+
# Test / lint caches
|
|
11
|
+
.pytest_cache/
|
|
12
|
+
.mypy_cache/
|
|
13
|
+
.ty_cache/
|
|
14
|
+
.ruff_cache/
|
|
15
|
+
.coverage
|
|
16
|
+
htmlcov/
|
|
17
|
+
coverage.xml
|
|
18
|
+
|
|
19
|
+
# IDE
|
|
20
|
+
.idea/
|
|
21
|
+
.vscode/
|
|
22
|
+
*.swp
|
|
23
|
+
*.swo
|
|
24
|
+
*~
|
|
25
|
+
|
|
26
|
+
# OS
|
|
27
|
+
.DS_Store
|
|
28
|
+
Thumbs.db
|
|
29
|
+
|
|
30
|
+
# Node (pre-commit)
|
|
31
|
+
node_modules/
|
|
32
|
+
|
|
33
|
+
# Docker
|
|
34
|
+
docker-compose.yml
|
|
35
|
+
docker-compose.override.yml
|
|
36
|
+
Dockerfile
|
|
37
|
+
.dockerignore
|
|
38
|
+
|
|
39
|
+
# Git
|
|
40
|
+
.git/
|
|
41
|
+
.gitignore
|
|
42
|
+
|
|
43
|
+
# Agent / local config
|
|
44
|
+
.claude/
|
|
45
|
+
.tasks/
|
|
46
|
+
CLAUDE.md
|
|
47
|
+
CLAUDE.local.md
|
|
48
|
+
|
|
49
|
+
# Data / secrets
|
|
50
|
+
data/
|
|
51
|
+
.env
|
|
52
|
+
.env.*
|
|
53
|
+
atlas.local.toml
|
|
54
|
+
|
|
55
|
+
# Tests (not needed in production image)
|
|
56
|
+
tests/
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
force:
|
|
7
|
+
description: "Force bump level (empty = auto-detect from commits)"
|
|
8
|
+
required: false
|
|
9
|
+
type: choice
|
|
10
|
+
options: ["", patch, minor, major]
|
|
11
|
+
default: ""
|
|
12
|
+
prerelease:
|
|
13
|
+
description: "Create a prerelease version"
|
|
14
|
+
required: false
|
|
15
|
+
type: boolean
|
|
16
|
+
default: false
|
|
17
|
+
|
|
18
|
+
permissions:
|
|
19
|
+
contents: read
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
# ------------------------------------------------------------------- #
|
|
23
|
+
# Job 1: Version bump, changelog, tag, push, GitHub Release
|
|
24
|
+
# ------------------------------------------------------------------- #
|
|
25
|
+
release:
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
concurrency:
|
|
28
|
+
group: release
|
|
29
|
+
cancel-in-progress: false
|
|
30
|
+
permissions:
|
|
31
|
+
contents: write
|
|
32
|
+
|
|
33
|
+
steps:
|
|
34
|
+
- uses: actions/checkout@v6
|
|
35
|
+
with:
|
|
36
|
+
fetch-depth: 0
|
|
37
|
+
ref: ${{ github.ref_name }}
|
|
38
|
+
|
|
39
|
+
- name: Pin to triggering SHA
|
|
40
|
+
run: git reset --hard ${{ github.sha }}
|
|
41
|
+
|
|
42
|
+
- name: Semantic Release
|
|
43
|
+
id: release
|
|
44
|
+
uses: python-semantic-release/python-semantic-release@v10
|
|
45
|
+
with:
|
|
46
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
47
|
+
git_committer_name: "github-actions[bot]"
|
|
48
|
+
git_committer_email: "github-actions[bot]@users.noreply.github.com"
|
|
49
|
+
force: ${{ inputs.force || '' }}
|
|
50
|
+
prerelease: ${{ inputs.prerelease || false }}
|
|
51
|
+
|
|
52
|
+
- name: Publish GitHub Release
|
|
53
|
+
if: steps.release.outputs.released == 'true'
|
|
54
|
+
uses: python-semantic-release/publish-action@v10
|
|
55
|
+
with:
|
|
56
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
57
|
+
tag: ${{ steps.release.outputs.tag }}
|
|
58
|
+
|
|
59
|
+
outputs:
|
|
60
|
+
released: ${{ steps.release.outputs.released }}
|
|
61
|
+
version: ${{ steps.release.outputs.version }}
|
|
62
|
+
tag: ${{ steps.release.outputs.tag }}
|
|
63
|
+
is_prerelease: ${{ steps.release.outputs.is_prerelease }}
|
|
64
|
+
|
|
65
|
+
# ------------------------------------------------------------------- #
|
|
66
|
+
# Job 2: Build and publish to PyPI
|
|
67
|
+
# ------------------------------------------------------------------- #
|
|
68
|
+
publish-pypi:
|
|
69
|
+
needs: release
|
|
70
|
+
if: needs.release.outputs.released == 'true'
|
|
71
|
+
runs-on: ubuntu-latest
|
|
72
|
+
environment:
|
|
73
|
+
name: pypi
|
|
74
|
+
url: https://pypi.org/p/code-atlas-mcp
|
|
75
|
+
permissions:
|
|
76
|
+
contents: read
|
|
77
|
+
id-token: write
|
|
78
|
+
|
|
79
|
+
steps:
|
|
80
|
+
- uses: actions/checkout@v6
|
|
81
|
+
with:
|
|
82
|
+
ref: ${{ needs.release.outputs.tag }}
|
|
83
|
+
|
|
84
|
+
- uses: astral-sh/setup-uv@v7
|
|
85
|
+
with:
|
|
86
|
+
enable-cache: true
|
|
87
|
+
|
|
88
|
+
- uses: actions/setup-python@v6
|
|
89
|
+
with:
|
|
90
|
+
python-version: "3.14-dev"
|
|
91
|
+
|
|
92
|
+
- run: uv build
|
|
93
|
+
|
|
94
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
# CHANGELOG
|
|
2
|
+
|
|
3
|
+
<!-- version list -->
|
|
4
|
+
|
|
5
|
+
## v0.2.0-dev.1 (2026-02-23)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- Address PR #2 review — schema logging, concurrency tests, duration
|
|
10
|
+
([#2](https://github.com/SerPeter/code-atlas/pull/2),
|
|
11
|
+
[`5107b24`](https://github.com/SerPeter/code-atlas/commit/5107b24a7dfbcb44cadc7917f632ae6a9743c057))
|
|
12
|
+
|
|
13
|
+
- **ci**: Resolve ty check failures with --all-extras in CI
|
|
14
|
+
([`3f74816`](https://github.com/SerPeter/code-atlas/commit/3f7481635091d2d676aed75c3fbcaa5db4332242))
|
|
15
|
+
|
|
16
|
+
- **consumers**: Group batches by project in Tier1/Tier2
|
|
17
|
+
([#2](https://github.com/SerPeter/code-atlas/pull/2),
|
|
18
|
+
[`5107b24`](https://github.com/SerPeter/code-atlas/commit/5107b24a7dfbcb44cadc7917f632ae6a9743c057))
|
|
19
|
+
|
|
20
|
+
### Build System
|
|
21
|
+
|
|
22
|
+
- **release**: Add python-semantic-release v10 for automated releases
|
|
23
|
+
([`044e9a3`](https://github.com/SerPeter/code-atlas/commit/044e9a31c5f7673a4be45a6519860d247e1b3cb1))
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
- **analysis**: Add quality sub-analysis with health score
|
|
28
|
+
([#4](https://github.com/SerPeter/code-atlas/pull/4),
|
|
29
|
+
[`37f2113`](https://github.com/SerPeter/code-atlas/commit/37f2113efa2ed776dec97a685b9e199014fb7f4a))
|
|
30
|
+
|
|
31
|
+
- **analysis**: Quality sub-analysis with health score
|
|
32
|
+
([#4](https://github.com/SerPeter/code-atlas/pull/4),
|
|
33
|
+
[`37f2113`](https://github.com/SerPeter/code-atlas/commit/37f2113efa2ed776dec97a685b9e199014fb7f4a))
|
|
34
|
+
|
|
35
|
+
- **docker**: Add McpSettings, multi-stage Dockerfile, and .dockerignore
|
|
36
|
+
([`88ac0ba`](https://github.com/SerPeter/code-atlas/commit/88ac0ba93d2fc4d56fb362805c257c77e978351e))
|
|
37
|
+
|
|
38
|
+
- **parser**: Type-only import distinction + USES_TYPE edges
|
|
39
|
+
([#4](https://github.com/SerPeter/code-atlas/pull/4),
|
|
40
|
+
[`37f2113`](https://github.com/SerPeter/code-atlas/commit/37f2113efa2ed776dec97a685b9e199014fb7f4a))
|
|
41
|
+
|
|
42
|
+
- **parser**: Type-only import distinction + USES_TYPE edges
|
|
43
|
+
([#3](https://github.com/SerPeter/code-atlas/pull/3),
|
|
44
|
+
[`23ba25c`](https://github.com/SerPeter/code-atlas/commit/23ba25cbe0417b7d4816387744e5c51f4331a618))
|
|
45
|
+
|
|
46
|
+
- **scope**: Ruff-style include/exclude pattern system
|
|
47
|
+
([#2](https://github.com/SerPeter/code-atlas/pull/2),
|
|
48
|
+
[`5107b24`](https://github.com/SerPeter/code-atlas/commit/5107b24a7dfbcb44cadc7917f632ae6a9743c057))
|
|
49
|
+
|
|
50
|
+
- **search**: Add label boost and code_only filter to hybrid search
|
|
51
|
+
([#2](https://github.com/SerPeter/code-atlas/pull/2),
|
|
52
|
+
[`5107b24`](https://github.com/SerPeter/code-atlas/commit/5107b24a7dfbcb44cadc7917f632ae6a9743c057))
|
|
53
|
+
|
|
54
|
+
### Performance Improvements
|
|
55
|
+
|
|
56
|
+
- **indexing**: Concurrent embeddings, shared monorepo pipeline, clean logs
|
|
57
|
+
([#2](https://github.com/SerPeter/code-atlas/pull/2),
|
|
58
|
+
[`5107b24`](https://github.com/SerPeter/code-atlas/commit/5107b24a7dfbcb44cadc7917f632ae6a9743c057))
|
|
59
|
+
|
|
60
|
+
### Refactoring
|
|
61
|
+
|
|
62
|
+
- **cli**: Shift verbosity levels — silent default, logs behind -v
|
|
63
|
+
([#2](https://github.com/SerPeter/code-atlas/pull/2),
|
|
64
|
+
[`5107b24`](https://github.com/SerPeter/code-atlas/commit/5107b24a7dfbcb44cadc7917f632ae6a9743c057))
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
## v0.1.2 (2026-02-17)
|
|
68
|
+
|
|
69
|
+
### Bug Fixes
|
|
70
|
+
|
|
71
|
+
- Bump version to 0.1.2 in pyproject.toml and update uv.lock
|
|
72
|
+
([`f0baf60`](https://github.com/SerPeter/code-atlas/commit/f0baf6030a522b869e5b4cfcc066b8321714ee8a))
|
|
73
|
+
|
|
74
|
+
- Prevent Memgraph OOM crashes with Docker memory limit
|
|
75
|
+
([`e4dc6a9`](https://github.com/SerPeter/code-atlas/commit/e4dc6a93b3784a420cdd496e9c9b0d08ae2505ff))
|
|
76
|
+
|
|
77
|
+
- **cli**: Clean up atlas index output with progress bar and quieter logs
|
|
78
|
+
([`a0104cf`](https://github.com/SerPeter/code-atlas/commit/a0104cf978f469cf7702fad7f67ab82eed773c92))
|
|
79
|
+
|
|
80
|
+
- **doctor**: Show loaded config file paths in diagnostics
|
|
81
|
+
([`21f7bf2`](https://github.com/SerPeter/code-atlas/commit/21f7bf26ea36837a9a42b51b76ef2dfb488bb0e7))
|
|
82
|
+
|
|
83
|
+
- **graph**: Replace OR scans with uid-only lookups in embedding queries
|
|
84
|
+
([`71e5cef`](https://github.com/SerPeter/code-atlas/commit/71e5cefbb0ddc027392d41422b5c326c952ebeb5))
|
|
85
|
+
|
|
86
|
+
### Chores
|
|
87
|
+
|
|
88
|
+
- Update cryptography package version to 46.0.5 in uv.lock
|
|
89
|
+
([`aea84db`](https://github.com/SerPeter/code-atlas/commit/aea84dbcd73914b8423b5f3b4f3a215ff01455a0))
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
## v0.1.1 (2026-02-16)
|
|
93
|
+
|
|
94
|
+
### Bug Fixes
|
|
95
|
+
|
|
96
|
+
- Bump version to 0.1.1 in pyproject.toml
|
|
97
|
+
([`9889860`](https://github.com/SerPeter/code-atlas/commit/988986038b9faefe994f8cf21f99d8a531cc9c9b))
|
|
98
|
+
|
|
99
|
+
- Load .env from cwd so uvx installs pick up API keys
|
|
100
|
+
([`68e1f2c`](https://github.com/SerPeter/code-atlas/commit/68e1f2c234ab07fcc19f9973bc7760b670c21cc5))
|
|
101
|
+
|
|
102
|
+
### Documentation
|
|
103
|
+
|
|
104
|
+
- Update Quick Start for PyPI install via uvx
|
|
105
|
+
([`5ce16cb`](https://github.com/SerPeter/code-atlas/commit/5ce16cbda7fab88184205c7f65f12fbbf22c15f5))
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
## v0.1.0 (2026-02-15)
|
|
109
|
+
|
|
110
|
+
### Bug Fixes
|
|
111
|
+
|
|
112
|
+
- Bump version to 0.1.0 in pyproject.toml
|
|
113
|
+
([`222542a`](https://github.com/SerPeter/code-atlas/commit/222542ab5a698c8c32bbe4f69473567114fce712))
|
|
114
|
+
|
|
115
|
+
- Replace placeholder username with SerPeter and rename PyPI package to code-atlas-mcp
|
|
116
|
+
([`08a438f`](https://github.com/SerPeter/code-atlas/commit/08a438fa62a2a77b729a3787367484a0f8b69898))
|
|
117
|
+
|
|
118
|
+
- Replace placeholder username with SerPeter and rename PyPI package to code-atlas-mcp
|
|
119
|
+
([`0a83fd4`](https://github.com/SerPeter/code-atlas/commit/0a83fd4b1fb4f4d424d3170e27b2815ee072ea5f))
|
|
120
|
+
|
|
121
|
+
- Resolve end-to-end indexing and search pipeline issues
|
|
122
|
+
([`04bce9a`](https://github.com/SerPeter/code-atlas/commit/04bce9a239162923987882e8a32ba42f7ca9de90))
|
|
123
|
+
|
|
124
|
+
- Resolve live MCP tool testing issues
|
|
125
|
+
([`0a4a9ec`](https://github.com/SerPeter/code-atlas/commit/0a4a9ecda02bc07e01d5c8f78ec69c163ed5556a))
|
|
126
|
+
|
|
127
|
+
- **graph**: Tighten CALLS strategy 4 to unique-name-only matching
|
|
128
|
+
([`e3d8238`](https://github.com/SerPeter/code-atlas/commit/e3d82385f9255742073f7ee1cd621cbc05022a69))
|
|
129
|
+
|
|
130
|
+
- **mcp**: Resolve CALLS edges, ranking noise, staleness, and visibility boost
|
|
131
|
+
([`c7e788e`](https://github.com/SerPeter/code-atlas/commit/c7e788ef4a107fdaec44368c86083e85eeea9201))
|
|
132
|
+
|
|
133
|
+
- **search**: Finalize Epic 2 — migrate to Memgraph 3.7 DDL and fix integration bugs
|
|
134
|
+
([`bceff4c`](https://github.com/SerPeter/code-atlas/commit/bceff4c34a92066dcffcfa5b11ab17cb0716e2e1))
|
|
135
|
+
|
|
136
|
+
### Chores
|
|
137
|
+
|
|
138
|
+
- Update dependencies, pre-commit hooks, and Docker images to latest
|
|
139
|
+
([`80f87eb`](https://github.com/SerPeter/code-atlas/commit/80f87ebacb679159e5241ff9d0ab08aa1a2d0085))
|
|
140
|
+
|
|
141
|
+
- Update setup-uv and CodeQL action versions in CI/CD workflows
|
|
142
|
+
([`25572cf`](https://github.com/SerPeter/code-atlas/commit/25572cf10cd5a4d7ac60286d2109525cf7661332))
|
|
143
|
+
|
|
144
|
+
### Documentation
|
|
145
|
+
|
|
146
|
+
- Add landscape, configuration, usage guides and enrich MCP tool schemas
|
|
147
|
+
([`951ddc8`](https://github.com/SerPeter/code-atlas/commit/951ddc8095ce4a0b01b7798d779ae7cbf182ce9f))
|
|
148
|
+
|
|
149
|
+
- Add task tracking section to CLAUDE.md and project documentation
|
|
150
|
+
([`8ddda04`](https://github.com/SerPeter/code-atlas/commit/8ddda044432322e6f1795ed03e40059c9337d113))
|
|
151
|
+
|
|
152
|
+
- Clean up references and move local planning to CLAUDE.local.md
|
|
153
|
+
([`b6c8788`](https://github.com/SerPeter/code-atlas/commit/b6c8788240474b09dd2b0c57ace14632afdf7b25))
|
|
154
|
+
|
|
155
|
+
- **adr**: Finalize ADR-0004 and ADR-0005, update architecture
|
|
156
|
+
([`0e8ad11`](https://github.com/SerPeter/code-atlas/commit/0e8ad11febe7ac6c43bff313456d138af235c3b9))
|
|
157
|
+
|
|
158
|
+
- **adr**: Refine ADR-0005 with deployment model research findings
|
|
159
|
+
([`8453162`](https://github.com/SerPeter/code-atlas/commit/8453162e67a62abb47c307e1eedb5bc61421e626))
|
|
160
|
+
|
|
161
|
+
- **guidelines**: Add repository guidelines for Code Atlas indexing
|
|
162
|
+
([`3ec3412`](https://github.com/SerPeter/code-atlas/commit/3ec34129a2eeb15576b551053e143b8a5e7be1c2))
|
|
163
|
+
|
|
164
|
+
### Features
|
|
165
|
+
|
|
166
|
+
- Scaffold project structure
|
|
167
|
+
([`1d9c2bb`](https://github.com/SerPeter/code-atlas/commit/1d9c2bbfc267c750ba22e280d5db731ee424388a))
|
|
168
|
+
|
|
169
|
+
- **cli**: Add global --quiet, --json, --verbose, --no-color output modes
|
|
170
|
+
([`098cfeb`](https://github.com/SerPeter/code-atlas/commit/098cfebf86f73fdd909cd7325e2ffc6f4eacf80b))
|
|
171
|
+
|
|
172
|
+
- **detectors**: Add pluggable pattern detector framework
|
|
173
|
+
([`fa5f39d`](https://github.com/SerPeter/code-atlas/commit/fa5f39df9304b44c866c1e6fcf7dac0d7aca9d90))
|
|
174
|
+
|
|
175
|
+
- **detectors**: Implement 6 core pattern detectors
|
|
176
|
+
([`eae3340`](https://github.com/SerPeter/code-atlas/commit/eae3340a3bc2b57e98b14bcf958a65956d806570))
|
|
177
|
+
|
|
178
|
+
- **docs**: Add heuristic doc-code linking via DOCUMENTS edges
|
|
179
|
+
([`f8672bd`](https://github.com/SerPeter/code-atlas/commit/f8672bd0487d7063b7fdbb81a05d84bf8a5efd76))
|
|
180
|
+
|
|
181
|
+
- **docs**: Add markdown parser with tree-sitter-markdown
|
|
182
|
+
([`e8d372c`](https://github.com/SerPeter/code-atlas/commit/e8d372c162652d6d73d1f66da5e14a61fcb2136a))
|
|
183
|
+
|
|
184
|
+
- **embeddings**: Add EmbedClient with litellm routing and Tier 3 pipeline
|
|
185
|
+
([`ad7c972`](https://github.com/SerPeter/code-atlas/commit/ad7c9726f2e48fdb8746b50547089c5c483bcb75))
|
|
186
|
+
|
|
187
|
+
- **embeddings**: Add three-tier embedding cache with Valkey backend
|
|
188
|
+
([`9bc9b4c`](https://github.com/SerPeter/code-atlas/commit/9bc9b4ce6997e1a47fa70b96d1a632cff84de152))
|
|
189
|
+
|
|
190
|
+
- **embeddings**: Handle embedding model changes robustly
|
|
191
|
+
([`c03990b`](https://github.com/SerPeter/code-atlas/commit/c03990bea435fb3ade935ef91a364aa0c9fa40d0))
|
|
192
|
+
|
|
193
|
+
- **graph**: Add library stub resolution for external dependencies
|
|
194
|
+
([`699fc1b`](https://github.com/SerPeter/code-atlas/commit/699fc1bc2163053a3d2e78ffe111992ce6ecd113))
|
|
195
|
+
|
|
196
|
+
- **graph**: Add query timeout protection for read queries
|
|
197
|
+
([`4c15338`](https://github.com/SerPeter/code-atlas/commit/4c153386fe40ce86015d92513ae4e48d8686b604))
|
|
198
|
+
|
|
199
|
+
- **health**: Add health/doctor CLI commands and MCP health_check tool
|
|
200
|
+
([`3f0a761`](https://github.com/SerPeter/code-atlas/commit/3f0a76189106997161cf24ff887577b9a4622b6c))
|
|
201
|
+
|
|
202
|
+
- **indexer**: Add FileScope class with nested .gitignore support
|
|
203
|
+
([`becbe91`](https://github.com/SerPeter/code-atlas/commit/becbe91bea050a2d353d6e543a83998200c855c6))
|
|
204
|
+
|
|
205
|
+
- **indexer**: Add git-based staleness detection for query results
|
|
206
|
+
([`7ddd19f`](https://github.com/SerPeter/code-atlas/commit/7ddd19fdf0d337c29f8bd4d61ea95aae218405fc))
|
|
207
|
+
|
|
208
|
+
- **indexer**: Implement Python indexer with atlas index and status commands
|
|
209
|
+
([`8a8c3dd`](https://github.com/SerPeter/code-atlas/commit/8a8c3dd8caacfa9fc61c08c44a429900a11112f6))
|
|
210
|
+
|
|
211
|
+
- **infra**: Add Valkey to Docker stack and Redis settings
|
|
212
|
+
([`a566e01`](https://github.com/SerPeter/code-atlas/commit/a566e01cffcf3cb9abfce8151eccd8a1653ea03c))
|
|
213
|
+
|
|
214
|
+
- **mcp**: Add 5-stage matching cascade and disambiguation ranking to get_node
|
|
215
|
+
([`5a0043f`](https://github.com/SerPeter/code-atlas/commit/5a0043ffd4a34322f1e129fb0cb7a11fff43c655))
|
|
216
|
+
|
|
217
|
+
- **mcp**: Add detail parameter to search tools for compact/full output modes
|
|
218
|
+
([`e6756c1`](https://github.com/SerPeter/code-atlas/commit/e6756c10122865c1bb27abfb5dd538c241fc5973))
|
|
219
|
+
|
|
220
|
+
- **mcp**: Add MCP Roots support with git root fallback
|
|
221
|
+
([`546b243`](https://github.com/SerPeter/code-atlas/commit/546b243dec3fa9f1bd9c48c535ee8fbd004c823d))
|
|
222
|
+
|
|
223
|
+
- **mcp**: Add subagent guidance tools for AI coding agents
|
|
224
|
+
([`3bd3ab2`](https://github.com/SerPeter/code-atlas/commit/3bd3ab26d057c2de2fcabd5dbec77ec6e404c02d))
|
|
225
|
+
|
|
226
|
+
- **mcp**: Implement MCP server with 7 tools for AI agent access
|
|
227
|
+
([`ea19cf8`](https://github.com/SerPeter/code-atlas/commit/ea19cf81c29ea08d964c41612f26c79b9bcea700))
|
|
228
|
+
|
|
229
|
+
- **monorepo**: Add monorepo support with sub-project detection and cross-project resolution
|
|
230
|
+
([`5d8c029`](https://github.com/SerPeter/code-atlas/commit/5d8c029d849f46d929be57f7a7614dcf57f07a68))
|
|
231
|
+
|
|
232
|
+
- **naming**: Worktree-aware naming and monorepo sub-project prefixing
|
|
233
|
+
([`2acdfb3`](https://github.com/SerPeter/code-atlas/commit/2acdfb33ba4b486f966272a01cf8a37f670661f6))
|
|
234
|
+
|
|
235
|
+
- **parser**: Add py-tree-sitter parser, implement Tier 2 pipeline, drop Rust
|
|
236
|
+
([`d56e7d2`](https://github.com/SerPeter/code-atlas/commit/d56e7d2a686ec279a52d85bbc4903f4d85f51a4e))
|
|
237
|
+
|
|
238
|
+
- **parsing**: Add multi-language support (10 languages, 7 modules)
|
|
239
|
+
([`2c53ec8`](https://github.com/SerPeter/code-atlas/commit/2c53ec8b5c406fc21e1484aadfba723e2966c664))
|
|
240
|
+
|
|
241
|
+
- **parsing**: Add Python meta-programming quick wins
|
|
242
|
+
([`7e57c1d`](https://github.com/SerPeter/code-atlas/commit/7e57c1da0b347f906b1d54b995a70af6ca973869))
|
|
243
|
+
|
|
244
|
+
- **pipeline**: Add AST diffing with content-hash delta upsert
|
|
245
|
+
([`c265cd1`](https://github.com/SerPeter/code-atlas/commit/c265cd1dd68df376726d987841176df8d08f8b2d))
|
|
246
|
+
|
|
247
|
+
- **pipeline**: Add event bus and tiered consumer prototype
|
|
248
|
+
([`42d5983`](https://github.com/SerPeter/code-atlas/commit/42d5983a4f28bbc8a21593801c496b7e7c48bc48))
|
|
249
|
+
|
|
250
|
+
- **pipeline**: Add git-based delta indexing with file-level change detection
|
|
251
|
+
([`368973c`](https://github.com/SerPeter/code-atlas/commit/368973ca46baaa99a2d40ddc339edb6bf55b29be))
|
|
252
|
+
|
|
253
|
+
- **pipeline**: Compute actual significance level for delta gating
|
|
254
|
+
([`62b5076`](https://github.com/SerPeter/code-atlas/commit/62b507618e8f83e07d3635b952f115e10cdf6a4d))
|
|
255
|
+
|
|
256
|
+
- **schema**: Implement Memgraph graph schema with language-agnostic model
|
|
257
|
+
([`ec310b2`](https://github.com/SerPeter/code-atlas/commit/ec310b268a156061e55a9a1b335ec28ff85b0c56))
|
|
258
|
+
|
|
259
|
+
- **search**: Add configurable post-fusion result filtering
|
|
260
|
+
([`39f9ac3`](https://github.com/SerPeter/code-atlas/commit/39f9ac36ce1a1498319f68cda9180ade0fdd25f8))
|
|
261
|
+
|
|
262
|
+
- **search**: Add context expander with parallel Cypher queries
|
|
263
|
+
([`6edb1f2`](https://github.com/SerPeter/code-atlas/commit/6edb1f29c26aa6f89b8358d57fc3daa8ccd44611))
|
|
264
|
+
|
|
265
|
+
- **search**: Add full-body source text to entity indexing
|
|
266
|
+
([`3fbe54b`](https://github.com/SerPeter/code-atlas/commit/3fbe54bf30b65d57e6a2d7ae731583b45af061f3))
|
|
267
|
+
|
|
268
|
+
- **search**: Add hybrid search with RRF fusion across graph, vector, and BM25 channels
|
|
269
|
+
([`11977f8`](https://github.com/SerPeter/code-atlas/commit/11977f8387fb0054d70ad9d3f28da7f56171cde3))
|
|
270
|
+
|
|
271
|
+
- **search**: Add token-budget context assembly with priority ordering
|
|
272
|
+
([`e4b0bd2`](https://github.com/SerPeter/code-atlas/commit/e4b0bd216a48f3738a2fff6707fa28d29f137958))
|
|
273
|
+
|
|
274
|
+
- **search**: Add vector index DDL, scope/threshold filtering, and query cache
|
|
275
|
+
([`8f7e053`](https://github.com/SerPeter/code-atlas/commit/8f7e05305c2b4f692c0a59cc94f70aeeb248e14b))
|
|
276
|
+
|
|
277
|
+
- **server**: Add analyze_repo and generate_diagram MCP tools
|
|
278
|
+
([`ff875c5`](https://github.com/SerPeter/code-atlas/commit/ff875c5f6e91a5579e6c2b021d1fd0b9667a161a))
|
|
279
|
+
|
|
280
|
+
- **settings**: Add lightweight mode (no embeddings)
|
|
281
|
+
([`57d290c`](https://github.com/SerPeter/code-atlas/commit/57d290c12b5fa2ff8111d1e2ded647dc47562cb8))
|
|
282
|
+
|
|
283
|
+
- **telemetry**: Add OpenTelemetry tracing and metrics integration
|
|
284
|
+
([`e1544ce`](https://github.com/SerPeter/code-atlas/commit/e1544ce490532a8a32fbdc8d23b2313c9f6a7193))
|
|
285
|
+
|
|
286
|
+
- **watcher**: Add file watcher with hybrid debounce for real-time indexing
|
|
287
|
+
([`95b4757`](https://github.com/SerPeter/code-atlas/commit/95b4757593c4e81556b0ed43e38e20a5145d77d0))
|
|
288
|
+
|
|
289
|
+
### Performance Improvements
|
|
290
|
+
|
|
291
|
+
- Fix event loop blocking + add benchmark suite
|
|
292
|
+
([`0774451`](https://github.com/SerPeter/code-atlas/commit/0774451ef1ec2145bce3aa8b5332fd536e2a903f))
|
|
293
|
+
|
|
294
|
+
- **graph**: Optimize graph_search with UNION ALL query
|
|
295
|
+
([`b90cd19`](https://github.com/SerPeter/code-atlas/commit/b90cd191a12b425694c90a807866a0a941ae819e))
|
|
296
|
+
|
|
297
|
+
### Refactoring
|
|
298
|
+
|
|
299
|
+
- Reorganize flat layout into feature-based package structure
|
|
300
|
+
([`e8c8366`](https://github.com/SerPeter/code-atlas/commit/e8c83664d42288de0439ecaca0d26b7dfc8cffde))
|
|
301
|
+
|
|
302
|
+
- **parsing**: Extract language-specific code into plugin system
|
|
303
|
+
([`be44dc7`](https://github.com/SerPeter/code-atlas/commit/be44dc7f716d598dafbf41e100a455e8a1d39925))
|
|
304
|
+
|
|
305
|
+
- **schema**: Remove unused ADR node label
|
|
306
|
+
([`2b54b86`](https://github.com/SerPeter/code-atlas/commit/2b54b86247ce562416d7881ee1a860364425967d))
|
|
307
|
+
|
|
308
|
+
- **tests**: Reorganize test directory to mirror source layout
|
|
309
|
+
([`fb63c57`](https://github.com/SerPeter/code-atlas/commit/fb63c577e8d075e4c2dd1986d81b3ece110585a8))
|
|
310
|
+
|
|
311
|
+
### Testing
|
|
312
|
+
|
|
313
|
+
- Prune 27 trivial unit tests that violate high-gear principle
|
|
314
|
+
([`a18af95`](https://github.com/SerPeter/code-atlas/commit/a18af950a419215e16891a5c0066a10bc8023d1e))
|
|
315
|
+
|
|
316
|
+
- **infra**: Add testcontainers for auto-managed integration test infrastructure
|
|
317
|
+
([`a6958d2`](https://github.com/SerPeter/code-atlas/commit/a6958d2bbbaccb825bf09d11f9fec3b0d5e95d35))
|
|
318
|
+
|
|
319
|
+
- **mcp**: Add lock and ignore staleness mode tests
|
|
320
|
+
([`69646d8`](https://github.com/SerPeter/code-atlas/commit/69646d84c46756e160d3c31e9286599544ac2ff1))
|
|
321
|
+
|
|
322
|
+
- **watcher**: Add end-to-end file change integration test
|
|
323
|
+
([`6c594df`](https://github.com/SerPeter/code-atlas/commit/6c594df1a6328de189f643c548457479927e9ae9))
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# Code Atlas — CLI + MCP server
|
|
3
|
+
#
|
|
4
|
+
# Use cases:
|
|
5
|
+
# docker run -v /project:/data/project atlas index /data/project
|
|
6
|
+
# docker run -p 8000:8000 atlas mcp
|
|
7
|
+
# docker run atlas search "query"
|
|
8
|
+
#
|
|
9
|
+
# Note: stdio MCP transport requires a local process, not a container.
|
|
10
|
+
# For AI agent sessions, prefer running `atlas mcp` directly on the host.
|
|
11
|
+
# =============================================================================
|
|
12
|
+
|
|
13
|
+
FROM python:3.14-slim AS builder
|
|
14
|
+
|
|
15
|
+
WORKDIR /app
|
|
16
|
+
|
|
17
|
+
# Install uv
|
|
18
|
+
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
|
|
19
|
+
|
|
20
|
+
# Install Python dependencies first (cached layer — changes less than source)
|
|
21
|
+
COPY pyproject.toml uv.lock ./
|
|
22
|
+
RUN --mount=type=cache,target=/root/.cache/uv \
|
|
23
|
+
uv sync --frozen --no-dev --no-install-project
|
|
24
|
+
|
|
25
|
+
# Copy source + metadata, then install the project itself
|
|
26
|
+
COPY src/ src/
|
|
27
|
+
COPY README.md ./
|
|
28
|
+
RUN --mount=type=cache,target=/root/.cache/uv \
|
|
29
|
+
uv sync --frozen --no-dev
|
|
30
|
+
|
|
31
|
+
# =============================================================================
|
|
32
|
+
FROM python:3.14-slim AS runtime
|
|
33
|
+
|
|
34
|
+
WORKDIR /app
|
|
35
|
+
|
|
36
|
+
# System deps: git for delta indexing / staleness checking
|
|
37
|
+
RUN apt-get update && \
|
|
38
|
+
apt-get install -y --no-install-recommends git && \
|
|
39
|
+
rm -rf /var/lib/apt/lists/*
|
|
40
|
+
|
|
41
|
+
# Non-root user
|
|
42
|
+
RUN groupadd --gid 1000 atlas && \
|
|
43
|
+
useradd --uid 1000 --gid atlas --create-home atlas
|
|
44
|
+
|
|
45
|
+
# Copy uv binary and the fully-built virtualenv from builder
|
|
46
|
+
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
|
|
47
|
+
COPY --from=builder --chown=atlas:atlas /app /app
|
|
48
|
+
|
|
49
|
+
# Container-sensible defaults: HTTP transport, bind all interfaces.
|
|
50
|
+
# Override at runtime with -e or docker-compose environment.
|
|
51
|
+
ENV ATLAS_MCP__TRANSPORT=streamable-http \
|
|
52
|
+
ATLAS_MCP__HOST=0.0.0.0
|
|
53
|
+
|
|
54
|
+
EXPOSE 8000
|
|
55
|
+
|
|
56
|
+
USER atlas
|
|
57
|
+
|
|
58
|
+
LABEL org.opencontainers.image.title="code-atlas" \
|
|
59
|
+
org.opencontainers.image.description="Code intelligence graph — index, search, and serve codebases via MCP" \
|
|
60
|
+
org.opencontainers.image.licenses="Apache-2.0"
|
|
61
|
+
|
|
62
|
+
ENTRYPOINT ["uv", "run", "atlas"]
|
|
63
|
+
CMD ["mcp"]
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-atlas-mcp
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0.dev1
|
|
4
4
|
Summary: A code intelligence graph that gives AI coding agents deep, token-efficient understanding of your codebase.
|
|
5
5
|
Project-URL: Homepage, https://github.com/SerPeter/code-atlas
|
|
6
6
|
Project-URL: Documentation, https://github.com/SerPeter/code-atlas/tree/main/docs
|
|
7
7
|
Project-URL: Repository, https://github.com/SerPeter/code-atlas
|
|
8
8
|
Project-URL: Issues, https://github.com/SerPeter/code-atlas/issues
|
|
9
|
-
Project-URL: Changelog, https://github.com/SerPeter/code-atlas/
|
|
9
|
+
Project-URL: Changelog, https://github.com/SerPeter/code-atlas/blob/main/CHANGELOG.md
|
|
10
10
|
Author: SerPeter
|
|
11
11
|
License-Expression: Apache-2.0
|
|
12
12
|
License-File: LICENSE
|
|
@@ -2,10 +2,14 @@
|
|
|
2
2
|
# See: https://github.com/SerPeter/code-atlas
|
|
3
3
|
|
|
4
4
|
[scope]
|
|
5
|
-
#
|
|
6
|
-
|
|
7
|
-
#
|
|
8
|
-
|
|
5
|
+
# Restrict indexing to these directory paths (leave empty for everything)
|
|
6
|
+
paths = []
|
|
7
|
+
# Override defaults entirely (uncomment to customize):
|
|
8
|
+
# include = ["*.py", "*.pyi"]
|
|
9
|
+
# exclude = [".git/", "node_modules/"]
|
|
10
|
+
# Extend defaults (recommended):
|
|
11
|
+
extend_include = []
|
|
12
|
+
extend_exclude = []
|
|
9
13
|
|
|
10
14
|
[libraries]
|
|
11
15
|
# Fully index these libraries (parse source, embed, full graph)
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "code-atlas-mcp"
|
|
7
|
-
version = "0.1
|
|
7
|
+
version = "0.2.0-dev.1"
|
|
8
8
|
description = "A code intelligence graph that gives AI coding agents deep, token-efficient understanding of your codebase."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "Apache-2.0"
|
|
@@ -82,7 +82,7 @@ Homepage = "https://github.com/SerPeter/code-atlas"
|
|
|
82
82
|
Documentation = "https://github.com/SerPeter/code-atlas/tree/main/docs"
|
|
83
83
|
Repository = "https://github.com/SerPeter/code-atlas"
|
|
84
84
|
Issues = "https://github.com/SerPeter/code-atlas/issues"
|
|
85
|
-
Changelog = "https://github.com/SerPeter/code-atlas/
|
|
85
|
+
Changelog = "https://github.com/SerPeter/code-atlas/blob/main/CHANGELOG.md"
|
|
86
86
|
|
|
87
87
|
# --------------------------------------------------------------------------- #
|
|
88
88
|
# Dev dependencies
|
|
@@ -149,4 +149,43 @@ allowed-unresolved-imports = [
|
|
|
149
149
|
"opentelemetry.*.*.*",
|
|
150
150
|
"opentelemetry.*.*.*.*",
|
|
151
151
|
"opentelemetry.*.*.*.*.*",
|
|
152
|
+
# tree-sitter grammars are optional extras — may not be installed.
|
|
153
|
+
"tree_sitter_c",
|
|
154
|
+
"tree_sitter_cpp",
|
|
155
|
+
"tree_sitter_c_sharp",
|
|
156
|
+
"tree_sitter_go",
|
|
157
|
+
"tree_sitter_java",
|
|
158
|
+
"tree_sitter_javascript",
|
|
159
|
+
"tree_sitter_php",
|
|
160
|
+
"tree_sitter_ruby",
|
|
161
|
+
"tree_sitter_rust",
|
|
162
|
+
"tree_sitter_typescript",
|
|
152
163
|
]
|
|
164
|
+
|
|
165
|
+
# --------------------------------------------------------------------------- #
|
|
166
|
+
# Semantic Release
|
|
167
|
+
# --------------------------------------------------------------------------- #
|
|
168
|
+
[tool.semantic_release]
|
|
169
|
+
version_toml = ["pyproject.toml:project.version"]
|
|
170
|
+
commit_parser = "conventional"
|
|
171
|
+
allow_zero_version = true # project is 0.x
|
|
172
|
+
major_on_zero = false # breaking changes bump minor while 0.x
|
|
173
|
+
tag_format = "v{version}" # matches existing v0.1.0, v0.1.1, v0.1.2
|
|
174
|
+
|
|
175
|
+
[tool.semantic_release.branches.main]
|
|
176
|
+
match = "(main|master)"
|
|
177
|
+
prerelease = false
|
|
178
|
+
prerelease_token = "rc"
|
|
179
|
+
|
|
180
|
+
[tool.semantic_release.branches.feature]
|
|
181
|
+
match = "feature/.*"
|
|
182
|
+
prerelease = true
|
|
183
|
+
prerelease_token = "dev"
|
|
184
|
+
|
|
185
|
+
[tool.semantic_release.changelog]
|
|
186
|
+
exclude_commit_patterns = ['chore\(release\):.*']
|
|
187
|
+
|
|
188
|
+
[tool.semantic_release.changelog.default_templates]
|
|
189
|
+
changelog_file = "CHANGELOG.md"
|
|
190
|
+
output_format = "md"
|
|
191
|
+
mask_initial_release = false # include full details for first PSR-managed release
|