Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 21 additions & 16 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,19 @@
# Changelog

All notable public changes to Code System Graph are documented in this file. Code System Graph follows Semantic
Versioning.
All notable public changes to Code System Graph are documented in this file.

## [1.2.1] - 2026-10-03

MCP tools use schema 6 with a single text content block. JSON is the default;
`--response-format markdown` provides the same selected facts as Markdown. Clients read
`content[0].text` and resolve entity/relation catalog references.

- Preserve exact identifiers, source locators, next-action arguments, and bilateral evidence.
- Correlate HTTP consumers to containing symbols by repository and declaration line.
- Distinguish successful empty full-text search from unavailable or failed search.
- Include Explore source, deduplicated entity/relation catalogs, and snapshot identity in both formats.
- Bound the complete tool result with `maxMcpToolResponseBytes` and return explicit recovery guidance
when it exceeds the budget.

## [1.2.0] - 2026-10-03

Expand Down Expand Up @@ -156,15 +168,11 @@ Versioning.

### Breaking changes

- MCP tools now return one bounded Markdown text block plus typed agent-delivery
`structuredContent`; result `outputSchema` remains omitted. All MCP resources use
`text/markdown`, with fenced JSON only in the schema catalog.
- HTTP and CLI tool envelopes use delivery schema v2. Explore returns `ExploreReport` and places
ephemeral source in `source_markdown`.
- Direct MCP mode requires `--config`; binding mode loads its recorded global manifest. Generated
plugin bindings and ownership receipts use version 2.
- SQLite schema version 2 deliberately rejects 1.0.x databases. A fresh database and complete scan
are required; no legacy serializer, cache, plugin, or database compatibility path is provided.
- SQLite validation requires a database to match the running binary's embedded schema.

### Added

Expand All @@ -178,8 +186,8 @@ Versioning.
exact provider execution accounting.
- Query now returns grounded next actions and directs zero-hit source questions toward Explore when
a real registered repository alias is recognized.
- Added bounded Markdown rendering with UTF-8-safe, block-stable truncation and centralized escaping
for headings, inline values, paths, controls, and untrusted source blocks.
- Added bounded MCP resource Markdown rendering with UTF-8-safe truncation and escaping for
headings, inline values, paths, and controls.

### Fixed

Expand All @@ -189,15 +197,12 @@ Versioning.
agent-delivery-only settings, so scan-facing changes cannot reuse stale persisted results.
- Explore reports observed provider concurrency and counts an anchor as traversed only after both
caller and callee directions complete successfully.
- MCP rendering now preserves compact status, freshness, warnings, coverage, and paths at the
- MCP resource rendering preserves compact status, freshness, warnings, coverage, and paths at the
256-byte minimum, and reports collection retention after both item and byte limits are applied.

### Release engineering

- Added exhaustive typed Markdown fixtures and golden coverage for all 15 MCP tools and every MCP
resource, including low-budget, UTF-8, fenced-source, error, and nested-collection cases.
- Added direct deadline and cancellation tests for Explore snapshot loading and correlation, plus
synchronized Markdown-only MCP instructions and CLI configuration examples.
- Added direct deadline and cancellation tests for Explore snapshot loading and correlation.
- Updated `rustls` to 0.23.45 (RUSTSEC-2026-0285) with `rustls-webpki` 0.103.15, and replaced the
yanked `chacha20` 0.10.1 with 0.10.2.

Expand Down Expand Up @@ -303,7 +308,7 @@ First public release of Code System Graph.

### CodeGraph delivery

- Added the read-only `explore` MCP tool and HTTP endpoint for bounded, ephemeral
- Added the read-only `explore` MCP tool for bounded, ephemeral
repository-local source and flow context. The tool is advertised only when CodeGraph is
explicitly enabled through `--codegraph` or `CODE_SYSTEM_GRAPH_CODEGRAPH=1`.
- Added server-configured automatic CodeGraph enrichment to MCP and HTTP impact requests.
Expand Down Expand Up @@ -431,7 +436,7 @@ First public release of Code System Graph.

- Added validation for unsafe control characters, bidirectional metadata, duplicate graph
identities, invalid references, malformed numeric evidence, and oversized metadata.
- Added GraphQL extraction payload strictness: legacy `default_value` fields are rejected and
- Added GraphQL extraction payload strictness: unknown fields are rejected and
structural default categories use `default_value_kind` only.
- Added backup-restore validation for missing or altered schema objects, foreign-key integrity,
and pinned read-only backup sources.
Expand Down
10 changes: 5 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ default-members = ["crates/*"]
resolver = "3"

[workspace.package]
version = "1.2.0"
version = "1.2.1"
edition = "2024"
rust-version = "1.96.0"
description = "Local cross-repository code intelligence and dependency graph for impact analysis and AI coding agents."
Expand Down
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Map APIs, events, schemas, packages, databases, and ownership across repositorie
breaks another service.

[![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)
![Source version](https://img.shields.io/badge/source-v1.2.0-orange.svg)
![Source version](https://img.shields.io/badge/source-v1.2.1-orange.svg)
[![crates.io](https://img.shields.io/crates/v/code-system-graph.svg)](https://crates.io/crates/code-system-graph)
![Platforms](https://img.shields.io/badge/validated-Linux%20%7C%20macOS%20%7C%20Windows-1793d1.svg)
![Privacy](https://img.shields.io/badge/privacy-local%20%7C%20no%20telemetry-2ea44f.svg)
Expand Down Expand Up @@ -280,8 +280,10 @@ codex mcp add code-system-graph -- \
--database /absolute/path/to/my-project/.code-system-graph/code-system-graph.db
```

MCP tools return one bounded Markdown text block and resources use `text/markdown`. HTTP and CLI
retain typed schema-v2 JSON. Explore is the only source-bearing response and combines ephemeral
MCP tools return one bounded schema-6 JSON text block by default; `--response-format markdown`
selects Markdown with the same facts. Clients read `content[0].text` and resolve the entity and
relation catalogs described in [MCP surface](docs/MCP.md). Resources use `text/markdown`; HTTP and
CLI use typed schema-v2 JSON. Explore is the only source-bearing response and combines ephemeral
source, symbols, callers/callees, federated evidence handoffs, coverage, and grounded next actions.
Final MCP tool, resource, and schema-catalog budgets must each be at least 256 bytes so status and
truncation controls remain representable.
Expand Down Expand Up @@ -334,7 +336,7 @@ plugin root. Re-run with `--replace-generated` after local paths change; only a
Code System Graph's recognized ownership identity can be replaced. Until local binding creation
runs, that MCP entry fails visibly while independent plugin skills and servers remain usable.

The generated MCP is read-only and requires `csgraph 1.2.0` in `PATH`; it does not bundle binaries.
The generated MCP is read-only and requires `csgraph 1.2.1` in `PATH`; it does not bundle binaries.
Its plugin, server, and skill share a stable name derived from the declared workspace name, so
clones produce the same versioned files. Install it project-locally for workspace-only activation;
the generated skill also requires the nearest manifest and MCP `status` to report that workspace.
Expand Down
8 changes: 4 additions & 4 deletions crates/code-system-graph-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,10 @@ blake3 = "1.8.7"
foldhash = "0.2.0"
clap = { version = "4.6.7", features = ["derive"] }
clap_complete = "4.6.11"
code-system-graph-core = { version = "1.2.0", path = "../code-system-graph-core" }
code-system-graph-hooks = { version = "1.2.0", path = "../code-system-graph-hooks" }
code-system-graph-model = { version = "1.2.0", path = "../code-system-graph-model" }
code-system-graph-store-sqlite = { version = "1.2.0", path = "../code-system-graph-store-sqlite" }
code-system-graph-core = { version = "1.2.1", path = "../code-system-graph-core" }
code-system-graph-hooks = { version = "1.2.1", path = "../code-system-graph-hooks" }
code-system-graph-model = { version = "1.2.1", path = "../code-system-graph-model" }
code-system-graph-store-sqlite = { version = "1.2.1", path = "../code-system-graph-store-sqlite" }
rmcp = { version = "3.5.0", features = ["transport-io"] }
notify = "8.2.0"
rusqlite = { version = "0.40.2", features = ["bundled"] }
Expand Down
Loading
Loading