From a877aa30269e2fcfe7d3a484540ab05fe60da27a Mon Sep 17 00:00:00 2001 From: sunerpy Date: Sat, 25 Jul 2026 04:29:40 +0800 Subject: [PATCH 01/91] docs(upstream): bootstrap v1.5 sync provenance --- .gitignore | 4 +- .oxfmtignore | 5 + docs/upstream-sync/KNOWN_DIFFS.md | 184 +++++ docs/upstream-sync/UPSTREAM.md | 886 +++++++++++++++++++++ docs/upstream-sync/V1_5_COMMIT_MANIFEST.md | 142 ++++ docs/upstream-sync/V1_5_PORTABLE_FIXES.md | 109 +++ 6 files changed, 1327 insertions(+), 3 deletions(-) create mode 100644 docs/upstream-sync/KNOWN_DIFFS.md create mode 100644 docs/upstream-sync/UPSTREAM.md create mode 100644 docs/upstream-sync/V1_5_COMMIT_MANIFEST.md create mode 100644 docs/upstream-sync/V1_5_PORTABLE_FIXES.md diff --git a/.gitignore b/.gitignore index b1dee1f..a565ed6 100644 --- a/.gitignore +++ b/.gitignore @@ -20,9 +20,7 @@ target/llvm-cov/ # Per-project index DB written by `codegraph init` / `index`. .codegraph/ - -# Local upstream-sync ledger (colby-upstream-sync skill); not part of the repo. -docs/upstream-sync/ +.codegraph-v2/ # AWS CodeBuild local config (sensitive — never commit) .aws/codebuild.env diff --git a/.oxfmtignore b/.oxfmtignore index 512eaf0..1aed11b 100644 --- a/.oxfmtignore +++ b/.oxfmtignore @@ -9,6 +9,11 @@ changelog/ .release-please-manifest.json release-please-config.json +# Frozen/hash-addressed upstream-sync provenance. These bytes are reviewed and +# verified by SHA rather than rewritten by the general Markdown formatter. +docs/upstream-sync/UPSTREAM.md +docs/upstream-sync/V1_5_COMMIT_MANIFEST.md + # Golden artifacts are byte-compared by the equivalence/golden oracle tests # (include_str! / fs::read). Reformatting them breaks the test suite. reference/ diff --git a/docs/upstream-sync/KNOWN_DIFFS.md b/docs/upstream-sync/KNOWN_DIFFS.md new file mode 100644 index 0000000..411cd7b --- /dev/null +++ b/docs/upstream-sync/KNOWN_DIFFS.md @@ -0,0 +1,184 @@ +# 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 + `