diff --git a/Cargo.lock b/Cargo.lock index 52a3a9a2..03fe4a73 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -209,7 +209,7 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" [[package]] name = "codegraph-bench" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "clap", @@ -224,7 +224,7 @@ dependencies = [ [[package]] name = "codegraph-core" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "serde", @@ -240,7 +240,7 @@ dependencies = [ [[package]] name = "codegraph-daemon" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "codegraph-core", @@ -254,7 +254,7 @@ dependencies = [ [[package]] name = "codegraph-extract" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "codegraph-core", @@ -294,7 +294,7 @@ dependencies = [ [[package]] name = "codegraph-graph" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "codegraph-core", @@ -306,7 +306,7 @@ dependencies = [ [[package]] name = "codegraph-mcp" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "codegraph-core", @@ -322,7 +322,7 @@ dependencies = [ [[package]] name = "codegraph-resolve" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "codegraph-core", @@ -335,7 +335,7 @@ dependencies = [ [[package]] name = "codegraph-rs" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "clap", @@ -348,6 +348,7 @@ dependencies = [ "codegraph-resolve", "codegraph-store", "codegraph-watch", + "jsonc-parser", "serde", "serde_json", "time", @@ -358,7 +359,7 @@ dependencies = [ [[package]] name = "codegraph-store" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "codegraph-core", @@ -370,7 +371,7 @@ dependencies = [ [[package]] name = "codegraph-watch" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "codegraph-core", @@ -685,6 +686,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jsonc-parser" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d80e6d70e7911a29f3cf3f44f452df85d06f73572b494ca99a2cad3fcf8f4" +dependencies = [ + "serde_json", +] + [[package]] name = "kqueue" version = "1.2.0" diff --git a/Cargo.toml b/Cargo.toml index f8efc44c..65036f3c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,6 +55,9 @@ notify = "6" # CLI clap = { version = "4.5", features = ["derive"] } +# JSONC config editing (preserve comments + key order on agent config writes) +jsonc-parser = { version = "0.26", features = ["cst", "serde"] } + # Benchmarking criterion = "0.7" diff --git a/KNOWN_DIFFS.md b/KNOWN_DIFFS.md deleted file mode 100644 index 411cd7bc..00000000 --- a/KNOWN_DIFFS.md +++ /dev/null @@ -1,184 +0,0 @@ -# Known CodeGraph Equivalence Differences - -This file is parsed by `codegraph-bench::oracle::diff::KnownDiffs` for Tier-3 -differences only. Tier-1 and Tier-2 differences are never allowlisted by this -file. - -## Rule format - -One grep-able rule per line: - -```text -RULE tier=3 surface= key= justification= -``` - -- `tier`: currently only `3` can allow a diff. -- `surface`: presentation or behavioral surface name reported by the differ. -- `key`: substring matched against the diff key, or `*` for the whole surface. -- `justification`: short no-spaces reason; expand with prose nearby when needed. - -## Current rules - -No Tier-3 rules are active yet. - -## Canonicalized by design, not allowlisted - -Timestamps are stripped before comparison and are therefore not represented as -Tier-3 rules: - -- `nodes.updated_at` -- `files.modified_at` -- `files.indexed_at` - -## Deferred colby resolution behavior (Task 20, codegraph-resolve) - -The v1 Rust port of `reference/colby/src/resolution/` ships the two CORE -deterministic strategies — import resolution (`import-resolver.ts`) and name -matching (`name-matcher.ts`) — orchestrated by `ReferenceResolver` -(`index.ts`), plus THREE concrete `FrameworkResolver` implementations behind the -`FrameworkResolver` trait EXTENSION POINT (`crates/codegraph-resolve/src/framework.rs`): -React/Next.js, Vue/Nuxt, and NestJS (`crates/codegraph-resolve/src/frameworks/`), -detected per-project by `detect_frameworks`. The remaining ~19 colby resolvers -stay deferred. The following colby behaviors are intentionally NOT ported in v1: - -- **The other framework-specific resolvers** — every concrete `FrameworkResolver` - in `reference/colby/src/resolution/frameworks/**` EXCEPT react/vue/nestjs: - Spring/Java, Drupal `routing.yml`, Express, Svelte, React Native / Expo / Fabric - bridges, Swift↔ObjC bridging, the Go-module / Python / Ruby / C# / Play route - extractors, and the Astro resolver - (`frameworks/astro.ts`: `astro:*` module imports + the `Astro` global resolved - as framework-provided, and `src/pages` file-based route-node mapping). These - are an additive heuristic layer; on a project where none of react/vue/nestjs is - detected the orchestrator holds an empty resolver list, so behavior matches - colby with zero frameworks detected. The Astro - EXTRACTION half (frontmatter + `