Skip to content

Releases: RolandDumit/polycodegraph

PolyCodeGraph 0.10.0

Choose a tag to compare

@RolandDumit RolandDumit released this 08 Oct 13:27

PolyCodeGraph 0.10.0 — selective workflow context

Version 0.10 adds an optional client workflow for selecting focused tool schemas,
collecting every required intent page and emitting one compact text response.
It preserves semantic evidence and ordinary server defaults across all ten
providers. The user authorized stable publication with the open experimental
acceptance criteria below; release does not mark those criteria as passed.

  • The packaged Python workflow MCP relay selects a static task surface, fuses
    overlapping source windows without losing required records, and supports
    bounded cancellation/deadlines and explicit cursor recovery. Local workflows
    register no graph tools. The server does not automatically install the client
    into Codex or observe the provider's full prompt.
  • Optional source_policy: intent selects locations for rename, contracts for
    signature changes and edit context for other intents; explicit views prevail.
    budget.max_source_chars separates source text from inventory and makes
    truncation visible. Optional tokenizer budgets apply only at the supported
    client insertion boundary, not to the whole model prompt.
  • Lexical discovery applies scope before index caps, caches bounded snapshot
    indexes and exposes excluded files. Anchor grouping and binary-term BM25 are
    opt-in; the line/overlap baseline remains available. No new semantic edge is
    inferred from lexical ranking.
  • Coverage separates known inventory, relevant observed diagnostics and unknown
    question coverage while preserving global health/freshness limits.
  • Binding-owned retention validates exact identity/source/baseline and resets on
    compaction with self-contained rehydration. It requires actual retained-context
    acknowledgement. Generic MCP retention remains disabled; its model benefit
    has not been verified.
  • Targeted edit-receipt guidance avoids full readbacks after successful edits
    while retaining source reads for concrete missing facts and authorized checks.
    Benchmark tooling preserves failures, frozen identities, unknown costs and
    explicit solver budgets.

Activation and rollback ·
Consumer harness ·
Codex subscription policy ·
Local release validation

Measured results and open acceptance

The dev.2 A/D screening
completed 24 solver turns on twelve known controlled TypeScript tasks. All
static outcomes passed, but D used 55.9% more total tokens than no-graph A
and 3.74% more uncached input. The historical savings gate did not pass.

The separately authorized T3 instruction diagnostic
completed eight turns on four known refactoring tasks, comparing old and
corrected guides with the same graph. All static outcomes passed. Same-hash
post-edit reads fell from 85 to zero and direct reads from 178 to 87. Total
tokens fell 15.5% versus the old guide, while uncached input rose 14.4%.
This passes the narrow correction criterion; it is not a fresh no-graph product
comparison or independent confirmation. These measurements identify development
artifacts; no final-version AI rerun is claimed.

Included Codex allowance savings and economic cost remain unknown. Raw total
tokens, weighted credits and included subscription usage are distinct. The
user's +15% total-token objective versus A belongs to 1.0 and is not a stable
0.10 requirement. Publishing 0.10 does not declare that objective achieved.

G5 has a prepared, untuned authored holdout
with twelve new tasks and a proposed 48-turn budget. It has not been run;
publication grants no additional AI budget. T6 long-task/post-compaction model
savings are unverified: the installed-client audit
does not provide a supported exact retained-set boundary. T4 ranking/discovery
benefit has not been isolated with the model and remains opt-in.

Static fixture oracles verify source bytes/findings, not application runtime.
No indexed application code, plugin, script, build hook or code generation is
executed. There is no quality or savings generalization to languages, clients,
models or repositories not actually tested.

Release validation and downloads

Final-version local checks cover Rust formatting/Clippy/tests, Python client and
measurement tests, native workflow/source-policy/retention checks and relocated
package/client smoke. The exact release commit's cross-platform CI, Android and
macOS UIKit checks, four native package results and archive SHA-256 digests are
recorded in the GitHub release after passing; earlier dev.2 CI is not substituted
for final artifact validation. Conditional skipped tests are not verified coverage.

Download the Linux x64, Windows x64, macOS Intel or macOS Apple Silicon package
from release v0.10.0
and verify it with SHA256SUMS. Keep the executable beside providers/ and
clients/; selected language adapters still require the runtimes documented in
README. Rust is required to build from source, not to run the native packages.

Verified publication identity

Source: a74ea963c35da7c55e27f46b7e791015289ad827. All 20 jobs passed for this exact source in release CI: Linux/Windows/macOS core and native intent checks, frozen-0.6 primitive differentials, Flutter, Android, macOS UIKit, query benchmark and all four native packages. Android SDK fixtures verify 5 symbols/6 edges; UIKit verifies 13 symbols/23 edges. Conditional platform steps skipped on other hosts are not additional verified coverage. Local checks passed 93 Rust and 104 Python tests. No additional AI runs were launched for stable publication.

Every archive was checked for manifest version/OS/architecture, native binary architecture, executable permissions where applicable, all eight client module hashes, compiled Dart/Go workers, exact release documentation, confined paths and absence of caches/environments. SHA-256 digests are in SHA256SUMS.

PolyCodeGraph 0.9.0

Choose a tag to compare

@RolandDumit RolandDumit released this 07 Oct 08:19

PolyCodeGraph 0.9.0 corrects review noise and adds optional lean context while retaining audit rendering and semantic provider contracts.

  • Exact unchanged source intervals distinguish relocated sites from semantic additions/removals. Before/after positions remain recoverable; uncertain mapping remains conservative.
  • Strict baseline scope rejects typos/excluded files and requires explicit intended new files. Lean capture is strict; audit can opt in.
  • format: lean (pcg-lean-1) keeps full IDs, distinct sites, confidence and source hashes, with separate required inventory, optional context and external verification. Audit remains the default.
  • Archives include an optional Python LeanAdapter/Observer; it is not automatically installed into Codex. Separate instrumentation is provided for wire payloads and client insertion; actual model input remains unmeasured.
  • Comparison tooling preserves failures, retries, unknown usage, frozen artifacts and interrupted attempts instead of inventing economic results.

Activation and rollback · Updated harness · Local validation

Validation: 88 Rust tests, 37 Python tests, native intents and audit/lean rename site parity on all ten languages plus Flutter, primitive differential checks against verified 0.6, Android SDK, Unicode/CRLF relocation and strict scope, and relocated Linux package/client-adapter checks. The deterministic rename gate preserves 19 reference sites and 17 oracle context checks across every page/expansion. These tests do not measure AI task cost.

No new AI benchmark was run for 0.9. The earlier 0.8.0-rc.1 pilot and the frozen post-0.8 experiments retain their original identities and limitations. AI usage, monetary improvement and robust economic gates remain not measured for this release.

Source: f1e0484cb1ac66f0fe623fc6e8c4531a886b0a07, based on stable 0.8.0 (64f7dfb0bfcae4f6471ee691dfdc896a34ac785f).

All 20 jobs passed for this exact source in release CI: Linux/Windows/macOS core and native checks, Flutter, Android, macOS UIKit, query benchmark, and four native packages. Archive manifests, platforms, bundled workers/client adapter, permissions and SHA-256 digests were checked before publication.

Download the archive for Linux x64, Windows x64, macOS Intel or macOS Apple Silicon, extract it, and keep the executable beside providers/. Use SHA256SUMS to verify the archive. See README for required runtimes of selected language providers.

PolyCodeGraph v0.8.0 — Selective context and focused review

Choose a tag to compare

@RolandDumit RolandDumit released this 06 Oct 09:50

PolyCodeGraph 0.8.0 — selective context and focused review

Large-file reviews could multiply the same coverage warning until the default
response budget failed. Version 0.8 deduplicates identical limits, reports explicit
collection/exploration/source completion, and localizes reviews to captured-source
changes with conservative contract/global fallback. Capture can return a minimal
baseline handle instead of every declaration.

  • Optional locations, contracts, edit_context and full_evidence select useful source
    context while retaining required semantic site inventories and precision limits.
  • Optional token estimates, cumulative record budgets and acknowledged source windows
    make expansion/retention explicit. Ordinary clients remain self-contained.
  • Destination trace avoids unrelated branches; relation buckets preserve traversal
    budgets. Optional lexical discovery anchors candidates to existing semantic evidence.
  • An opt-in agent toolset advertises five tools, with all original names/aliases
    accepted. Standard request metadata works directly with tool discovery clients.
  • Runtime/intent/provider telemetry and a benchmark runner separate server work,
    payload size, client insertion and actual model usage. SQLite schema 4 reads schema
    3 and adds an edges(file) index plus independent transactional storage revisions.

The application pilot accepted
18/18 tasks. Observed uncached input per accepted task for rc.1 is 13.7% lower than
0.7, but 89.7% higher than no graph; local work increases 54.5%. One replica per
cell and incomplete client telemetry mean G2 fails and no robust/monetary benefit
is established. Signature/review remain optimization priorities. Final 0.8 fixes
metadata handling, delayed duplicate directory notifications and docs after that
pilot; no final-release AI retest is claimed.

Existing primitive calls/default full tool advertisement and provider resolvers
remain compatible; the new options are explicit. Migration/rollback
documents views, estimates, cursors, acknowledgement resets and separate rollback
caches. The earlier deterministic rc report
remains frozen rather than retroactively rewritten into an AI result.

Final local validation records the final Linux binary,
72 Rust tests, 13 accounting tests, native differentials, metadata/EOF, Android,
package relocation and preserved rename evidence.

Native archives target Linux x64, Windows x64 and macOS Intel/Apple Silicon. Exact
release CI, platform/native/SDK/package validation and archive checksums are recorded
in the GitHub release. A failed economic target is visible independently of product
compatibility validation; release does not declare that target achieved.

Release verification

Source commit: 64f7dfb. Release CI passed all 20 required job groups across Linux, Windows, macOS, Flutter, all provider differentials, Android and UIKit. All four native packages passed relocation, version and provider checks.

The legacy 0.4 mobile differential on macOS failed once at the post-edit detect_changes equality assertion and passed unchanged on attempt 2. That first failure is retained; its cause was not isolated. Earlier validation also exposed and corrected canonical fixture paths, delayed duplicate directory hints and a watcher-dependent invocation-count assertion. These validation corrections do not alter the frozen AI pilot.

The attached four archives come from this exact commit and CI run. SHA256SUMS covers every archive. Archive versions, native formats, executable permissions and bundled Dart/Go workers were independently checked before publication.

PolyCodeGraph v0.7.0 — Ten semantic intents for AI coding agents

Choose a tag to compare

@RolandDumit RolandDumit released this 02 Oct 17:24

PolyCodeGraph 0.7.0 adds ten semantic context intents across Dart/Flutter, TypeScript, JavaScript, Java, Go, Python, Rust, Swift, Objective-C and Kotlin.

  • inspect_change now supports rename, change_signature, find_tests, review_change, explain_symbol, trace_flow, move_symbol, remove_symbol, replace_dependency and extract_symbol.
  • Shared evidence tables, merged source windows, bounded budgets and opaque cursors collect context from one coherent generation. Existing calls without an intent preserve the 0.6 contract and stable IDs.
  • Explicit review baselines compare source hashes, symbols, relations and diagnostics. Body-only changes retain conservative file/consumer context; baselines and cursors have bounded session lifetimes.
  • Compiler-backed AST bindings and control events provide extraction constraints across all ten providers. These remain partial: no generated patch/signature, complete dataflow, runtime dispatch proof or correctness approval.

Native downloads

Rust is not required to run the four native packages. Keep the executable beside providers/; selected semantic providers still require their documented runtimes/SDKs. Packages include compiled Dart/Go workers. Verify the attached archives using SHA256SUMS.

Platform Archive
Linux x64 polycodegraph-0.7.0-linux-x64.tar.gz
Windows x64 polycodegraph-0.7.0-windows-x64.zip
macOS Intel polycodegraph-0.7.0-macos-x64.tar.gz
macOS Apple Silicon polycodegraph-0.7.0-macos-arm64.tar.gz

Upgrade

Replace the executable and matching providers, prepare selected adapters with setup --languages ..., and restart MCP. Updating only the core while keeping old adapter assets can leave intent capabilities unavailable. Public symbol IDs, primitive APIs, graph configuration, SQLite schema and watcher behavior remain compatible. Compact primitive responses remain opt-in; intent budgets are independent of the profile.

Read the intent API and language capability matrix, migration guide and consumer harness template. Follow pertinent pages and omitted snippets; explicitly reconcile before sensitive changes.

Validation and measured limits

Local Linux checks passed: formatting, Clippy, 52 Rust tests, Dart analysis/provider tests, native MCP for ten intents across ten languages, primitive differential checks against 0.6, real Flutter, Android SDK and relocated packages. Local cached Dart test tooling differed from the committed lock; exact locked versions are checked in host CI.

All 20 cross-platform CI jobs passed, including Linux/macOS/Windows core checks, ten-intent provider fixtures, exact locked Dart tests, Flutter, Android SDK, macOS UIKit and relocated-package checks for all four targets. Validated release commit and CI run.

The deterministic Flutter rename replay collects equivalent evidence in 3 calls instead of 13, with 41.81% fewer result characters/UTF-8 bytes and all 19 resolved reference edges retained. It includes both pages and one explicit DTO expansion. Tool schema size increases by 4,942 characters; startup calls are counted separately. Warm scan/extraction/graph-build deltas are zero. These are response measurements, not measured AI token/quota savings or total-task speedups. No new AI executor runs were performed.

See the aggregate replay and validation report. Static/dynamic and cross-language limitations remain; extraction, test discovery and hypothetical signature compatibility are qualified by the provider evidence.

PolyCodeGraph v0.6.0 — Compact MCP responses and targeted exploration

Choose a tag to compare

@RolandDumit RolandDumit released this 02 Oct 12:09

PolyCodeGraph v0.6.0 — Compact MCP responses and targeted exploration

Version 0.6.0 reduces response volume for coding agents while preserving semantic
provider evidence, stable symbol IDs, query depth and explicit pagination/limits.
All ten language providers and the sixteen MCP tool names remain available.

  • Opt-in compact profile: configure response_profile: compact or launch
    serve --response-profile compact. Legacy remains the default; every tool accepts
    detail: full to retrieve its legacy response and defaults.
  • Paged health details: compact status/index summaries expose freshness,
    coverage, counts and diagnostics. Use status.section for diagnostics, skipped
    files, providers, update lists, metrics or architecture; omitted results are visible.
  • Targeted exploration: compact search defaults to 10 rows, relations to 20,
    architecture to 5 and implicit snippets to 30 lines. Explicit requests retain
    existing hard budgets. Invalid indexed file prefixes produce a warning and a
    unique root-relative suggestion when available, never a silent correction.
  • Index consistency: independent health identity, same-generation diagnostic
    refresh, effective configuration hashing and guarded publication on config races.
  • Metrics and harness guidance: per-tool calls/errors/response bytes, targeted
    consumer instructions, response replay tooling and token-accounting validation.

Native downloads

Rust is not needed to run the packages. Keep the executable beside providers/;
selected semantic providers still require the runtimes/SDKs documented in README.

Platform Archive
Linux x64 polycodegraph-0.6.0-linux-x64.tar.gz
Windows x64 polycodegraph-0.6.0-windows-x64.zip
macOS Intel polycodegraph-0.6.0-macos-x64.tar.gz
macOS Apple Silicon polycodegraph-0.6.0-macos-arm64.tar.gz

Verify downloads using the attached SHA256SUMS.

Upgrade and rollback

Replace the executable/provider package and restart MCP. Existing graph
configuration and tool arguments remain compatible. A cache from 0.5 may
reconcile/rebuild once because graph configuration inputs now hash effective
options. Profile/formatting edits to existing config files subsequently retain
semantic identity. Enable compact explicitly; remove the override or set
response_profile: legacy to restore legacy presentation. See the
response contract and
consumer harness.

Validation and limits

Local Linux verification: format, Clippy with warnings denied, 39 Rust tests,
four Python accounting tests and real stdio profile checks. Native differential
checks against 0.5 covered ten languages (185 symbols/419 edges), Dart (37/99),
real Flutter (24/75), Android SDK (5/6) and TypeScript without Dart on PATH.
All 20 cross-platform CI jobs passed, including Windows/macOS/Linux core checks,
Flutter, Android SDK, macOS UIKit and relocated-package smoke checks for all four targets.
Validated release commit and CI run.

Deterministic replay of the recorded Flutter MCP calls reduced response bytes by
44.96% and 50.87%. The tool schema grew 14.9%; some small query responses
also grow to retain health and omission metadata. These are response measurements,
not measured AI-token savings or whole-task speedups. The six fresh A/B/C
executor runs and their token/correctness gates remain pending. Compact therefore
remains opt-in. Detailed measurements.

Static dispatch, dynamic/cross-language omissions and platform SDK requirements
remain unchanged. Smaller output does not reduce stored semantic evidence, and
coverage/truncation must still be checked before drawing conclusions.

PolyCodeGraph v0.5.0 — Rust core and native binaries

Choose a tag to compare

@RolandDumit RolandDumit released this 01 Oct 18:10

PolyCodeGraph v0.5.0 — Rust core and incremental graph queries

Rust-native CLI/MCP with SQLite persistence, reusable in-memory graph, filesystem watcher and periodic hash reconciliation. All ten semantic providers and Flutter discovery remain supported; Dart now runs as an independent Analyzer provider.

Adds inspect_change, status freshness/metrics, provider setup from the native CLI and host package workflows. Source/configuration/MCP query compatibility is retained; update the launch command from Dart to the native executable. Legacy JSON caches rebuild into SQLite and remain untouched.

Read README, docs/migration-0.5.md and VALIDATION.md before upgrading. Static/dynamic/cross-language coverage limits remain. Native packages still need selected provider runtimes and prepared dependencies. Performance evidence belongs in docs/benchmarks; no token-savings guarantee is claimed.

Native downloads — no Rust installation needed

Download the archive for your system and extract it. Keep the executable beside its providers/ folder.

System Archive
Linux x64 polycodegraph-0.5.0-linux-x64.tar.gz
Windows x64 polycodegraph-0.5.0-windows-x64.zip
macOS Intel polycodegraph-0.5.0-macos-x64.tar.gz
macOS Apple Silicon polycodegraph-0.5.0-macos-arm64.tar.gz

Run ./polycodegraph --version on Linux/macOS or .\polycodegraph.exe --version on Windows. Then use setup --root /path/to/project --languages <languages> and serve --root /path/to/project with that executable. Rust is only needed when building the source. SDKs/runtimes for selected semantic providers remain required; see README. Dart and Go worker binaries are included.

SHA256SUMS contains checksums for all four archives. These assets were built and tested from commit 45fa910bde4cd98c19140b2d81ae850bea06a97c: 20/20 passing validation jobs, including relocated native worker execution on all targets.

PolyCodeGraph v0.4.0 — Multi-language MCP code intelligence

Choose a tag to compare

@RolandDumit RolandDumit released this 01 Oct 13:59

PolyCodeGraph's first GitHub release brings local, compiler-backed code intelligence to coding agents through a compact stdio MCP server.

Highlights

  • Ten languages: Dart/Flutter, TypeScript, JavaScript, Java, Go, Python, Rust, Swift, Objective-C and Kotlin.
  • Semantic repository graph: symbols, imports/exports/parts, references, inheritance, implementations, static callers/callees, neighbors and dependencies, where supported by each language provider.
  • Focused agent queries: search_symbol, get_architecture, callers, callees, implementations, neighbors, dependencies, affected_by_change / blast_radius, and bounded source snippets. Stable IDs, pagination and compact output keep retrieval focused.
  • Incremental indexing: persistent content-hash caching, dependency-aware invalidation and diagnostics that expose unresolved or unavailable provider coverage.
  • Optional Flutter classification: Widget/Screen, Bloc/Cubit, Riverpod Provider, Repository, UseCase, Route, GetIt registration and recognizable Freezed models.
  • CLI and harness integration: init, index, serve, status and doctor; YAML/JSON configuration; Codex and Claude Code setup examples; reusable AGENTS.md guidance.

Installation

This release is distributed as source code through GitHub's ZIP/tar.gz downloads or the tagged checkout. It does not include standalone native executable assets. Install Dart SDK 3.11.0 or newer first.

git clone --branch v0.4.0 --depth 1 https://github.com/RolandDumit/polycodegraph.git
cd polycodegraph
dart pub get

Dart/Flutter analysis uses the built-in Dart Analyzer provider. For other languages, prepare only the adapters you need, with the corresponding host runtimes installed. For example, TypeScript/JavaScript requires Node.js 22+:

dart run tool/setup_providers.dart --typescript

Resolve the target project's dependencies before indexing (dart pub get or flutter pub get for Dart/Flutter), then run:

dart run bin/polycodegraph.dart index --root /path/to/project
dart run bin/polycodegraph.dart serve --root /path/to/project

The source commands work on Linux, macOS and Windows. Provider requirements depend on the selected languages; UIKit/iOS SDK analysis requires macOS and Xcode. Android analysis uses a prepared Android SDK and dependency classpath.

See the versioned README for complete runtime requirements, provider setup, configuration and Codex/Claude Code MCP connections. Copy the harness guidance into your project's AGENTS.md to integrate graph queries into your agent workflow.

Validation

All 12 CI jobs passed on the released commit across Linux, macOS and Windows, covering Dart checks, semantic polyglot providers, real Flutter integration, mobile providers and Android SDK analysis. The macOS mobile job also verifies UIKit and bridging-header analysis.

Analysis boundaries

This is static code intelligence: dynamic dispatch, reflection and runtime callbacks can leave relationships unresolved. Blast radius is a conservative graph traversal, not a guarantee of complete runtime impact. Missing dependencies, generated code or toolchains are reported through diagnostics.

Cross-language runtime/FFI edges, including Swift-to-Objective-C and Kotlin-to-Java call edges, are not currently inferred. Kotlin covers JVM/Android rather than full Kotlin Multiplatform semantics. Rust indexing does not execute indexed build scripts or expand procedural macros; the server does not run target-project dependency managers or code generation. Swift's compiler JSON AST is toolchain-dependent. No performance or token-savings benchmark is claimed for this initial release.

See the provider contract and README for provider-specific precision and coverage.

Released from commit 2501034b84fab0ca0c0194d95be74a7660bb8a56.