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
Copy file name to clipboardExpand all lines: docs/gap-analysis.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -72,7 +72,7 @@ Intentionally deferred after Phase 7:
72
72
- The remaining MCP work outside the completed daily-use slice, especially fuller Cypher parity.
73
73
- Full Cypher parity beyond the broader day-to-day query subset now supporting node/edge reads, filtering, sorting, and counts.
74
74
- Deeper usage/type-reference extraction parity and broader cross-language semantics beyond the current target daily-use slice.
75
-
- Richer decorator/enrichment follow-ons, broader route detection, and broader config normalization/linking surface. (Git-history coupling is now implemented; route nodes and config-linking both have strict shared graph-model fixture slices.)
75
+
- Richer decorator/enrichment follow-ons and broader route/config expansion beyond the implemented graph-model parity fixture contract. (Git-history coupling is implemented; route nodes and config-linking both have strict shared graph-model fixture slices.)
76
76
- Broader installer/self-update behavior beyond the current source-build-friendly Codex CLI / Claude Code support.
77
77
- Idle-store and session-lifecycle extras beyond the current persistent-store + watcher runtime model.
78
78
@@ -126,10 +126,10 @@ Deferred or optional future slices:
- 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
-
- 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 fixture coverage remains open)
129
+
- route nodes — implemented for the graph-model parity fixture contract (stub and concrete URL/path/topic `Route` nodes, verified decorator-backed `Route`/`HANDLES`, strict shared route-linked `DATA_FLOWS`, strict shared `ASYNC_CALLS`, and route summary exposure; broader framework expansion remains optional)
|`pass_route_nodes`| 742 |PARTIAL (stub and concrete URL/path/topic Route nodes, verified decorator-backed `Route`/`HANDLES`, strict shared route-linked `DATA_FLOWS`, and strict shared `ASYNC_CALLS`) | HTTP/async route node creation, first handler association slice, and first data-flow bridge |
431
+
|`pass_route_nodes`| 742 |WORKS for graph-model parity fixture contract (stub and concrete URL/path/topic Route nodes, verified decorator-backed `Route`/`HANDLES`, strict shared route-linked `DATA_FLOWS`, strict shared `ASYNC_CALLS`, and route summary exposure) | HTTP/async route node creation, first handler association slice, and first data-flow bridge |
432
432
|`pass_tests`| 285 | WORKS for the shared Python `TESTS` / `TESTS_FILE` slice | Test file/function tagging now verified on the local parity fixture; broader language breadth stays follow-on work |
433
433
|`pass_enrichment`|~200 | MISSING (deferred) | Decorator tag enrichment |
434
-
|`pass_configlink`|~200 |PARTIAL (Strategy 1 key-symbol + Strategy 2 dependency-import; first strict shared key-symbol fixture is locked) | Config-code linking |
434
+
|`pass_configlink`|~200 |WORKS for graph-model parity fixture contract (Strategy 1 key-symbol + Strategy 2 dependency-import; strict shared key-symbol fixture and Zig dependency-import deduplication coverage are locked) | Config-code linking |
435
435
|`pass_githistory`| 514 | WORKS | Change coupling from git log |
-Moved: `docs/plans/in-progress/graph-model-parity-progress.md` to `docs/plans/implemented/graph-model-parity-progress.md`
80
87
81
88
## Phases
82
89
@@ -88,16 +95,16 @@ short one-token config key.
88
95
-[x] Define fixture-backed acceptance rules for strict shared C/Zig `ASYNC_CALLS`.
89
96
-[x] Define fixture-backed acceptance rules for first-slice config normalization/linking.
90
97
-[x] Add a minimal Python route fixture under `testdata/interop/graph-model/routes/`.
91
-
-[ ] Add minimal JavaScript/TypeScript route fixtures once the shared C/Zig public behavior is established for those registrations.
92
-
-**Status:**partially complete
98
+
-[x] Probe JavaScript/TypeScript route fixture candidates and keep Zig-only coverage when the current C reference does not expose shared route-registration rows.
-[x] Define the first accepted `DATA_FLOWS` route-link contract from route caller edges through `HANDLES` targets without pretending to solve full local data-flow analysis.
@@ -115,17 +122,17 @@ short one-token config key.
115
122
### Phase 4: Finish Config-Link Normalization
116
123
-[x] Add the first strict shared key-symbol fixture for dash/camel config normalization.
117
124
-[x] Verify raw config keys remain query-visible while normalized matching creates stable links.
118
-
-[ ] Extend config-key extraction and matching only for additional original-overlap config patterns with fixture evidence.
119
-
-[] Add regression coverage for dependency-import matching, deduplication, and broader query visibility.
120
-
-**Status:**in progress
125
+
-[x] Probe additional config-key extraction patterns against the current C reference and avoid adding non-shared fixtures where the reference does not expose rows.
126
+
-[x] Add regression coverage for dependency-import matching, deduplication, and query visibility.
127
+
-**Status:**complete
121
128
122
129
### Phase 5: Verify and Reclassify
123
130
-[x] Run `zig build`, `zig build test`, `bash scripts/run_interop_alignment.sh --zig-only`, and focused graph-model fixture queries.
124
131
-[x] Run the full Zig-vs-C interop harness if the C reference binary is available locally.
125
132
-[x] Update `docs/port-comparison.md`, `docs/gap-analysis.md`, and `docs/zig-port-plan.md` only for rows backed by the new fixtures.
126
133
-[x] Remove graph-model fixture mismatches from the full harness by tightening shared C/Zig query contracts for config-deps and HTTP function inventory fixtures.
127
-
-[] Move this plan and its progress log to `docs/plans/implemented/` only after all required verification passes.
128
-
-**Status:**in progress
134
+
-[x] Move this plan and its progress log to `docs/plans/implemented/` only after all required verification passes.
Copy file name to clipboardExpand all lines: docs/plans/implemented/graph-model-parity-progress.md
+14-3Lines changed: 14 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,15 +3,15 @@
3
3
## Session: 2026-04-16
4
4
5
5
### Phase 1: Lock the Remaining Graph Contract
6
-
-**Status:**partially complete
6
+
-**Status:** complete
7
7
- Actions:
8
8
- Moved `docs/plans/new/graph-model-parity-plan.md` to `docs/plans/in-progress/graph-model-parity-plan.md` before implementation.
9
9
- Starting from current main baseline: full Zig-vs-C harness reports 151 comparisons, 86 strict matches, 19 diagnostic-only comparisons, and 10 known mismatches.
10
10
- Re-read the original route-node and service-pattern route registration paths and selected the first shared public contract: decorator-backed routes create `Route` nodes and `HANDLES` edges, with query-visible handler and route rows.
11
11
- Added `testdata/interop/graph-model/routes/app.py` and manifest assertions for `Route` and `HANDLES` query rows.
12
12
13
13
### Phase 2: Complete Route Handler Modeling
14
-
-**Status:**in progress
14
+
-**Status:**complete
15
15
- Actions:
16
16
- Extended extractor state so route decorators create `Route` nodes plus `HANDLES` edges during extraction.
17
17
- Added route-registration call metadata for framework calls such as `app.get("/path", handler)` and pipeline emission for `Route`, `CALLS`, and `HANDLES` when the handler resolves.
@@ -40,13 +40,24 @@
40
40
- Regenerated `graph-model-async` golden coverage.
41
41
42
42
### Phase 4: Finish Config-Link Normalization
43
-
-**Status:**in progress for the first shared key-symbol slice
43
+
-**Status:**complete for the graph-model parity plan
44
44
- Actions:
45
45
- Re-read the original C `pass_configlink` behavior and compared it with Zig's `runConfigLinkPass` and `normalizeConfigName`.
46
46
- Probed a focused YAML/Python fixture against both implementations and confirmed the shared public rows before adding repo fixtures.
47
47
- Added `testdata/interop/graph-model/config/` with `maxConnections`, `max_connections`, `max-connections`, and `short`.
48
48
- Added strict manifest assertions that prove the raw `max-connections` config key, the normalized `maxConnections -> max-connections``CONFIGURES` row, and no false `CONFIGURES` row for `short`.
49
49
- Regenerated `graph-model-config` golden coverage.
50
+
- Probed Cargo/TOML dependency-import fixture candidates against both implementations; the current C reference did not emit the matching `CONFIGURES` rows, so this was not added as a shared fixture.
51
+
- Added Zig regression coverage for dependency-import matching and deduplication when a manifest dependency resolves through an import edge.
52
+
- Probed JSON config-key extraction against both implementations and avoided adding a non-shared fixture because the current C reference did not expose the JSON config row in that scenario.
53
+
54
+
### Phase 5: Verify and Reclassify
55
+
-**Status:** complete
56
+
- Actions:
57
+
- Added route summary exposure coverage through `getArchitecturePayload` with a route fixture that emits route and `HTTP_CALLS` data.
58
+
- Probed JavaScript/TypeScript route registration candidates against the current C reference; no shared public fixture rows were available, so Zig coverage remains in service-pattern, extractor, and pipeline tests.
59
+
- Removed graph-model fixture mismatches from the full harness by tightening the shared `config-deps` and `http-calls` fixture contracts to rows both implementations expose.
60
+
- Reclassified remaining graph-model work as optional future parity expansion beyond this plan's verified shared contracts.
0 commit comments