Enhanced Documentation Indexing & Search Support + CI Fixes#17
Merged
Enhanced Documentation Indexing & Search Support + CI Fixes#17
Conversation
This release introduces a major upgrade to the embedding architecture and critical stability fixes. We have transitioned to a more powerful embedding model (bge-m3 family) and increased the context window to 1024 tokens, significantly improving semantic search accuracy for larger code blocks. Key changes include: Upgraded Embedding Engine: Switched model architecture and increased capacity to 1024 tokens for deeper code understanding and better retrieval of complex functions. Production Stability: Fixed critical race conditions during background indexing and model migration. Intelligent Installer: Enhanced the installer to auto-detect environment configurations and handle updates more robustly (Zero-Config). Resilience: Improved error recovery for long-running worker processes.
Removed the Golden Rule section to streamline the README. Signed-off-by: razvan-sima <razvan@doitmagic.com>
- Adăugat sistem de 'embedded skills' folosind go:embed pentru fișiere Markdown (fără hardcoding). - Implementat management de skills (list_skills, install_skill) cu detecție dinamică a metadatelor. - Actualizat sistemul de update cu caching de 24h și verificări non-blocking la tool calls. - Adăugat bibliotecă de 6 skill-uri de bază (Go, Python, Laravel, Debugging, etc.). - Adăugat teste unitare pentru pachetul internal/skills. - Actualizat .gitignore și regulile IDE generate automat pentru a suporta noul sistem.
- Fix skills path traversal validation - Fix race condition in update check - Add Windows zip support for updates - Improve test cleanup - Add missing tool schemas
…de_documentation Resolved conflicts in: - README.md (Kept changes from feature branch) - cmd/rag-code-mcp/main.go (Merged tool registrations and consolidated logic)
There was a problem hiding this comment.
Pull request overview
This PR expands RagCode’s ability to detect/index documentation and optionally include docs in search results, while also introducing a skills system + updater tooling, and adjusting CI to create PRs for binary updates (avoiding protected-branch pushes).
Changes:
- Expanded workspace scanning to treat more documentation file types as “docs” and added an
include_docsflag to search tools to optionally include/exclude docs. - Refactored updater logic (context-aware HTTP, update caching, zip extraction, safer temp file handling) and added MCP tools for update/skill management.
- Updated CI binary build workflow to open PRs instead of pushing directly; addressed file-close/lint patterns across a few areas.
Reviewed changes
Copilot reviewed 66 out of 70 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| internal/workspace/state.go | Fixes locking + file-close error handling when saving workspace state. |
| internal/workspace/manager.go | Expands doc file detection during workspace scans (more extensions, doc naming heuristics). |
| internal/updater/updater.go | Adds update cache, context-based networking, zip extraction, and various updater robustness/security improvements. |
| internal/updater/updater_test.go | Adds tests for update cache path and persistence. |
| internal/tools/search_local_index.go | Adds include_docs flag to control whether docs are included in semantic search results. |
| internal/tools/hybrid_search.go | Adds include_docs flag to control docs inclusion in hybrid search. |
| internal/tools/updates.go | Adds check_update and apply_update tools wrapping updater functionality. |
| internal/tools/list_skills.go | Adds list_skills tool for embedded skill discovery. |
| internal/tools/install_skill.go | Adds install_skill tool for per-workspace skill installation/removal. |
| internal/skills/skills.go | Introduces embedded skill metadata parsing + install/uninstall logic. |
| internal/skills/skills_test.go | Adds tests for listing/installing/uninstalling skills + path traversal validation. |
| internal/skills/embedded/ragcode-update/SKILL.md | New embedded skill content for updater/maintenance guidance. |
| internal/skills/embedded/ragcode-priority/SKILL.md | New embedded skill content to enforce ragcode-first search workflow. |
| internal/skills/embedded/ragcode-priority/examples/search_patterns.md | Example search workflows for the ragcode-priority skill. |
| internal/skills/embedded/go-best-practices/SKILL.md | New embedded skill content for Go practices. |
| internal/skills/embedded/python-best-practices/SKILL.md | New embedded skill content for Python practices. |
| internal/skills/embedded/php-laravel/SKILL.md | New embedded skill content for PHP/Laravel practices. |
| internal/skills/embedded/debugging-guide/SKILL.md | New embedded skill content for debugging workflows. |
| cmd/rag-code-mcp/main.go | Wires new tool parameters + new tools; adds background update checking throttled per session. |
| cmd/install/main.go | Uses improved file-close error handling and adjusts install path handling. |
| .gitignore | Updates ignore rules for skills and debug logs. |
| README.md | Removes duplicated “Golden Rule” section (still enforced via IDE rule generation). |
| .github/workflows/build-binaries.yml | Switches binary updates to PR-based flow via create-pull-request action. |
| bin/ragcode-installer | Updated built artifact. |
| bin/rag-code-mcp | Updated built artifact. |
| bin/index-all | Updated built artifact. |
Comments suppressed due to low confidence (1)
internal/workspace/manager.go:148
- The .txt handling only includes files inside a docs/doc/documentation directory, which unintentionally excludes common documentation files like LICENSE.txt, CHANGELOG.txt, README.txt when they live at the repo root. Since the default-case prefix checks won’t run for .txt extensions, consider also applying the standard doc-name prefix logic in the .txt case (or moving the name-based doc detection before the extension switch).
…de_documentation # Conflicts: # README.md # cmd/rag-code-mcp/main.go
7986513 to
19d919c
Compare
added 5 commits
February 12, 2026 23:18
- list_skills -> rag_list_skills - install_skill -> rag_install_skill - check_update -> rag_check_update - apply_update -> rag_apply_update - Updated server.json, main.go schema, installer permissions, and embedded skills docs.
…skill tool guards)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR introduces enhanced capabilities for indexing and searching documentation within the workspace, alongside critical CI workflow improvements and general code quality fixes.
Key Changes
include_docssupport to search functionalities, allowing users to explicitly include or exclude documentation from their search results.build-binariesworkflow to use Pull Requests instead of direct pushes to themainbranch. This resolves theGH013Branch Protection rule violation errors we were encountering during automated binary updates.Type of change
Checklist:
go fmt ./...go test ./...and they pass