Repository navigation
Releases: Callix-Tools/callix
Releases · Callix-Tools/callix
Release list
v1.7.0
[1.7.0] - 2026-10-28
Bug Fixes
- php: do not treat installed vendor packages as sub-roots by @claude
- php: resolve top-level use imports to their definitions by @claude
- php: resolve self, static and parent to the enclosing class or its base by @claude
- php: treat language constructs and magic constants as syntax by @claude
- php: unqualified function calls no longer bind to classes by @claude
- php: make anonymous classes resolver scopes by @claude
- php: search the base class and traits before interfaces for a member by @claude
- php: emit REFERENCES edges for first-class callable syntax by @claude
- go: annotate every named type, not only the right-most identifier by @claude
- go: emit type occurrences for receivers, type specs, var/const types and function bodies by @claude
- go: give package qualifiers and import paths a position by @claude
- go: scan package-level var and const initializers by @claude
- go: record keys of keyed struct literals as field writes by @claude
- go: record bare uses of package-level names as references by @claude
- go: declare embedded struct fields as ATTRIBUTE nodes by @claude
- go: declare every name of a multi-name field and anonymous struct fields by @claude
- go: record conversions T(x) as references to the type by @claude
- rust: record an annotation for a bare type name by @claude
- rust: record every type name as an annotation by @claude
- rust: record path prefixes and visibility paths as references by @claude
- rust: emit references for values, patterns and struct literals by @claude
- rust: bind names in use trees and bodyless
mod x;to positioned edges by @claude - rust: declare enum variants, associated items and in-body items by @claude
- rust: index macro_rules! definitions and macro invocation names by @claude
- rust: record later declarations of a qualified name in declared_at by @claude
- cfamily: erase project macros that expand to nothing or an attribute by @claude
- cfamily: reference type names in bodies, casts, sizeof, scopes and signatures by @claude
- cfamily: bind field accesses by the receiver's declared type by @claude
- cfamily: declare a class for an anonymous typedef struct or union by @claude
- cfamily: position prototypes, forward declarations and #include operands by @claude
- cfamily: analyse namespace-wrapped .h headers as C++ by @claude
- cpp: treat overloaded operator uses as calls by @claude
- cpp: declare classes defined in function bodies; name qualified record heads by their last component by @claude
- export: define an included header's file symbol on a non-empty range by @claude
- python,typescript: pin the superset call count the module change leaves alone by @claude
- python: treat imports in function bodies and blocks as imports by @claude
- python: reference the field named by a keyword argument by @claude
- python: record every name in a type annotation by @claude
- python: scan a generator expression that is a call's only argument by @claude
- python: declare assignment targets where Python binds them by @claude
- typescript: reference members for property reads, writes and object-literal keys by @claude
- typescript: record every name in a type by @claude
- typescript: read initializers from grammar fields and scan object-literal methods by @claude
- typescript: namespaces and type-literal members become nodes by @claude
- typescript: file-level declare function becomes a FUNCTION by @claude
- export: name each SCIP symbol after its own sub-root by @claude
- export: give an LSIF definition with no text a visible range by @claude
- php: resolve the left side of :: as a class, never a function by @claude
- php: a parameter reassigned before its call no longer receives the callers' values by @claude
- php: fix(php): a parameter reassigned before its call no longer receives the callers' values by @Neko1313 in #60
CI/CD
- key the Rust cache on the exact Python version by @claude
- point the loader at libpython for the PyO3 test binary by @claude
Documentation
- claude: assign models to dynamic workflow stages by @claude
- accuracy: update the suite table to the merged case counts by @claude
Features
- python,typescript: place MODULE nodes and bind module references by @claude
- typescript: place import/export specifiers and module strings by @claude
Full Changelog: v1.6.0...v1.7.0
v1.6.0
[1.6.0] - 2026-10-26
Features
- python: feat(python): resolve a project inside the directory, and keep what the authors wrote by @Neko1313 in #11
Full Changelog: v1.5.0...v1.6.0
v1.5.0
[1.5.0] - 2026-10-26
Features
- feat: close the accuracy suites for every language (Python, PHP, C/C++, Go, Rust, TypeScript) by @Neko1313 in #10
Full Changelog: v1.4.0...v1.5.0
v1.4.0
[1.4.0] - 2026-10-26
Features
- resolution: Measure resolution per language and say truthfully how each edge was found by @Neko1313 in #6
- flow: feat: follow the iteration protocol, calls through parameters and C/C++ callbacks by @Neko1313 in #7
- python: feat(python): a lambda is a function node by @Neko1313 in #8
- python: feat(python): follow what a loop hands out by @Neko1313 in #9
New Contributors
Full Changelog: v1.3.0...v1.4.0
v1.3.0
[1.3.0] - 2026-10-26
CI/CD
- verify the published CLI tarballs on every platform by @claude
Features
- python: follow routers across modules, bind imports whatever the file order, resolve imports to their definition by @claude
- feat: cross-module routers, order-independent imports, documentation in the graph; baselines; verify-release by @claude in #5
Testing
- baseline: recapture zod and superset after the walk reaches decorators, defaults and receivers by @claude
- baseline: recapture redis, leveldb and rocksdb by @claude
Full Changelog: v1.2.0...v1.3.0
v1.2.0
[1.2.0] - 2026-10-26
Bug Fixes
- ci: fix(ci): keep image digests out of the release assets, add a resume workflow by @claude in #2
- export: file a reference under the file it was written in by @claude
- boundaries: keep the pyfunction attributes on normalize_http_path by @claude
- rust: file an attribute route under the function it is written on by @claude
CI/CD
- release: ci(release): pull the published image tags back from ghcr and smoke-test them by @claude in #3
- docker: run the images and every binary on real projects by @claude
- docker: compare dump paths against the physical work directory by @claude
Documentation
- describe the file key on edge metadata by @claude
- fix: file references and routes under the right node; walk decorators, defaults and call receivers by @claude in #4
Features
- python,typescript: walk decorators, defaults and call receivers; file routes under their handler by @claude
Styling
- cfamily: pass the occurrence to push_reference instead of its parts by @claude
Testing
- golden: the TypeScript fixture gains the references it used to lose by @claude
Full Changelog: v1.1.0...v1.2.0
v1.1.0
[1.1.0] - 2026-10-26
Bug Fixes
- cfamily: record the use-site span on resolved edges by @claude
- lint: allow clone_on_copy for PyO3's from_py_object expansion by @claude
- docker: clean up the smoke test's root-owned workspace through the image by @claude
Build System
- Debian images, standalone CLI binaries and CI checks for the native binary by @claude
CI/CD
- run the Rust unit tests
- build both image architectures and the binary tarballs on every PR by @claude
- release: feat: callix CLI, native engine, exporters (LSIF, SCIP, CycloneDX…) and Docker images by @claude in #1
Documentation
- bring the docs up to 1.0.0, and correct what drifted
- bench: refresh benchmark metrics [skip ci] by @github-actions[bot]
Features
- add the callix CLI and the callix-export crate by @claude
- add Docker images, release jobs and documentation for the CLI by @claude
- build the engine without Python and run the CLI on it by @claude
- add the SCIP exporter by @claude
Testing
- extend benchmarks and baselines to all eight languages
New Contributors
Full Changelog: v1.0.0...v1.1.0
v1.0.0
[1.0.0] - 2026-07-30
Bug Fixes
- ci: actually run the benchmark matrix on a manual dispatch
- bench: stop understating peak memory outside a container
- ci: stop stale results overwriting fresh ones when artifacts merge
- store relative file paths on every node, not just FILE
- keep vendored and built trees out of the graph
- make Graph.subgraph deterministic
- one structural edge per pair, not one per occurrence
- ci: pin setup-uv exactly — its major tag stops at v7
CI/CD
- move off the node20 action runtime
- update every action, and make the docs build runnable locally
Documentation
- bench: refresh benchmark metrics [skip ci] by @github-actions[bot]
- bench: refresh benchmark metrics [skip ci] by @github-actions[bot]
- bench: refresh benchmark metrics [skip ci] by @github-actions[bot]
- bench: refresh benchmark metrics [skip ci] by @github-actions[bot]
- bench: refresh benchmark metrics [skip ci] by @github-actions[bot]
- add the Docusaurus documentation site
- link the documentation site from the README
- slim the README down and split out CONTRIBUTING
- align the package description with the repository one
- state what 1.0 promises, and what it cannot
- bring the whole site up to eight languages, and test the examples
- say which languages the published release actually has
Features
- rust: emit parameters, fields, imports, references and types
- go: emit parameters, fields, imports and type annotations
- fill in the dead vocabulary — DEPENDENCY, DEPENDS_ON, COMMUNICATES_WITH
- accept custom boundary extractors, and document the real coverage
- detect boundaries by argument shape rather than receiver name
- lower the Python floor to 3.10 and publish musl wheels
- add the YAML adapter — specifications as boundaries
- yaml: follow includes, read CI pipelines, recognize Helm
- add the PHP adapter
- add the C and C++ adapters
- give every adapter the same constructor
BREAKING CHANGE:
PythonAdapter'sdep_parsersandresolverare now
keyword-only, and followresolvein the signature. Every documented use
was already by keyword.
Miscellaneous
- deps: update the embedded ty from 0.0.52 to 0.0.65
Testing
- add golden fixture tests, cross-validated against graphlens
- fingerprint the eight benchmark projects, and record the graphlens delta
- cover the API that 1.0 freezes, and fix what it found
- make the baselines measure the resolvers, not just the visitors
Full Changelog: v0.1.0...v1.0.0
v0.1.0
[0.1.0] - 2026-07-29
Bug Fixes
- ci
- ci release
- build: unbreak the linux wheel and widen the platform matrix
Documentation
- bench: refresh benchmark metrics [skip ci] by @github-actions[bot]
- add CLAUDE.md
Features
- reinit
- update docs
New Contributors
- @github-actions[bot] made their first contribution
- @ made their first contribution