chore(deps): bump actions/checkout from 4 to 7#4
Closed
dependabot[bot] wants to merge 571 commits into
Closed
Conversation
…test count badges - README (en/ru/zh): 391 -> 396 tests badge + project structure - CHANGELOG (en): add P0/B1/B2/B3 hardened entries to v2.7.0 - CHANGELOG (ru/zh): add v2.7.0 entries (were missing) - AGENT_DIARY: add B1/B2/B3 forensic fix entry
…bedder model path - Create docs/en/LM_STUDIO_SETUP.md: detailed guide for setting up LM Studio with bge-m3, bge-reranker-v2-m3, and phi-4-mini-instruct - Add ONNX fallback instructions with download_model.py usage - install.py: new step 6 — Model Download (auto-detect LM Studio, offer ONNX download if offline, show model list if online) - Fix remote_embedder.py: local_model_dir now points to .codebase_models/onnx/ (matches download_model.py output) instead of dead all-MiniLM-L6-v2 path
- Add taskkill for python.exe with mscodebase/main window titles - Add 2s wait after kill for process cleanup - Add retry loop (3 attempts) for rd /s /q directory deletion - Clear step-by-step echo output - User message to restart Zed after uninstall
- download_model.py now supports --type: embedding (AutoModel) and reranker (AutoModelForSequenceClassification) for bge-reranker-v2-m3 - Models saved to .codebase_models/onnx/bge-m3/ (438 MB) and .codebase_models/onnx/bge-reranker/ (636 MB) - install.py Step 6 downloads BOTH models when LM Studio is offline - LM_STUDIO_SETUP.md: updated ONNX paths, sizes, and system behavior description (auto-switch between LM Studio / ONNX / degraded) - remote_embedder.py now looks in .codebase_models/onnx/ (fixed path)
- Box-drawing UI with cursor positioning (fixed title, steps redraw in-place, progress bar on single line) - Each step completely redraws its section via \033[Row;0H - Progress bar uses \r (carriage return) — single line, no spam - 10 sequential steps with _run_step/dispatch pattern - download_model.py: fix f-string brace issue in _build_uninstall_bat (use temp .py file instead of -c inline to avoid quoting hell) - Proper ANSI cursor movement: \033[J for clear, \033[Row;0H for goto
…ate lines - Fix TypeError: Path.unlink() got unexpected keyword 'ignore_errors' - Fix locale.getdefaultlocale() deprecation → locale.getlocale(LC_MESSAGES) - Remove duplicate leftover lines from step_copy - All 396 tests pass
Add 17 missing LANG keys: killed, no_proc, files_copied, copy_files, inst_pkgs, pkgs_ok, pip_fail, db_notfound, db_tables, db_empty, mcp_cfg, uninst_ok, time, ext_dir, python All step functions (proc, copy, pip, db, zedcfg, uninst, summary) now use _tr(key, lang).format() instead of hardcoded English.
…action, DI lifecycle Gap 1 — Intel layer retry: - Add @error_boundary to all 11 intel_* methods (timeout 3-10s, retries 1-2) - Covers: predict_root_cause, analyze_incident, code_topology, get_runtime_status, get_project_context, get_project_memory, etc. Gap 2 — CircuitBreaker connected to embedder: - RemoteEmbedder._check_lm_studio now routes through breaker.call() - Breaker registered in DI, injected via embedder._breaker after creation - Prevents cascading failures when LM Studio hangs Gap 3 — LanceDB compaction: - Add self.table.compact_files() after prune_deleted_files (when >50 chunks) - Prevents database bloat from stale version accumulation Gap 4 — DI container lifecycle: - Add ServiceCollection.shutdown() — calls .close() on all registered services (handles both sync and async close methods) - Register atexit + finally in run_server for graceful shutdown
- docs/en/ARCHITECTURE_DEEP.md — full deep architecture guide - docs/ru/ARCHITECTURE_DEEP.md — Russian translation - docs/zh/ARCHITECTURE_DEEP.md — Chinese translation - Each contains: architecture layers, search pipeline sequence diagram, tool lifecycle flowchart, data model ER diagram, comparison table, degradation levels, key metrics - README (en/ru/zh): add ARCHITECTURE_DEEP.md to doc map
- SEARCH_PIPELINE.md: full search flow with sequence diagram, 7 stages (expansion → BM25 → dense → RRF → buckets → co-change → reranker), performance benchmarks per stage - GRACEFUL_DEGRADATION.md: 4 levels (Full → ONNX → BM25 → Fallback), state diagrams, auto-recovery sequence, protection mechanisms - README: add both to documentation map
…els/onnx/) - download_model.py --type embedding saves to .../onnx/bge-m3/ - remote_embedder.py now looks in .../onnx/bge-m3/ for model.onnx - External data file (model.onnx.data, 2.2 GB) loads automatically from same directory by ONNX Runtime
- Add model.half() before ONNX export (float32 → float16) Size: 2.2 GB → ~1.1 GB (was 5x expected, now 2.5x) - Dummy inputs also cast to half() for matching dtype - User expected 438 MB (int8 GGUF equiv). float16 is safe middle: minimal accuracy loss, no extra dependencies, no post-processing
- Export model as float32 (standard PyTorch ONNX) - Convert external data to inline via onnx.load + onnx.save_model - Run quantize_dynamic with QuantType.QUInt8, per_channel=True - Cleanup: remove external data file, temp inline, replace with quantized - Graceful fallback: if onnxruntime.quantization unavailable → keep float32 - Expected sizes: bge-m3 ~2.2 GB → ~550 MB, reranker ~3 GB → ~750 MB
- Remove broken quantize_dynamic step (corrupts external data models) - Keep float32 + external data format (reliable, tested 1024-dim) - Fix batch embed: fallback to one-by-one when batch MatMul fails - Add numpy import inside fallback path, safe try/except structure - Clean orphaned except block, validate syntax - Clean stale temp files from failed quantization attempt
… GB) - bge-m3: quantized from 2.2 GB (float32+ext data) to 1.3 GB (int8 standalone) - Approach: run quantize_dynamic directly on model.onnx with external data (no need for inline conversion that exceeded protobuf 2GB limit) - Batch fallback handles DynamicQuantizeMatMul shape issue (one-by-one) - Reranker: stays in float32 (shape inference error during quantization) - download_model.py: add quantization step for embedding models
- MODEL_REGISTRY: 8 models (5 embed + 3 reranker) with dim/size/quality - download_model.py: --size light|balanced|full, auto path generation - install.py step_6: interactive model choice with download - Default changed to bge-base-en-v1.5 (768dim, ~150 MB, high quality) instead of bge-m3 (1024dim, 1.3 GB) for local hardware friendliness - User can still choose full (bge-m3) or light (bge-small, 50 MB)
- MODEL_REGISTRY with pre-quantized sources: bge-m3 → Xenova/bge-m3 (onnx/model_quantized.onnx, ~570 MB) bge-reranker-v2-m3 → onnx-community/bge-reranker-v2-m3-ONNX (~570 MB) - download_model.py: try pre-quantized first, fall back to export No torch/transformers needed for pre-quantized models - remote_embedder.py: auto-detect model dir from .codebase_models/onnx/* Read embedding dimension from ONNX model (supports 384/768/1024) - install.py: model size selection (light/balanced/full) - Clean rewrite of download_model.py (fixed indentation)
…sizes - step_models now copies models to BOTH PROJECT_ROOT and ZED_EXT_DIR - MCP server runs from extension dir, needs models there - Detection checks both directories before re-downloading - Updated sizes: full from 1.3GB → 570MB (pre-quantized Xenova/bge-m3) - No torch/transformers needed for install (huggingface_hub only)
…ranker - reranker.py: ONNX Runtime fallback when LM Studio unavailable Loads bge-reranker-v2-m3 ONNX model (~570 MB), runs cross-encoder inference for each (query, chunk) pair, returns scores Auto-detects model dir from .codebase_models/onnx/reranker-*/ - install.py: now downloads BOTH embedding and reranker models Embed: bge-small/base/m3 (user choice, ~50-570 MB) Reranker: bge-reranker-v2-m3 (~570 MB, pre-quantized) Both copied to extension dir for MCP server
…canner - _detect_model_dir had early return (line 95) that exited before setting _mode_lock, mode, _scanner_thread — entire init skipped when model file existed. Replaced return with break. - All attributes now properly initialized: _mode_lock, mode='unknown', _scanner_thread, _onnx_session, etc. - Verified: bge-m3 (543 MB) works with RU/EN/Code, 0.11s per embed - Verified: reranker ONNX (544 MB) ready for cross-encoder inference
- Removed light (bge-small, EN-only, no Russian) and balanced (bge-base, EN-only, no Russian) options — only bge-m3 works for Russian + Code + English - Now auto-detects both embed + reranker models, asks simple Y/n - Downloads both models: bge-m3 (543 MB) + bge-reranker-v2-m3 (544 MB) - Copies to extension dir for MCP server
- Fix step_models in install.py: 3-phase logic checks ZED_EXT_DIR first, copies from PROJECT_ROOT/shared cache, or downloads fresh - Add shared model cache at ~/.cache/mscodebase/models/ seeded during install - Fix remote_embedder._detect_model_dir: checks multiple locations, skips reranker subdirs to avoid loading wrong model type - Fix reranker._init_onnx_reranker: added shared cache fallback, supports multiple subdirectory name formats - Fix installer results tracking: skip/fail counts now correctly tracked and displayed in summary - Clean unused imports, fix indentation bug in step_copy - Clean warnings, add AGENT_DIARY entry
- Fix fire-and-forget asyncio task in intelligence_layer.py: store _reindex_task reference to prevent GC collection - Fix contradictory returncode/timeout in autonomous_fix.py: return -1 instead of 0 on timeout to avoid false success - Replace pickle with JSON in index_guard.py SymbolIndex cache: prevents arbitrary code execution via cache file tampering; includes automatic migration from legacy pickle format - Fix SyntaxWarning invalid escape sequences in docstrings: lsp_main.py (\A) and test_project_header.py (\P) - use raw strings - Clean pre-existing warnings in index_guard.py (unused imports)
- Add positioning section clarifying MSCodeBase is an MCP server,
not an LSP replacement. Compares capabilities vs LSP, explains
WONTFIX, and shows platform support matrix
- Add pytest.importorskip('lancedb') to test_di_container.py and
test_index_guard.py to give clear skip message instead of
cryptic ImportError when lancedb is not installed
…thod Bug: @error_boundary was on the internal method (returns Dict), not on the MCP tool handler. error_boundary serializes return to JSON string, but format_runtime_status() expects Dict — causing 'str' object has no attribute 'get'. Fix: remove @error_boundary from the internal method. It returns a plain dict as declared.
…tioning section - Fix Russian text in English README Positioning section → proper English - Add Positioning section to Russian README (on topic, correct language) - Add Positioning section to Chinese README (translated) - Fix English title in ru/ARCHITECTURE_LAYERS.md → Russian title - Fix English title in ru/CONTRIBUTING.md → Russian title - Fix Russian text in en/ARCHITECTURE_LAYERS.md → English text - Add missing language cross-reference badges to ARCHITECTURE_DEEP.md (en/ru/zh) - Add missing language badges to zh/CONTRIBUTING.md - Update dates: 2026-07-08
…coded lm_studio Now checks LM Studio port (127.0.0.1:1234) and ONNX model file presence instead of always reporting 'lm_studio: online'
Bug: _detect_model_dir() used 'return' on model found, skipping _mode_lock, mode, and scanner init. embed_batch crashed on AttributeError: no _mode_lock. Fix 1: return→break+for-else pattern. Now always initializes mode lock, scanner thread. Fix 2: embed_batch handles mode='unknown' (scanner not done yet) by falling through to ONNX instead of returning zero vectors. Fix 3: intel_get_runtime_status now checks LM Studio port + ONNX file presence instead of hardcoded 'lm_studio: online'. Now: 1021/1024 non-zero dims, real embeddings = search works.
Bug: @error_boundary on internal methods wrapped return values in JSON strings, but tool handlers and formatters expected plain dicts/lists. Caused 'str has no attribute get/items' on 9 intel_* tools. Fix: remove @error_boundary from all internal intel_* methods. These methods now return their declared types (dict, list, str). Error handling is done by the MCP framework natively. Affected: intel_code_topology, intel_trigger_reindex, intel_log_incident, intel_analyze_incident, intel_get_project_memory, intel_add_memory_node, intel_get_code_hotspots, intel_predict_root_cause, intel_get_telemetry
added 18 commits
July 17, 2026 22:52
New MCP tool: verify_claim(claim={subject, predicate, object})
Checks agent assertions against SymbolIndex + PropertyGraph + AST.
Predicates: calls, defined_in, imports, handles_error, defines, implements, inherits.
Docs: README features + CHANGELOG v3.3.0
- Removed separate ClaimVerifierTool (-1 tool) - Added action='verify' to graph_query (now 6 actions) - claim passed as JSON string or dict - Same logic: calls, defined_in, imports, handles_error, defines, implements, inherits Tool count: 39 -> 38
…n mode Внедрён прозрачный trace каждого этапа гибридного поиска: Query Expansion -> BM25 -> Dense -> RRF -> MMR -> Bucket -> Co-change -> Reranker Новый файл: src/core/search/trace.py — SearchTracer (collector) + ChunkTrace (per-chunk dataclass) to_dict() / to_markdown() — два формата вывода Изменения: engine.py — tracer параметр в hybrid_search_async, хуки на всех 7 этапах search_tools.py — explain: bool = False в search_code search/__init__.py — экспорт SearchTracer API: search_code(query="...", explain=True) -> стандартные результаты + блок "Explain Trace" с per-chunk breakdown Closes Phase 1 (Idea 3)
Parser now extracts import statements from 20+ languages via Tree-sitter AST node types (IMPORT_NODE_MAP). IMPORTS edges are stored in PropertyGraph as File --[IMPORTS]--> Module. Changes: parser.py: +IMPORT_NODE_MAP, +extract_imports(), +_extract_imports_recursive() graph_adapter_pure.py: +_pure_add_imports() — creates Module nodes + IMPORTS edges graph_adapter.py: +add_imports() — public API index_pipeline.py: wire extract_imports -> add_imports into indexing pipeline Impact: - PropertyGraph now stores import dependencies (was 0 IMPORTS edges) - Enables Architecture Drift Detector (Idea 1) via MATCH (a)-[:IMPORTS]->(b) Cypher queries - Next: reindex to populate IMPORTS edges in production Closes Phase 2 (Idea 1 blocker)
Security (#1-#3, #14): - ExecuteScriptTool: feature flag MSCODEBASE_EXECUTE_SCRIPT_ENABLED=false, clean PATH, честный докстринг (убрано 'E2B-песочница') - HeartbeatService._shutdown: os._exit(0) -> sys.exit(0) + _shutdown_services() - .env.example: документирован флаг Static analysis (#8): - F821 убран из ruff.toml ignore - 5 скрытых NameError починены (_ext_root, numpy, typing Any) - Per-file-ignores для 4 legacy-файлов Декомпозиция Indexer (Фаза 6): - IndexParser: чистый парсер без DB/SymbolIndex (175 строк) - Indexer._parse_file_only: 143 -> 70 строк - IndexPipeline: -138 строк, использует IndexParser - AST-кэш: двойной парсинг устранён
MultiProviderReranker: MIN_RERANK_SCORE=0.3 отсекает низкорелевантные чанки (JSON локалей, битые fallback). Чанки со скором < 0.3 не попадают в финальные результаты. Основание: эксперимент — 89% релевантных результатов, 11% мусора (locales/*.json). Threshold решает проблему.
_verify_archive_sha256 теперь БЛОКИРУЕТ установку (return False), если хэш для платформы не задан (было: return True — пропуск). Windows (win-cpu-x64, win-vulkan-x64) — хэши уже есть, защищены. macOS/Linux — пока None, установка на этих платформах заблокирована до добавления хэшей.
get_zed_db_path не вызывается из production-кода, но добавлено предупреждение о хрупкости схемы. Единственное использование — диагностический скрипт check_lsp_health.py.
- llama_runner.py: from x import * -> explicit imports (10 names) - src/core/llama_runner.py: sync same fix - remote_embedder.py: удалена мёртвая tt_all (F841) - ruff --fix: sorted imports Результат: 0 F-серия violations в src/ (было 34)
dependabot
Bot
force-pushed
the
dependabot/github_actions/actions/checkout-7
branch
from
July 18, 2026 04:36
1d78345 to
efd45f9
Compare
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](actions/setup-python@v5...v6) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
…le cache, explain bugs
5 root causes found and fixed in today's investigation:
1. index_status.py: reset_cache() + get_status() always checks count_rows()
2. db_writer.py + indexer.py: _safe_recreate_table() syncs table ref via callback
3. engine.py: dict(rrf_results) -> {id(r): dict(r) for r in rrf_results}
4. search_tools.py: removed redundant // File: lines; safe float in explain trace
5. graph_tools.py: EdgeType moved to module-level import (fix NameError)
6. server_factory.py: reliable auto-index via asyncio.sleep
7. index_project_runner.py: optimize() separated from create_index()
Docs: CHANGELOG 3.3.1 entry (en/ru/zh), DEV_DIARY session close
AGENTS.md: E2B заменён на execute_script* с примечанием о feature flag MSCODEBASE_EXECUTE_SCRIPT_ENABLED. ARCHITECTURE.md: 36->37, Intel 14->12, diag 3->6, E2B->execute_script с feature flag.
…pt in db_manager - settings.py: add onnx_server_host + onnx_server_port to PerformanceConfig - remote_embedder.py: use config instead of os.getenv - multi_provider.py: use config instead of os.getenv - db_manager.py: replace bare except: pass with logger.debug on dim detection - layer.py split deferred (1491 lines, 13 callers, low risk)
…etup-python-6 chore(deps): bump actions/setup-python from 5 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot
Bot
force-pushed
the
dependabot/github_actions/actions/checkout-7
branch
from
July 18, 2026 10:11
efd45f9 to
1794b89
Compare
Contributor
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
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.
Bumps actions/checkout from 4 to 7.
Release notes
Sourced from actions/checkout's releases.
... (truncated)
Changelog
Sourced from actions/checkout's changelog.
... (truncated)
Commits
9c091bbupdate error wording (#2467)1044a6dgetting ready for checkout v7 release (#2464)f028218Bump the minor-npm-dependencies group across 1 directory with 3 updates (#2462)d914b26upgrade module to esm and update dependencies (#2463)537c7efBump@actions/coreand@actions/tool-cacheand Remove uuid (#2459)130a169Bump js-yaml from 4.1.0 to 4.2.0 (#2461)7d09575Bump flatted from 3.3.1 to 3.4.2 (#2460)0f9f3aaBump actions/publish-immutable-action (#2458)f9e715ablock checking out fork pr for pull_request_target and workflow_run (#2454)df4cb1cUpdate changelog for v6.0.3 (#2446)