Skip to content

Commit 505c0ae

Browse files
committed
ci(rebrand): treemapper -> diffctx in workflows, scripts, benchmarks
1 parent 0fe7047 commit 505c0ae

18 files changed

Lines changed: 76 additions & 76 deletions

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ body:
1515
attributes:
1616
label: Steps to Reproduce
1717
placeholder: |
18-
1. Run `treemapper . --diff HEAD~1..HEAD`
18+
1. Run `diffctx . --diff HEAD~1..HEAD`
1919
2. See error
2020
validations:
2121
required: true
@@ -28,8 +28,8 @@ body:
2828
- type: input
2929
id: version
3030
attributes:
31-
label: TreeMapper Version
32-
description: Output of `treemapper -v`
31+
label: diffctx Version
32+
description: Output of `diffctx -v`
3333
placeholder: "1.3.0"
3434
validations:
3535
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
blank_issues_enabled: false
22
contact_links:
33
- name: Questions & Discussions
4-
url: https://github.com/nikolay-e/treemapper/discussions
4+
url: https://github.com/nikolay-e/diffctx/discussions
55
about: Ask questions and discuss ideas

.github/workflows/bench-sweep.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ concurrency:
2626

2727
env:
2828
REGISTRY: ghcr.io
29-
IMAGE_REF: ghcr.io/${{ github.repository_owner }}/treemapper-bench:latest
29+
IMAGE_REF: ghcr.io/${{ github.repository_owner }}/diffctx-bench:latest
3030
MANIFESTS_SUBDIR: v1
3131
TIMEOUT_PER_INSTANCE: '600'
3232
TAU: '0.12'
@@ -105,15 +105,15 @@ jobs:
105105
useradd -m -s /bin/bash github
106106
usermod -aG docker github
107107
echo "${GH_TOKEN}" | docker login ghcr.io -u nikolay-e --password-stdin
108-
docker pull ghcr.io/nikolay-e/treemapper-bench:latest
108+
docker pull ghcr.io/nikolay-e/diffctx-bench:latest
109109
nohup bash -c '
110110
mkdir -p /data/bench_repos
111111
BAKE_LOG=/data/bench_repos/bake.log
112112
if docker run --rm \
113113
--entrypoint python3 \
114114
-v /data/bench_repos:/cache/contextbench_repos \
115115
-e BAKE_PARALLELISM=16 \
116-
ghcr.io/nikolay-e/treemapper-bench:latest \
116+
ghcr.io/nikolay-e/diffctx-bench:latest \
117117
/app/scripts/bake_bench_cache.py /cache/contextbench_repos \
118118
>> "\${BAKE_LOG}" 2>&1; then
119119
touch /data/bench_repos/.ready
@@ -162,7 +162,7 @@ jobs:
162162
echo "server_ip=${SERVER_IP}" >> "${GITHUB_OUTPUT}"
163163
echo "${SERVER_ID}" > server_id.txt
164164
echo "Provisioned Hetzner CCX63 server_id=${SERVER_ID} ip=${SERVER_IP} name=${SERVER_NAME}"
165-
SSHCMD="ssh root@${SERVER_IP} -i <(security find-generic-password -s treemapper-bench-ssh-key -a \$USER -w)"
165+
SSHCMD="ssh root@${SERVER_IP} -i <(security find-generic-password -s diffctx-bench-ssh-key -a \$USER -w)"
166166
echo "SSH: ${SSHCMD}"
167167
168168
- name: Upload server_id for cleanup workflow
@@ -212,7 +212,7 @@ jobs:
212212
runs-on: ubuntu-latest
213213
timeout-minutes: 60
214214
container:
215-
image: ghcr.io/${{ github.repository_owner }}/treemapper-bench:latest
215+
image: ghcr.io/${{ github.repository_owner }}/diffctx-bench:latest
216216
credentials:
217217
username: ${{ github.actor }}
218218
password: ${{ secrets.GITHUB_TOKEN }}
@@ -404,7 +404,7 @@ jobs:
404404
runs-on: [self-hosted, large]
405405
timeout-minutes: 350
406406
container:
407-
image: ghcr.io/${{ github.repository_owner }}/treemapper-bench:latest
407+
image: ghcr.io/${{ github.repository_owner }}/diffctx-bench:latest
408408
credentials:
409409
username: ${{ github.actor }}
410410
password: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/cd.yml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# .github/workflows/cd.yml
2-
name: treemapper CD
2+
name: diffctx CD
33

44
permissions: {}
55

@@ -67,7 +67,7 @@ jobs:
6767
run: |
6868
CURRENT=$(python - <<'PY'
6969
import re
70-
content = open('src/treemapper/version.py').read()
70+
content = open('src/diffctx/version.py').read()
7171
m = re.search(r'__version__\s*=\s*["\']([^"\']+)["\']', content)
7272
print(m.group(1) if m else '')
7373
PY
@@ -87,7 +87,7 @@ jobs:
8787
import os, re, pathlib
8888
ver = os.environ["VERSION"]
8989
90-
p = pathlib.Path("src/treemapper/version.py")
90+
p = pathlib.Path("src/diffctx/version.py")
9191
s = p.read_text(encoding="utf-8")
9292
s, n = re.subn(r'__version__\s*=\s*["\'].*?["\']', f'__version__ = "{ver}"', s, count=1)
9393
assert n == 1, "version.py: __version__ assignment not found"
@@ -100,7 +100,7 @@ jobs:
100100
py.write_text(s, encoding="utf-8")
101101
PY
102102
echo "version.py:"
103-
cat src/treemapper/version.py
103+
cat src/diffctx/version.py
104104
echo "pyproject.toml (version line):"
105105
grep -E '^version\s*=' pyproject.toml
106106
@@ -111,7 +111,7 @@ jobs:
111111
run: |
112112
git config user.name "github-actions[bot]"
113113
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
114-
git add src/treemapper/version.py pyproject.toml
114+
git add src/diffctx/version.py pyproject.toml
115115
if ! git diff --staged --quiet; then
116116
git commit -m "Release version ${VERSION}"
117117
else
@@ -203,7 +203,7 @@ jobs:
203203
git clone repo.bundle repo
204204
cd repo
205205
git checkout "$TAG_NAME"
206-
cat src/treemapper/version.py
206+
cat src/diffctx/version.py
207207
grep -E '^version\s*=' pyproject.toml
208208
209209
- name: Set up Python
@@ -280,7 +280,7 @@ jobs:
280280
runs-on: ubuntu-latest
281281
environment:
282282
name: pypi
283-
url: https://pypi.org/p/treemapper
283+
url: https://pypi.org/p/diffctx
284284
permissions:
285285
id-token: write
286286
steps:
@@ -343,32 +343,32 @@ jobs:
343343
python -m pip install --upgrade pip
344344
# Poll PyPI until the new version is installable. Up to 5 minutes.
345345
for attempt in 1 2 3 4 5 6 7 8 9 10; do
346-
if python -m pip install "treemapper==${VERSION}"; then
347-
echo "Installed treemapper ${VERSION} on attempt $attempt"
346+
if python -m pip install "diffctx==${VERSION}"; then
347+
echo "Installed diffctx ${VERSION} on attempt $attempt"
348348
break
349349
fi
350350
echo "PyPI not ready yet (attempt $attempt); sleeping 30s"
351351
sleep 30
352352
done
353-
python -m pip show treemapper | grep -E '^(Name|Version)'
353+
python -m pip show diffctx | grep -E '^(Name|Version)'
354354
355-
- name: Smoke - treemapper --version
356-
run: treemapper --version
355+
- name: Smoke - diffctx --version
356+
run: diffctx --version
357357

358358
- name: Smoke - tree mapping mode
359359
shell: bash
360360
run: |
361361
mkdir -p smoke-tree && cd smoke-tree
362362
echo "print('hello')" > a.py
363363
echo "x = 1" > b.py
364-
treemapper . --no-content > /dev/null
364+
diffctx . --no-content > /dev/null
365365
echo "OK: tree mode works"
366366
367367
- name: Smoke - Rust _diffctx is shipped
368368
shell: bash
369369
run: |
370370
python - <<'PY'
371-
from treemapper._diffctx import GitError, build_diff_context, count_tokens # noqa: F401
371+
from diffctx._diffctx import GitError, build_diff_context, count_tokens # noqa: F401
372372
print("OK: _diffctx imported")
373373
PY
374374
@@ -385,7 +385,7 @@ jobs:
385385
git add -A && git commit -q -m "initial"
386386
printf 'def add(a, b):\n return a + b\n\ndef sub(a, b):\n return a - b\n' > pkg/util.py
387387
git add -A && git commit -q -m "add sub"
388-
treemapper . --diff HEAD~1..HEAD --no-content
388+
diffctx . --diff HEAD~1..HEAD --no-content
389389
echo "OK: diff mode works (Rust extension present)"
390390
391391
finalize-release:

.github/workflows/ci.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# .github/workflows/ci.yml
2-
name: treemapper CI
2+
name: diffctx CI
33

44
'on':
55
pull_request:
@@ -114,7 +114,7 @@ jobs:
114114
run: ./target/release/diffctx-test || true
115115

116116
# ============================================================================
117-
# Cross-platform Python Testing (treemapper core, excludes diffctx)
117+
# Cross-platform Python Testing (diffctx core)
118118
# ============================================================================
119119
test:
120120
needs: [lint-type-check]
@@ -160,20 +160,20 @@ jobs:
160160
python -m pip install --upgrade pip
161161
pip install "maturin>=1.10,<1.11"
162162
163-
- name: Build and install treemapper (with Rust _diffctx) and dev deps
163+
- name: Build and install diffctx (with Rust _diffctx) and dev deps
164164
shell: bash
165165
env:
166166
PYO3_USE_ABI3_FORWARD_COMPATIBILITY: "1"
167167
run: |
168168
# PEP 660 editable install — maturin builds the Rust extension and
169-
# pip installs everything (treemapper + [dev,full] extras). Skip build
169+
# pip installs everything (diffctx + [dev,full] extras). Skip build
170170
# isolation since we just installed maturin in this env.
171171
pip install -e ".[dev,full]" --no-build-isolation
172172
173173
- name: Run Tests with Coverage
174174
shell: bash
175175
run: |
176-
pytest -v --cov=src/treemapper --cov-report=xml \
176+
pytest -v --cov=src/diffctx --cov-report=xml \
177177
--cov-report=term-missing --cov-branch --junitxml=test-results.xml
178178
179179
- name: Coverage report with threshold
@@ -225,16 +225,16 @@ jobs:
225225
- name: Check cyclomatic complexity
226226
run: |
227227
echo "=== Cyclomatic Complexity Report ==="
228-
radon cc src/treemapper/ --min B --show-complexity --total-average
228+
radon cc src/diffctx/ --min B --show-complexity --total-average
229229
230230
- name: Check maintainability index
231231
run: |
232232
echo "=== Maintainability Index Report ==="
233-
radon mi src/treemapper/ --min B --show
233+
radon mi src/diffctx/ --min B --show
234234
235235
- name: Fail on high complexity
236236
run: |
237-
radon cc src/treemapper/ --min C --total-average || \
237+
radon cc src/diffctx/ --min C --total-average || \
238238
(echo "High complexity detected" && exit 1)
239239
240240
# ============================================================================

.github/workflows/sensitivity-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
with:
3333
python-version: '3.12'
3434

35-
- name: Install treemapper with dev extras
35+
- name: Install diffctx with dev extras
3636
run: pip install -e ".[dev,tree-sitter]"
3737

3838
- name: Run sensitivity check

README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -119,18 +119,18 @@ diffctx graph . --level file -f graphml -o g.xml # file-level graph as GraphML
119119
<!-- BEGIN USAGE -->
120120
```bash
121121
# full codebase export:
122-
treemapper . # YAML to stdout + token count
123-
treemapper . -f md -c # Markdown → clipboard
124-
treemapper . -f json -o tree.json # JSON → file
125-
treemapper . --no-content # structure only, no file contents
126-
treemapper . --max-depth 3 # limit depth
127-
treemapper . -i custom.ignore # custom ignore patterns
122+
diffctx . # YAML to stdout + token count
123+
diffctx . -f md -c # Markdown → clipboard
124+
diffctx . -f json -o tree.json # JSON → file
125+
diffctx . --no-content # structure only, no file contents
126+
diffctx . --max-depth 3 # limit depth
127+
diffctx . -i custom.ignore # custom ignore patterns
128128
129129
# diff context mode (requires git repo):
130-
treemapper . --diff HEAD~1 # context for last commit
131-
treemapper . --diff main..feature # context for feature branch
132-
treemapper . --diff HEAD~1 --budget 30000 # limit to ~30k tokens
133-
treemapper . --diff HEAD~1 -c # diff context to clipboard
130+
diffctx . --diff HEAD~1 # context for last commit
131+
diffctx . --diff main..feature # context for feature branch
132+
diffctx . --diff HEAD~1 --budget 30000 # limit to ~30k tokens
133+
diffctx . --diff HEAD~1 -c # diff context to clipboard
134134
```
135135
<!-- END USAGE -->
136136

benchmarks/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ across instances, multi-seed.
7373
| `--seeds` | `42` | Comma-separated seeds for shuffle |
7474
| `--no-shuffle` | false | Use dataset order |
7575
| `--scoring` | `ego` | `ppr` / `ego` / `bm25` |
76-
| `--baseline` | `treemapper` | `treemapper` / `patch_files` / `bm25` |
76+
| `--baseline` | `diffctx` | `diffctx` / `patch_files` / `bm25` |
7777
| `--dataset` | `full` | `full` / `verified` |
7878
| `--tau` | 0.08 | Selection stopping threshold |
7979

benchmarks/baselines/aider_baseline.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Runs Aider's `RepoMap.get_repo_map` against the same repo+patch+budget
44
inputs as diffctx, via a subprocess in an isolated `uv tool` venv (Aider
55
hard-pins ~95 deps including litellm, numpy==1.26.4, fastapi — those would
6-
break the main treemapper env if installed in-process).
6+
break the main diffctx env if installed in-process).
77
88
Spawn-once, reuse-many: one helper process per worker process is kept alive
99
across all instances assigned to that worker, so we pay aider's import

benchmarks/baselines/aider_subprocess.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
The parent (`benchmarks.baselines.aider_baseline`) launches this with
55
`uv tool run --from aider-chat==0.86.2 python <path-to-this-file>` so
66
aider's heavy dep tree (litellm, prompt-toolkit, fastapi, etc.) never
7-
contaminates the main treemapper venv.
7+
contaminates the main diffctx venv.
88
99
Protocol (NDJSON, one request → one response):
1010

0 commit comments

Comments
 (0)