Skip to content
Merged
Show file tree
Hide file tree
Changes from 115 commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
e4b508e
feat: complete V2 detection core with deterministic resolver, branchs…
Feb 14, 2026
f5638cb
docs: add Issue #21 implementation checklists (Phase 1/2) with priori…
Feb 14, 2026
96f92e6
feat: improve documentation search and workspace indexing
Feb 16, 2026
47e94be
gemini flash tried to implement what we jae in another place ... FAILED
Feb 16, 2026
e33ea0e
feat(v2): finalize internal detection core and parser package migration
Feb 18, 2026
0bb3eed
refactor(v2): move workspace detection core to pkg/workspace
Feb 18, 2026
605b79a
docs(v2/workspace): add comprehensive README guides for all modules
Feb 18, 2026
aee8af8
Add legacy parity tests for Qdrant store
Feb 18, 2026
62bd515
added test for qdrant
Feb 18, 2026
5839691
WIP 80% finished version v2
doITmagic Feb 18, 2026
a18df5e
WIP bind all
Feb 18, 2026
3da339c
WIP errors
Feb 18, 2026
8d084dd
WIP v2 must add tests
doITmagic Feb 19, 2026
61d1384
wip
doITmagic Feb 19, 2026
ba8f193
feat(indexing): optimize startup speed by skipping redundant indexing
doITmagic Feb 19, 2026
e232d35
feat: unify search architecture, enable Agent-Ready mode, and enhance…
doITmagic Feb 19, 2026
b8d61a1
feat: migrate graph resolution natively to rag_search_code tool
Feb 19, 2026
19b31bd
chore: remove graph search tool and registration
Feb 19, 2026
20a1c46
docs: document recent graph and hybrid capabilities in rag_search_cod…
Feb 19, 2026
fa8a19d
feat: Fix AST bleed bug, add Debug verbosity & Telemetry token savin…
doITmagic Feb 20, 2026
bdb4d07
Merge branch 'v2-detection-core' and resolve conflicts in search_loca…
Feb 20, 2026
164b87c
feat: enhance read_file_context with formatted AST lines and relation…
Feb 20, 2026
1062c43
test(tools): migrate to Ginkgo/Gomega and add comprehensive unit tests
Feb 20, 2026
9daeea3
all tests passed
Feb 20, 2026
2561efb
feat: Phase 1+4 optimizations — is_public field, parallel indexing, E…
Feb 22, 2026
7146611
fix: make file_path optional in call_hierarchy and index_workspace tools
Feb 22, 2026
d1d9792
feat: DetectFromParams, CollectionName helper, ContextFromWorkspace, …
Feb 22, 2026
54fa7d9
feat: Phase 2+3 parallel search fanout + call_hierarchy via ExactSear…
Feb 22, 2026
97c3893
test: add targeted tests for Phase 2+3 and call_hierarchy refactor
Feb 22, 2026
fa6df9d
refactor: find_usages + list_package_exports via ExactSearchPolyglot
Feb 22, 2026
6af7bff
test: add coverage for ExactSearchPolyglot refactors in find_usages +…
Feb 22, 2026
aac547d
feat: implement unified installer flags and environment setup
doITmagic Feb 23, 2026
9692202
feat: add smart ollama/qdrant detection with interactive local/docker…
doITmagic Feb 23, 2026
b0a91e6
fix: restrict health check to only embedding model and refine provide…
doITmagic Feb 23, 2026
2c06cda
refactor(updater): replace manual untar/unzip with codeclysm/extract/…
Feb 23, 2026
6e41a41
Merge branch 'v2-detection-coreExactSearch' into feat/refine-installe…
Feb 23, 2026
92854ab
refactor(llm): simplify OllamaLLMProvider to embedding-only, remove c…
Feb 23, 2026
6634e88
chore: downgrade Go to 1.24 for CI compatibility and fix config valid…
Feb 23, 2026
5560f9d
chore: cleanup linter warnings, restore and export embedding migratio…
Feb 23, 2026
8f220b2
feat(parser): add call/relation extraction for PHP and Python parsers…
Feb 23, 2026
ee06321
refactor(parser): unify RelationType across all language parsers
Feb 23, 2026
aff3c78
docs: add RagCode Lite architecture discussions (tree-sitter, BM25, H…
Feb 23, 2026
745df38
feat: SSE tools search improvements, engine updates, skill refinement…
Feb 23, 2026
a225584
fix: address Copilot review comments (unicode.IsUpper, LimitReader, L…
Feb 23, 2026
00db8eb
fix: resolve errcheck lint violations in tests and installer
Feb 23, 2026
77e399b
fix: Upsert returns (*Entry, error), discard entry in test
Feb 23, 2026
d852ed1
perf: reduce indexer embed concurrency and add progress display
Feb 23, 2026
ae8522a
fix: resolve all golangci-lint violations
Feb 23, 2026
92630a3
fix: prominent migration warning with re-index requirement banner
Feb 23, 2026
21ddd5b
fix: wrap all unchecked errors in test files (errcheck)
Feb 23, 2026
c2229ca
added one dummy test
Feb 23, 2026
a625504
fix: resolve data races in test mocks under -race detector
Feb 23, 2026
88a03ab
Merge pull request #24 from doITmagic/feat/refine-installer-and-models
doITmagic Feb 23, 2026
d60f191
engine: make watcher indexing lossless and track progress
doITmagic Feb 24, 2026
6f99e86
tools: expose indexing status; update cli, indexer tests, build script
doITmagic Feb 24, 2026
c9aca5e
feat(parser/laravel): implement advanced routing, middleware, and mig…
Mar 2, 2026
ef73a7a
feat: adăugat logging cross-platform implicit și monitorizare progres…
Mar 3, 2026
38ff9f2
perf: limitat concurența indexării cu semaphore global și GOMAXPROCS …
Mar 3, 2026
22c1b2e
fix: rezolvat deadlock semaphore și adăugat salvare periodică periodi…
Mar 3, 2026
e9cf7bb
added general rule
doITmagic Mar 3, 2026
3167197
feat: smart_search tool with dual routing and SUGGESTIONS.md update
doITmagic Mar 3, 2026
e641777
fix(indexer): resolve ollama embed deadlock with context timeouts and…
Mar 3, 2026
87df7a4
fix(indexer): resolve ollama embed deadlock with context timeouts and…
Mar 3, 2026
a5177bd
feat: migrate to native Ollama client with model eviction protection
Mar 3, 2026
f213351
feat: auto-restart after binary update with process cleanup
Mar 3, 2026
0c0c012
feat(indexer): implement dynamic memory-aware concurrency limit for O…
Mar 3, 2026
4f84c0b
feat: Markdown documentation indexing + Smart Search consolidation
Mar 3, 2026
7be85d6
docs: add WordPress/WooCommerce/Oxygen Builder parser research
Mar 3, 2026
9070132
feat(skills): replace embedded system with remote GitHub registry
Mar 4, 2026
8446a79
refactor(transport): replace SSE with Streamable HTTP stateless (/mcp)
doITmagic Mar 4, 2026
f891cf7
merge(feature/ollama-native-client): Streamable HTTP transport, nativ…
doITmagic Mar 4, 2026
1a2b96a
feat(parser): add WordPress/WooCommerce PHP parser sub-package
doITmagic Mar 4, 2026
f010693
feat(parser): add WooCommerce and Oxygen Builder sub-analyzers (P2)
doITmagic Mar 4, 2026
d9172bc
feat(parser/js): add JavaScript/TypeScript parser with tree-sitter + …
doITmagic Mar 4, 2026
978fc8c
feat(parser/js): migrate React/Node to tree-sitter, add TypeScript pa…
doITmagic Mar 4, 2026
40fa453
fix: address PR 25 review comments
google-labs-jules[bot] Mar 4, 2026
fb11bae
fix: address PR 27 follow-up review comments
google-labs-jules[bot] Mar 4, 2026
6f197c1
Merge pull request #27 from doITmagic/fix/pr-25-review-comments-28359…
doITmagic Mar 4, 2026
94cbb0a
feat(parser/js): add Vue.js parser + boost JS core coverage to 73%
doITmagic Mar 4, 2026
c0657f6
feat(parser/py): add tree-sitter engine + augment strategy (81.6% cov…
doITmagic Mar 4, 2026
985ec9f
feat(indexer): wire JS/Vue parsers into indexing pipeline
doITmagic Mar 4, 2026
6000dbe
fix(engine): remove hardcoded language fallbacks in SearchCode/ExactS…
doITmagic Mar 4, 2026
5a7987f
feat(skills): multi-source skill discovery with SKILL.md convention
doITmagic Mar 5, 2026
7eefbe1
refactor(paths): consolidate all app data under ~/.ragcode/
doITmagic Mar 5, 2026
cb60c90
refactor(paths): consolidate all app data under ~/.ragcode/
doITmagic Mar 5, 2026
a1d918e
feat(autoupdate): automatic update check and apply on startup
doITmagic Mar 5, 2026
6de2b5e
feat(autoupdate): auto-update on startup + rebuild copies default config
doITmagic Mar 5, 2026
d33e4cb
temp: save current state before testing rollback funcțiunii MCP
doITmagic Mar 5, 2026
ee70209
fix(stdio): prevent HTTP server failure from killing stdio transport
doITmagic Mar 5, 2026
1ca406b
feat: robust resume for interrupted workspace indexing
doITmagic Mar 5, 2026
536db05
refactor: native standalone uninstall in rag-code-mcp server
doITmagic Mar 5, 2026
5739d4e
refactor: native standalone uninstall in rag-code-mcp server
doITmagic Mar 5, 2026
06540dc
fix: move LastPercent tracking to Engine level to prevent premature 1…
doITmagic Mar 5, 2026
e1f8e6d
Merge remote-tracking branch 'origin/v2-detection-core' into feat/js-…
doITmagic Mar 5, 2026
7f11c44
fix: resolve all Copilot review comments from PR #25
Mar 5, 2026
cdb0722
fix: address remaining Copilot review comments
Mar 5, 2026
2bf7159
refactor: implement unified docs parser with TreeSitter and CommonMar…
Mar 6, 2026
1c8888e
refactor: implement unified docs parser with TreeSitter and CommonMar…
Mar 6, 2026
e89dd6a
refactor: migrate core modules to structured logging (log/slog)
Mar 6, 2026
cbac1a9
fix: resolve CI failures — isExported fallback, unused vars, stale bu…
doITmagic Mar 6, 2026
3dd7862
fix: context-aware circuit breaker + remove unused vars
doITmagic Mar 6, 2026
aff0441
fix: address PR review comments
doITmagic Mar 6, 2026
a51b9fa
fix(lint): resolve remaining golangci-lint errors
doITmagic Mar 6, 2026
0f5f2ee
fix: address remaining review comments (telemetry types, grammar, SSE…
doITmagic Mar 6, 2026
56cac3d
fix: remaining PR feedback details (goreleaser artifacts)
doITmagic Mar 6, 2026
07b63d4
fix: address new review comments (progress deep copy, markdown block …
doITmagic Mar 6, 2026
caec098
test: fix find usages tests by mocking detector correctly and using r…
doITmagic Mar 6, 2026
37ea155
fix: address remaining review comments (README links, sse-client-test…
doITmagic Mar 6, 2026
7b74aed
fix: include models in evaluate_ragcode tool JSON Data
doITmagic Mar 6, 2026
fcb36f6
fix: return actual Go errors from Execute for find_usages validation …
doITmagic Mar 6, 2026
02c3b5e
fix: redact timeline metadata in rag_index_workspace and add HybridSe…
doITmagic Mar 6, 2026
ee7067f
fix: return error alongside ToolResponse JSON in rag_index_workspace …
doITmagic Mar 6, 2026
c086b2a
perf: release progress store lock before persisting state to disk dur…
doITmagic Mar 6, 2026
bef4e55
refactor: rename cmd/sse-client-test to cmd/mcp-http-client-test to r…
doITmagic Mar 6, 2026
a827fed
perf: add early return to HybridSearch when limit is zero to avoid Qd…
doITmagic Mar 6, 2026
a7452ff
test: fix unchecked json.Unmarshal error in find_usages_test
doITmagic Mar 6, 2026
7f817f5
fix: pass ToolResponse json string inside CallToolResult content on f…
doITmagic Mar 6, 2026
4624c81
fix: return JSON ToolResponse with nil error instead of both in rag_i…
doITmagic Mar 6, 2026
344d4fa
fix: resolve final PR review comments for mcp-http-client-test, find_…
doITmagic Mar 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
26 changes: 26 additions & 0 deletions .github/instructions/general.instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
description: Global efficiency and token-optimization rules for senior development
applyTo: '*'
---

# Precision & Token Efficiency Rules

### 1. Response Constraints (Token Saving)
* **No Prose:** Skip introductions, greetings, and "I've updated the file" summaries. Go straight to the solution.
* **Diffs Only:** Never output the entire file. Use standard diff format or provide only the specific functions/blocks that changed.
* **No Thinking Out Loud:** Do not explain your reasoning or "Chain of Thought" unless explicitly asked with "Explain your logic".
* **Dry Output:** Use a telegraphic style. If a fix is obvious, just provide the code.

### 2. Context Handling
* **Lazy Loading:** Do not read files outside the immediate scope of the task unless necessary for type definitions or interface alignment.
* **Reference-Only:** When referring to existing code, use line numbers or function names instead of re-quoting the code in the chat.
* **Minimal Boilerplate:** Do not generate repetitive code (getters/setters, imports) unless they are new or modified. Use `// ... existing code ...` to skip unchanged sections.

### 3. Engineering Standards
* **Interface-Driven:** Prioritize checking interfaces/types before suggesting logic changes to avoid iterative fixes.
* **Silence is Golden:** If the task is completed via a file edit, do not repeat the changes in the chat window. A simple "Done" or a brief summary of the file name is sufficient.
* **Fail Fast:** If context is missing or ambiguous, ask a single clarifying question instead of guessing and generating high-token "hallucinated" solutions.

### 4. Technical Bias
* Assume Senior-level competence: No basic explanations of language features or patterns.
* Use concise modern syntax (e.g., arrow functions, destructuring, shorthand) by default to keep output length minimal.
7 changes: 2 additions & 5 deletions .github/workflows/build-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,8 @@ jobs:
echo "Building rag-code-mcp..."
go build -o bin/rag-code-mcp ./cmd/rag-code-mcp

echo "Building index-all..."
go build -o bin/index-all ./cmd/index-all

echo "Building ragcode-installer..."
go build -o bin/ragcode-installer ./cmd/install
echo "Building rag-code-install..."
go build -o bin/rag-code-install ./cmd/rag-code-install

chmod +x bin/*

Expand Down
8 changes: 6 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,18 @@ data/
test_data/
qdrant_data/
barou/
inspirations/
relations/

# Binaries
/cmd/agent-runner/agent-runner
/rag-code-mcp
test-*
bin/
ragcode-installer
tests/e2e/bin/
rag-code-install
index-all
cmd/rag-code-mcp/rag-code-mcp
rag-code-mcp

# Test programs
cmd/test-*/
Expand Down Expand Up @@ -59,6 +62,7 @@ temp/
scripts/
.ragcode/
.agent/skills/
build-binaries.sh

# Debug logs
startup_debug.txt
Expand Down
17 changes: 8 additions & 9 deletions .goreleaser.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ builds:
- -X main.Date={{.Date}}
- -X main.BuiltBy=goreleaser

- id: ragcode-installer
main: ./cmd/install
binary: ragcode-installer
- id: rag-code-install
main: ./cmd/rag-code-install
binary: rag-code-install

env:
- CGO_ENABLED=0
Expand Down Expand Up @@ -110,8 +110,8 @@ archives:
files:
- LICENSE
- README.md
- config.yaml
- .env.example
- llms.txt
- internal/config/default.yaml

checksum:
name_template: 'checksums.txt'
Expand Down Expand Up @@ -162,13 +162,13 @@ release:
**Linux (amd64):**
```bash
curl -L https://github.com/doITmagic/rag-code-mcp/releases/latest/download/rag-code-mcp_linux_amd64.tar.gz | tar xz
./ragcode-installer -ollama=docker -qdrant=docker
./rag-code-install -ollama=docker -qdrant=docker
```

**macOS (Apple Silicon):**
```bash
curl -L https://github.com/doITmagic/rag-code-mcp/releases/latest/download/rag-code-mcp_darwin_arm64.tar.gz | tar xz
./ragcode-installer -ollama=docker -qdrant=docker
./rag-code-install -ollama=docker -qdrant=docker
```

**Or download the archive for your platform below.**
Expand Down Expand Up @@ -198,8 +198,7 @@ brews:
# Custom install script to handle multiple binaries
install: |
bin.install "rag-code-mcp"
bin.install "ragcode-installer"
bin.install "index-all"
bin.install "rag-code-install"

test: |
system "#{bin}/rag-code-mcp --version"
184 changes: 184 additions & 0 deletions .windsurf/rules/general.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
---
trigger: always_on
---

# AI Governance Rules – Project Control Mode (Strict)

## 1. General Behavior Rules

### AI must never modify existing code unless:
- A bug is proven.
- A security issue is identified.
- A performance bottleneck is demonstrated with measurable data.
- The user explicitly approves the change.

### AI must never:
- Refactor for style preference.
- Rename variables for aesthetics.
- Reorganize project structure.
- “Improve readability” unless requested.

### All suggested changes must:
- Be shown as a diff.
- Include explanation.
- Include impact analysis.
- Include rollback instructions.

### No change is considered successful unless:
- Tests pass.
- Build passes.
- Lint passes.
- Manual verification steps are described.

### AI must ask for clarification if:
- Business logic is unclear.
- There is ambiguity in naming.
- Multiple valid architectural choices exist.

## 🧠 Decision Gatekeeping Rule
Before proposing ANY code change, AI must answer internally:
- Is this required?
- Is this measurable?
- Is this aligned with existing architecture?
- Is this backward compatible?

If one answer is "no" → ASK FIRST.

## 🧪 Testing Requirements (Mandatory)

### Golang — every backend change must include:
- Unit test
- Table-driven test when applicable
- Error case coverage
- Benchmark if performance-related
- go vet clean
- golangci-lint clean
- No “looks correct”. Only tested code.

### JavaScript — if JS is touched:
- No global scope pollution
- No magic numbers
- Defensive null checks
- No breaking of existing event bindings
- Must verify browser compatibility assumptions

If DOM is modified:
- Ensure no layout shift unless intended
- Verify no performance regression (reflow-heavy operations)

### Python — if Python is touched:
- No side effects at module import (guard with `if __name__ == "__main__"`)
- Avoid global mutable state; prefer dependency injection
- Keep `pytest` (or equivalent) passing; add negative-path tests
- Use type hints; keep `mypy`/type-checkers clean when configured
- Pin dependencies in lock/constraints files (no implicit upgrades)

### CSS — AI must:
- Not change global styles without explicit approval
- Not introduce !important unless justified
- Not break mobile layout
- Not modify spacing system
- Follow existing naming convention (BEM or whatever you use)

### HTML — AI must:
- Not restructure markup unless required
- Preserve accessibility attributes
- Not remove ARIA roles
- Not remove semantic tags
- Keep forms backward compatible

## 🚫 Optimization Control Rules
AI must NOT:
- Optimize prematurely
- Replace loops with concurrency without justification
- Introduce goroutines unless concurrency is proven necessary
- Add caching without defining invalidation strategy
- Change data structures without complexity analysis

## 🔐 Backend Specific (Golang)
AI must:
- Not introduce global state
- Not introduce hidden side effects
- Respect context propagation (context.Context)
- Not swallow errors
- Always wrap errors properly
- Not introduce reflection unless necessary
- Not introduce generics unless justified

If touching DB:
- Must preserve transaction boundaries
- Must describe migration impact
- Must describe rollback strategy

## 📦 Dependency Rules
AI must:
- Not introduce new dependencies without approval
- Justify every dependency
- Prefer standard library
- Check license compatibility
- Evaluate maintenance status

## 📊 Reporting Rules
AI must never say:
- “It should work.”
- “This is fixed.”
- “Problem solved.”

Instead must report:
- What was changed
- What was tested
- What was verified
- What was not verified
- Potential side effects

## 🔍 Change Proposal Format (Mandatory)
Every change must follow this structure:
- Problem Description
- Root Cause Analysis
- Proposed Change (diff)
- Impact Scope
- Risk Assessment
- Test Plan
- Rollback Plan

No exceptions.

## 🧱 Architecture Preservation Rule
AI must:
- Preserve layering (handler → service → repository)
- Not bypass service layer
- Not mix transport and business logic
- Not leak DB models into API layer
- Not couple JS tightly to backend implementation details

## ⚠️ Failure Handling Rules
AI must:
- Never ignore error return values
- Never panic in production paths
- Not suppress logs
- Use structured logging

## 📈 Performance Rules
Before suggesting performance optimization, AI must provide:
- Current complexity (Big O)
- Proposed complexity
- Expected gain
- Trade-offs
- Benchmark example

## 🧭 When AI Must Stop and Ask
- When modifying authentication
- When modifying authorization
- When touching financial logic
- When changing concurrency model
- When modifying public API

## 💬 Strict Interaction Rule
AI must:
- Treat all existing code as intentional
- Assume developer competence
- Not override architectural decisions
- Provide alternatives, not unilateral decisions
- Never perform changes autonomously; always explain the motivation before modifying code
- Never run destructive Git commands (reset/rebase/clean/force push) without explicit user approval
- Never optimize code outside the current task scope
Loading
Loading