Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions AGENT_DIARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,13 @@

---

## [2026-08-29 12:00] — Two-Pass Graph Symbol Resolution (Extract -> Resolve)
**Status:** ✅ Fixed (resolved 7 passed; live integration complete)
**Root Cause:** The previous single-pass graph building produced unlinked `{project}.__extern__.{symbol}` nodes for any callee defined outside the immediate file under indexing, leading to "leaky" connections, sparse dependency trees, and high rates of unresolved placeholder nodes in the graph.
**Fix:** Implemented a robust, two-pass resolution system: (1) In `graph_adapter_pure.py`, store caller context (`caller_node_id`, `line_number`, `raw_symbol_name`) during AST extraction of unresolved symbols. (2) Created `src/core/search/graph_resolver.py` implementing `GraphSymbolResolver.resolve_all()` executing four strategy checks: Import/FQN Match (rebuild relative and absolute dot-paths across dots/modules), Unique Global Match, Stdlib/External Package mapping directly to clean `NodeLabel.DEPENDENCY` nodes, and fallback unresolved markers. Redirects edges, copies properties, and deletes redundant placeholders. (3) Integrated into `index_project()` in `indexer.py`/`graph_adapter.py` and `build_graph()` in `graph_rag.py`.
**Guard:** `tests/test_graph_resolver.py` (7/7 tests passed covering FQN matches, relative imports, unique global names, stdlib mapping, and unresolved fallback).
**verified_from_clean_state:** ✅ yes — all 7 tests passed perfectly. Full pytest suite remains green (55 passed across related modules).

## [2026-08-28 14:30] — Reindex Finalizing deadlock (write-lock held across optimize/create_index)
**Status:** ✅ Fixed (#18, 1578a1bb) — блокер live-верификации снят
**Root Cause:** `IndexProjectRunner.run()` держал глобальный `_write_lock` (RLock) весь reindex, включая LanceDB `optimize()/create_index()` в `_safe_ivf_index()` → оба процесса 0% CPU, фаза Finalizing не завершалась, `is_reindexing` не снимался → символ-индекс не догружался → write-тулы падали `FileNotFoundError`.
Expand Down
4,322 changes: 691 additions & 3,631 deletions KNOWN_ISSUES.md

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
[![MCP](https://img.shields.io/badge/MCP-compatible-green.svg)](https://modelcontextprotocol.io/)
[![Zed](https://img.shields.io/badge/Zed-extension-orange.svg)](https://zed.dev/)
[![CI](https://github.com/ManSio/mscodebase-intelligence/actions/workflows/ci.yml/badge.svg)](https://github.com/ManSio/mscodebase-intelligence/actions/workflows/ci.yml)
[![Tests](https://img.shields.io/badge/tests-1636%20passed-brightgreen)](tests/)
[![Tests](https://img.shields.io/badge/tests-1658%20passed-brightgreen)](tests/)

[Features](#-features) • [Quick Start](#-quick-start) • [Tools](#mcp-tools-65-total) • [Documentation](#-documentation-map) • [Installation](docs/en/INSTALL.md) • [Architecture](docs/en/ARCHITECTURE.md) • [Contributing](CONTRIBUTING.md) • [Security](SECURITY.md)

Expand Down Expand Up @@ -44,7 +44,7 @@ This is **not** an LSP server or a replacement for the editor's built-in autocom
│ │ · Call graph & impact analysis │ │
│ │ · Project memory (ADR, tech debt) │ │
│ │ · Self-diagnostics and self-healing │ │
│ │ · 64 tools for AI assistant │
│ │ · 65 tools for AI assistant
│ └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
```
Expand Down Expand Up @@ -118,7 +118,7 @@ Designed and tested on **Windows**. macOS and Linux should work but have not bee
| 💾 **LanceDB v2** | Vector DB with per-project isolation (incremental BM25 reindex) |
| 🛡 **Rate Limiting** | DebounceBatch + CircuitBreaker — protection against VFS loops |
| 🏥 **Self-Diagnosis** | `get_health_report` + `index_health` — full check and recovery |
| 🧪 **Clean Architecture** | DI Container (18 services), 64 tools (31 core + 16 intel + 13 inline + 4 dev), 1371 tests |
| 🧪 **Clean Architecture** | DI Container (18 services), 65 tools (31 core + 16 intel + 14 inline + 4 dev), ~1677 tests |
| 🪟 **Multi-Window** | `ProjectIndexerRegistry` — isolated Indexer per project, LRU 5, ResourceMonitor throttle |
| ✏️ **Write Tools** | `codebase(action=...)` — unified hub: rename, move, delete, replace, insert, ack |
| ⚡ **Meta-Patching** | LanceDB `move_chunks_metadata` — file_path rename without re-embedding (50ms vs 5s) |
Expand Down
Loading
Loading