You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- long-tail edges — now implemented: `THROWS`/`RAISES` (JS/TS/TSX throw statements), decorator-backed `HANDLES`, and route-linked `DATA_FLOWS`; remaining or out-of-scope gaps: `OVERRIDE` (Go-only), `WRITES`/`READS` (not proven original-overlap by the current C reference fixture)
129
129
- route nodes — partially implemented (stub and concrete URL/path/topic `Route` nodes, verified decorator-backed `Route`/`HANDLES`, strict shared route-linked `DATA_FLOWS`, and strict shared `ASYNC_CALLS`; broader framework coverage still open)
130
-
- config-linking — partially implemented (Strategy 1 key-symbol + Strategy 2 dependency-import; the first strict shared key-symbol normalization fixture now proves raw-key preservation and `CONFIGURES` query visibility, while dependency-import closure remains open)
130
+
- config-linking — partially implemented (Strategy 1 key-symbol + Strategy 2 dependency-import; the first strict shared key-symbol normalization fixture now proves raw-key preservation and `CONFIGURES` query visibility, while dependency-import fixture coverage remains open)
131
131
- richer decorator/enrichment promotion
132
132
- current entrypoint: [graph-model-parity-plan.md](/Users/skooch/projects/codebase-memory-zig/docs/plans/in-progress/graph-model-parity-plan.md)
-`bash scripts/run_interop_alignment.sh --update-golden` -> passed, 22/22 golden snapshots updated
56
56
-`bash scripts/run_interop_alignment.sh --zig-only` -> passed, 22/22 golden comparison
57
-
-`bash scripts/run_interop_alignment.sh` -> passed with 22 fixtures, 172 comparisons, 95 strict matches, 22 diagnostic-only comparisons, 10 known mismatches, and `cli_progress: match`
57
+
-`bash scripts/run_interop_alignment.sh` -> passed with 22 fixtures, 172 comparisons, 97 strict matches, 22 diagnostic-only comparisons, 9 known mismatches, and `cli_progress: match`
58
58
-`git diff --check` -> passed
59
59
-`command -v zlint` -> blocked; `zlint` is not installed in this environment
60
60
@@ -69,3 +69,4 @@
69
69
| 2026-04-16 | Adding a strict manifest assertion for the new `DATA_FLOWS` row increased the full C/Zig mismatch count because the current C binary did not emit that row for the public fixture. | Ran full interop and inspected per-implementation `graph-model-routes` query rows. | Removed the `DATA_FLOWS` row from the strict shared manifest while keeping Zig unit/focused coverage and documenting the shared-fixture blocker. |
70
70
| 2026-04-16 | The first strict `DATA_FLOWS` fixture attempt used `@app.route`, which creates an `ANY` handler route in C while `requests.get` creates a `GET` caller route, so the bridge could not form. | Queried C route qualified names and saw separate `__route__ANY__/api/users` and `__route__GET__/api/users` nodes. | Switched the fixture to `@app.get`, kept the assertion filtered to `fetch_users`, and patched Zig resolved-call service classification so both implementations share the `GET` route row. |
71
71
| 2026-04-16 | Zig classified `celery.delay` as async but only treated URL-like arguments as service route targets, so a topic argument produced an `ASYNC delay` route instead of a topic route. | Ran a focused temp fixture with `celery.delay("users.refresh")` against both binaries. | Accepted non-URL topics for `ASYNC_CALLS`, preserved broker names, and added the strict `graph-model-async` fixture. |
72
+
| 2026-04-16 |`graph-enrichment-config-deps` used a Zig project name that did not match the indexed directory basename and queried every `Variable`, which mixed a project-name issue with a broad local-binding difference. | Ran a focused temp manifest and compared C/Zig rows for the fixture. | Changed the fixture project to `config-deps` and tightened the query to the shared `express` require-binding row, removing this mismatch from the full harness without claiming full dependency-import coverage. |
Copy file name to clipboardExpand all lines: docs/port-comparison.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -132,7 +132,7 @@ It is intentionally not a wish list. It describes:
132
132
| LSP hybrid type resolution | Present for Go/C/C++ in original | Not implemented |`Deferred`| No | The original README explicitly calls out LSP-style hybrid type resolution; Zig does not ship that layer. |
133
133
| Test tagging pass | Yes | Yes for the verified shared Python fixture slice |`Near parity`| Yes | Zig now derives `TESTS` and `TESTS_FILE` from shared filename and call-edge rules on the parity fixture without reopening broader language-specific enrichment work. |
134
134
| Git history coupling | Yes | Implemented |`Near parity`| Yes | Zig pass uses subprocess `git log` (no libgit2); creates `FILE_CHANGES_WITH` edges with `co_changes` and `coupling_score` properties. |
135
-
| Config linking / config normalization | Yes | Partial |`Partial`| No | Zig now implements Strategy 1 (key-symbol) and Strategy 2 (dependency-import matching); the first strict shared key-symbol normalization fixture locks raw-key query visibility and `maxConnections -> max-connections`, but dependency-import mismatch closure and broader normalization coverage remain open. |
135
+
| Config linking / config normalization | Yes | Partial |`Partial`| No | Zig now implements Strategy 1 (key-symbol) and Strategy 2 (dependency-import matching); the first strict shared key-symbol normalization fixture locks raw-key query visibility and `maxConnections -> max-connections`, but dependency-import fixture coverage and broader normalization coverage remain open. |
136
136
| Route-node creation / cross-service graph | Yes | Partial |`Partial`| No | Zig now classifies call edges as `HTTP_CALLS`/`ASYNC_CALLS`, creates stub and concrete URL/path/topic `Route` nodes, emits verified decorator-backed `HANDLES`, and has strict shared route-linked `DATA_FLOWS` plus async topic fixtures. Broader framework coverage remains open. |
137
137
| Infra scanning (`Docker`, `K8s`, Terraform, etc.) | Yes in the original codebase | Not ported |`Cut`| No | Zig intentionally excludes the infra-scan family from the current port target. |
138
138
| OTLP traces | Stubbed | Not ported |`N/A`| No | Not a meaningful implemented-vs-implemented gap. |
@@ -226,7 +226,7 @@ If someone asks “what still separates the Zig port from the original?”, the
226
226
| No full Cypher parity | Some advanced graph query patterns remain C-only. |
| No LSP-assisted hybrid resolution | Some higher-fidelity call/type resolution paths remain original-only. |
229
-
| No full config normalization | Git-history coupling is implemented, config linking has dependency-import matching and a strict shared key-symbol normalization fixture, decorator-backed `HANDLES` is verified, strict shared route-linked `DATA_FLOWS` is covered, and the first async topic route fixture is covered. The remaining graph-model gap is broader framework route coverage plus dependency-import and broader config-normalization closure. |
229
+
| No full config normalization | Git-history coupling is implemented, config linking has dependency-import matching and a strict shared key-symbol normalization fixture, decorator-backed `HANDLES` is verified, strict shared route-linked `DATA_FLOWS` is covered, and the first async topic route fixture is covered. The remaining graph-model gap is broader framework route coverage plus dependency-import fixture coverage and broader config-normalization closure. |
230
230
| No UI subsystem | The original can run a graph visualization UI; the Zig port intentionally cannot. |
231
231
| Much narrower installer ecosystem | The original configures 10 agents plus hooks/instructions; Zig currently configures 2 agents and only MCP entries. |
0 commit comments