Skip to content

Commit fe78641

Browse files
docs: update dogfood report with fix statuses
All 4 bugs now fixed (PR #117 merged, #116 closed via reverse-dep cascade). 3 of 4 suggestions addressed. MCP tool counts updated 18→23 / 19→24. Rating upgraded 7/10 → 9/10 post-fix.
1 parent 8565274 commit fe78641

1 file changed

Lines changed: 27 additions & 25 deletions

File tree

generated/DOGFOOD_REPORT_v2.4.0.md

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,8 @@ codegraph build <repo> --engine native --no-incremental --verbose
116116
| `watch .` | PASS | Starts, detects changes, graceful Ctrl+C |
117117
| `registry list` | PASS | JSON and text output |
118118
| `registry prune --ttl 365` | PASS | "No stale entries" |
119-
| `mcp` (single-repo) | PASS | 18 tools, `list_repos` absent |
120-
| `mcp --multi-repo` | PASS | 19 tools, `list_repos` present |
119+
| `mcp` (single-repo) | PASS | 23 tools, `list_repos` absent (was 18 at time of report; now includes complexity, communities, execution_flow, list_entry_points, co_changes) |
120+
| `mcp --multi-repo` | PASS | 24 tools, `list_repos` present |
121121

122122
### Edge Cases Tested
123123

@@ -277,9 +277,9 @@ Appended `// test comment` to `src/logger.js`:
277277
| Test | Result |
278278
|------|--------|
279279
| Single-repo initialization (JSON-RPC) | PASS — Valid response |
280-
| `tools/list` (single-repo) | PASS — 18 tools, `list_repos` absent |
281-
| `tools/list` (multi-repo) | PASS — 19 tools, `list_repos` present |
282-
| New tools: `node_roles`, `co_changes` | Present in tool list |
280+
| `tools/list` (single-repo) | PASS — 23 tools, `list_repos` absent (updated from 18 after complexity, communities, execution_flow, list_entry_points, co_changes added) |
281+
| `tools/list` (multi-repo) | PASS — 24 tools, `list_repos` present |
282+
| New tools: `node_roles`, `co_changes`, `complexity`, `communities`, `execution_flow`, `list_entry_points` | Present in tool list |
283283

284284
### Config & Environment
285285

@@ -322,27 +322,27 @@ Appended `// test comment` to `src/logger.js`:
322322
- **Root cause:** `loadModel()` used `console.log()` instead of the stderr-routed `info()` logger.
323323
- **Fix applied:** Replaced `console.log` with `info()` for both messages.
324324

325-
### BUG 4: Incremental rebuild drops edges (High)
326-
- **Issue:** [#116](https://github.com/optave/codegraph/issues/116)
327-
- **PR:** Open — too complex for this session
325+
### BUG 4: ~~Incremental rebuild drops edges~~ — FIXED
326+
- **Issue:** [#116](https://github.com/optave/codegraph/issues/116) — Closed
327+
- **PR:** Fixed via reverse-dependency cascade in `builder.js:444`
328328
- **Symptoms:** Touching one file (appending a comment) and running incremental build drops 46 edges (33 calls, 12 imports, 1 reexport). Full rebuild restores them.
329-
- **Root cause:** The incremental edge deletion query (`DELETE FROM edges WHERE source_id IN (changed file) OR target_id IN (changed file)`) removes ALL edges touching the changed file — including incoming edges from other files. The edge rebuilding phase only processes changed files, so edges from other files that reference the changed file's exports are lost.
330-
- **Fix applied:** None yet. Requires rethinking the incremental rebuild's edge cascade strategy.
329+
- **Root cause:** The incremental edge deletion query removed ALL edges touching the changed file — including incoming edges from other files. The edge rebuilding phase only processed changed files.
330+
- **Fix applied:** Reverse-dependency cascade — when a file changes, files that import it are identified and their outgoing edges are re-resolved. Edge deletion now only removes outgoing edges for reverse-dep files (nodes/IDs preserved).
331331

332332
---
333333

334334
## 9. Suggestions for Improvement
335335

336-
### 9.1 Add `--db` flag to `embed` command
337-
Currently `embed` doesn't support `--db`, unlike all other commands. This makes it harder to test against specific databases.
336+
### 9.1 ~~Add `--db` flag to `embed` command~~ — DONE
337+
~~Currently `embed` doesn't support `--db`, unlike all other commands.~~ Fixed: `embed` now supports `-d, --db <path>`.
338338

339-
### 9.2 Redirect HuggingFace library console output
340-
The `@huggingface/transformers` library prints "dtype not specified..." via `console.warn` which goes to stderr, but the library may have other `console.log` calls that could leak to stdout. Consider monkey-patching `console.log` during model loading or using the library's logging configuration.
339+
### 9.2 ~~Redirect HuggingFace library console output~~ — DONE
340+
~~The `@huggingface/transformers` library prints "dtype not specified..." via `console.warn` which goes to stderr.~~ Fixed in PR #117: `loadModel()` messages switched from `console.log` to `info()` (stderr-routed logger). The HF library's own `console.warn` goes to stderr naturally and doesn't affect stdout pipe consumers.
341341

342-
### 9.3 Incremental rebuild needs reverse-dep edge cascade
343-
The most impactful fix would be making incremental rebuilds re-resolve edges for files that import changed files (reverse dependency cascade). This would fix Bug #4 and ensure incremental builds produce identical results to full builds.
342+
### 9.3 ~~Incremental rebuild needs reverse-dep edge cascade~~ — DONE
343+
~~The most impactful fix would be making incremental rebuilds re-resolve edges for files that import changed files.~~ Implemented at `builder.js:444` — reverse-dependency cascade detects files that import changed files and re-resolves their outgoing edges, fixing Bug #4.
344344

345-
### 9.4 Update notification testing
345+
### 9.4 Update notification testing — Open (low priority)
346346
The update notification feature was not observable during testing. Consider adding a `--check-update` flag for manual testing, or document when the notification appears.
347347

348348
---
@@ -402,16 +402,18 @@ The update notification feature was not observable during testing. Consider addi
402402

403403
Codegraph v2.4.0 is a solid release with compelling new features — co-change analysis and node role classification add meaningful value. The tree-sitter Query API migration delivers measurable performance gains. Engine parity remains perfect.
404404

405-
**However**, two high-severity bugs were found:
405+
**All 4 bugs found during dogfooding have been fixed:**
406406

407-
1. Windows users get no native engine due to a missing `optionalDependencies` entry — easy fix, already submitted.
408-
2. Incremental rebuilds silently drop edges — this is the most concerning issue as it produces incorrect graph data without any warning. Users relying on incremental builds may have missing edges.
407+
1. ~~Windows users get no native engine~~ — Fixed in PR #117 (added win32 to optionalDependencies)
408+
2. ~~extractLeadingComment crashes~~ — Fixed in PR #117 (bounds check)
409+
3. ~~search --json leaks to stdout~~ — Fixed in PR #117 (switched to stderr logger)
410+
4. ~~Incremental rebuild drops edges~~ — Fixed via reverse-dep cascade in builder.js
409411

410-
The 3 simpler bugs are fixed in PR #117. Bug #4 (incremental edge drop) needs deeper work.
412+
3 of 4 improvement suggestions also addressed (9.1 `--db` on embed, 9.2 HF output, 9.3 reverse-dep cascade). Only 9.4 (update notification testing) remains open as low priority.
411413

412-
**Rating: 7/10**
414+
**Rating: 7/10 → 9/10 (post-fix)**
413415

414-
Justification: All commands work correctly, engine parity is perfect, and the new features (co-change, roles) work well. The deduction is for: the missing win32 binary (-1, high impact for Windows), the incremental edge drop (-1.5, silently produces wrong results), and the stdout pollution in search --json (-0.5, minor but affects tooling integration).
416+
Original deductions were: missing win32 binary (-1), incremental edge drop (-1.5), stdout pollution (-0.5). All three are now fixed. Remaining -1: update notification untested, and the HF library's `console.warn` to stderr is cosmetic but not fully silenced.
415417

416418
---
417419

@@ -422,5 +424,5 @@ Justification: All commands work correctly, engine parity is perfect, and the ne
422424
| Issue | [#113](https://github.com/optave/codegraph/issues/113) | bug: @optave/codegraph-win32-x64-msvc missing from optionalDependencies | Closed via PR #117 |
423425
| Issue | [#114](https://github.com/optave/codegraph/issues/114) | bug(embedder): extractLeadingComment crashes on out-of-bounds line access | Closed via PR #117 |
424426
| Issue | [#115](https://github.com/optave/codegraph/issues/115) | bug(embedder): search --json leaks model loading messages to stdout | Closed via PR #117 |
425-
| Issue | [#116](https://github.com/optave/codegraph/issues/116) | bug(builder): incremental rebuild drops edges when re-parsing a file | Open |
426-
| PR | [#117](https://github.com/optave/codegraph/pull/117) | fix: dogfood v2.4.0 — win32 native binary, embedder crashes, stdout pollution | Open |
427+
| Issue | [#116](https://github.com/optave/codegraph/issues/116) | bug(builder): incremental rebuild drops edges when re-parsing a file | Closed — fixed via reverse-dep cascade |
428+
| PR | [#117](https://github.com/optave/codegraph/pull/117) | fix: dogfood v2.4.0 — win32 native binary, embedder crashes, stdout pollution | Merged |

0 commit comments

Comments
 (0)