Посмотрите видео ниже, чтобы узнать, как установить наш сайт в виде веб-приложения на главном экране.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
NTS MCP FileSystem Server v1.7.4 — Java Development Suite, Sub-Tasks, Semantic Refactoring
Что нового
Комплект инструментов Java-разработки
NTS теперь предоставляет расширенную поддержку Java поверх общих возможностей tree-sitter для 12 языков. Java получает выделенные высокоуровневые инструменты с минимальной когнитивной нагрузкой для агентов.
Профайлер: высокоуровневый API
nts_java_profiler полностью переработан на 6 высокоуровневых действий:
- discover — Список подключаемых JVM с PID, именами, версиями Java
- profile — Один вызов: attach → запись → stop → парсинг → Markdown-отчёт
- trace — Трассировка методов с фильтром (JDK 25+)
- analyze — Повторный анализ записи с другим фокусом (экономия токенов)
- compare — Дельта-отчёт между двумя записями (до/после)
- kill — Завершение JVM-процесса
Области фокуса: cpu, cpu-time (JDK 25+), memory, contention, gc, io, all.
Усиленный contention-анализ:
- JavaMonitorEnter — блокировка на мониторах (synchronized)
- JavaMonitorWait — Object.wait() (ожидание notify)
- ThreadPark — LockSupport.park (j.u.c.)
- Call sites блокировок — конкретные места в стеке
- Самые блокируемые потоки — ранжирование по суммарному времени
Умные хинты: NIO-серверы с пустым IO получают NIO-подсказку. ZGC с минимальными паузами — подсказку о pauseless-коллекторе.
Новый инструмент: nts_java_memory
Анализ памяти — отдельный инструмент с 4 действиями:
- discover — Список JVM (независим от профайлера)
- snapshot — Мгновенная гистограмма классов через jcmd (миллисекунды, без записи)
- compare — Дельта между снапшотами с автоматическим вердиктом утечки
- alloc — JFR-запись аллокаций — top типов по скорости с call sites
Workflow обнаружения утечек: snapshot → нагрузить код → snapshot → compare. Рост = кандидаты на утечку.
Gradle Build Integration
- Умное переключение бэкенда: gradlew → system gradle → автогенерация wrapper
- Инициализация проекта: task='init', initType='java-application'
- Парсинг вывода: ошибки с file:line, результаты тестов с pass/fail/skip
- Асинхронные сборки с мониторингом через nts_process
Расширенный Java AST
- Enum constants как символы CONSTANT в навигации
- Constructor-aware rename — переименование класса переименовывает конструкторы
- Disambiguация перегрузок через структурированные AST-параметры
- Фильтрация символов: symbols(kind='method', brief=true)
Под-задачи для параллельных агентов
nts_init поддерживает под-задачи для нескольких агентов на одной кодовой базе:
- Родитель: nts_init() → parentTaskId
- Суб-агент: nts_init(parentTaskId=...) → изолированный undo/redo стек
- Успех: nts_init(action='merge') → все правки = одна grouped undo запись
- Неудача: nts_init(action='rollback') → все правки откатываются
CRC-токены предотвращают конфликты на одних участках файлов.
Семантический рефакторинг: 13 багфиксов
Все 10 операций на семантическом разрешении с SymbolHandle и ResolutionResult:
- Rename: Авто-rename конструкторов, guard от unrelated параметров
- Extract Variable: Изоляция выражений из statement-ов (var decl, return, if, throw)
- Inline: Fallback поиск локальных переменных через AST
- Delete: Scope по умолчанию project при handleReferences
- Wrap: throw RuntimeException вместо printStackTrace при return
- Generate: options.overwrite=true для перегенерации
- Change Signature: AST-перезапись с disambiguацией перегрузок
Навигация
- Авторазрешение class vs constructor — больше нет "Ambiguous" ошибок
- Фильтрация символов: kind + brief=true для компактного вывода
- Strict mode для безопасных автономных правок
- Структурированный контракт разрешения
Контекстная память агента (nts_context)
- HUD-заметки — всегда видимые напоминания в каждом ответе
- Контекстные заметки — устойчивые находки для recovery после сжатия
- Snapshot recovery — полная картина задачи одним вызовом
- CRUD API и кросс-инструментальная интеграция через TIPs
Аудит схем
Полный аудит схем всех 21 инструмента. Ключевые исправления:
- nts_edit_file — расширены sub-schemas operations[]/edits[]
- nts_code_refactor — +6 параметров, исправлен enum, catchType→exceptionType
- nts_init — параметр description для merge
- ContextTool — убран фантомный nts_worker_finish
- BatchToolsTool — $LAST после create, убраны несуществующие ссылки
Инфраструктура
- PathSanitizer: защита от symlink, динамические roots
- McpIntegrator: поддержка Codex CLI (TOML) и OpenCode
- GradleTool/VerifyTool: структурированная диагностика ошибок
- JsonUtils: shared ObjectMapper + NtsErrorCode
- README: реструктуризация, Quick Start наверх, языки разделены
Статистика
- 20 коммитов, 125 файлов изменено, +22 296 / -2 520 строк
- 33 новых файла (production + тесты)
- 21 MCP-инструмент (было 19): добавлены nts_java_memory, nts_context
- 13 багфиксов в рефакторинге
- Аудит схем всех 21 инструмента
Примечания к релизу — NTS MCP FileSystem Server
Новые возможности
Session → Task: Переименование концепции (Ломающее изменение API)
Весь API мигрирован с терминологии «сессия» на «задача» в 84 файлах:
Было Стало SessionContext TaskContext SessionTransactionManager TaskTransactionManager SessionLineAccessTracker TaskLineAccessTracker SessionSearchTracker TaskSearchTracker SessionTool (пакет session) TaskTool (пакет task) TaskTool (пакет system) ProcessTool (пакет system) nts_session nts_task sessionId taskId
Зачем: «Задача» точнее отражает изолированную единицу работы с собственной историей undo, чекпоинтами и реестром токенов.
Персистентность на H2 Database
Хранилище журнала транзакций мигрировано с JSON-файлов на встроенную H2 базу данных:
- JournalDatabase — пул соединений и управление схемой
- JournalRepository — CRUD-операции для записей журнала
- Переживает перезапуски сервера с полной историей транзакций
- Устраняет накладные расходы JSON-сериализации и риски повреждения файлов
SmartUndoEngine: In-Memory снапшоты
Движок отката мигрирован с файловых бэкапов (Map<Path,Path>) на in-memory byte[] снапшоты (Map<Path,byte[]>):
- Быстрые операции undo/redo (без дискового I/O для снапшотов)
- Меньше временных файлов
- Отслеживание родословной файлов для восстановления после move/rename сохранено
Новый инструмент: nts_verify — Многоуровневая валидация
Инструмент верификации с тремя уровнями проверки корректности кода:
Действие Описание syntax Быстрая проверка AST через tree-sitter (без сборки) compile Запуск gradlew build -x test для проверки компиляции test Запуск gradlew test для полной проверки тестами
Работает на основе SyntaxChecker — парсинг AST через tree-sitter для мгновенной валидации синтаксиса.
Новый инструмент: nts_workspace_status — Восстановление контекста
Компактная сводка рабочего пространства для переориентации агента после сжатия контекста:
- ID текущей задачи и статистика
- Прогресс TODO (если активен)
- Недавно изменённые файлы
- Последние записи журнала (5 операций)
- Предложение следующего действия
Новый инструмент: nts_process — Управление фоновыми процессами
Мониторинг и управление долгими фоновыми процессами:
Действие Описание log Получить вывод асинхронного процесса kill Остановить работающий процесс
Работает с асинхронными операциями nts_gradle_task и nts_git.
EditFileTool: Автоматическая проверка синтаксиса
После каждой правки инструмент автоматически запускает проверку синтаксиса через tree-sitter. Если обнаружены ошибки синтаксиса, ответ включает предупреждение с деталями — агент ловит ошибки мгновенно без отдельного шага верификации.
LineAccessTracker: Инвалидация токенов по CRC файла
Токены теперь отслеживают CRC файла (fileCrc) в дополнение к CRC диапазона:
- registerAccess() требует обязательный параметр fileCrc
- Внешние изменения файла инвалидируют токены, даже если изменённый диапазон не затронут
- Per-symbol токены в CodeNavigateTool для точной инвалидации
EncodingUtils: ICU4J многоуровневая детекция
Определение кодировки мигрировано на ICU4J с многоуровневой стратегией:
- Детекция BOM (UTF-8/16/32)
- ICU4J CharsetDetector с оценкой уверенности
- Fallback на системную кодировку по умолчанию
Обработка нормализации CRLF, удаления Unicode BOM, сравнения текста с учётом кодировки.
Улучшения TodoTool
- Новые действия: items и all_items для структурированных JSON-ответов
- FOCUS hint — напоминает агенту о текущей активной задаче
- Verify reminder — предлагает проверить после завершения правок
- Role-aware подсказки — разные советы для разных ролей агентов
GradleTool: Инициализация проектов
- Действие init — генерация Gradle wrapper для новых проектов
- Fallback на системный Gradle при отсутствии wrapper
- Улучшенные сообщения об ошибках с предложениями действий
TipFilter: Role-aware фильтрация
Умные контекстные подсказки теперь фильтруются на основе роли агента через ntsAllowedTools:
- Workers видят подсказки по выполнению
- Architects видят подсказки по планированию
- Scouts видят подсказки по исследованию
Консистентность API
- Метод isInternal() в McpTool — скрывает инструменты из внешнего tools/list
- Параметр includeInternal в listTools — позволяет оркестратору видеть все инструменты
- Метаданные ntsAllowedTools — ограничивает видимость инструментов по роли агента
- Ленивое обновление Roots в PathSanitizer — повторная попытка при отказе в доступе
- ObjectMapper → JsonMapper.builder() в McpIntegrator
NtsErrorCode: Интерполяция плейсхолдеров
Сообщения об ошибках теперь поддерживают интерполяцию %placeholder%:
Код:TOKEN_EXPIRED: "Token expired for %path%. File was modified externally."
Плейсхолдеры подставляются при создании ошибки с реальными значениями.
Улучшения поиска
- Поиск с учётом BOM — корректная обработка файлов с byte order mark
- Нормализация CRLF — единообразное совпадение вне зависимости от окончаний строк
- Unicode Boyer-Moore-Horspool — оптимизация для многобайтовых символов
- containsText с учётом кодировки — корректное совпадение независимо от кодировки файла
PathSanitizer: Ленивое обновление Roots
При отказе в доступе к пути sanitizer теперь обновляет roots и повторяет попытку — обрабатывает случаи, когда roots обновлены после старта сервера.
FileReadTool: Валидация директорий
executeRead и executeInfo теперь проверяют, что путь указывает на файл, а не директорию — предотвращает непонятные сообщения об ошибках.
BatchToolsTool: Исправление пути копирования
Исправлено разрешение path для действия copy в nts_file_manage — путь назначения теперь корректно подставляется при интерполяции переменных батча.
Обновления документации
README.md
Обе версии (EN и RU) обновлены:
- Бейдж инструментов: 15 → 17
- Имя сервера: NTS-FileSystem → NTS-FileSystem-MCP во всех конфигурациях
- Документированы новые инструменты: nts_verify, nts_workspace_status, nts_process
- Операции рефакторинга: 6 → 10 (добавлены Extract Variable, Wrap, Move, Delete, Batch)
- Интеграция клиентов: 7 клиентов (Gemini CLI, Claude Code, Qwen CLI, Cursor, LM Studio, Antigravity, Copilot VS Code)
- Миграция терминологии Session → Task
- Документация персистентности H2 Database
- In-memory снапшоты для движка отката
- Переменная окружения MCP_LOG_FILE для Docker
- Диаграммы цикла дисциплины обновлены с Verify и Workspace Status
Ломающие изменения
Миграция API: Session → Task
Изменение Влияние sessionId → taskId Все вызовы nts_init должны использовать параметр taskId nts_session → nts_task Имя инструмента изменено SessionTool → TaskTool Пакет перемещён из session в task TaskTool (старый) → ProcessTool Переименован во избежание коллизии
Миграция: Замените sessionId на taskId во всех клиентских конфигурациях и API-вызовах.
H2 Database заменяет JSON-журнал
- Старые файлы journal.json не мигрируются автоматически
- Новые задачи используют H2 хранилище автоматически
- Существующие директории задач с journal.json начнут с чистого состояния журнала
Примечания по обновлению
- Обновите клиентские интеграции — используйте taskId вместо sessionId
- Имя сервера в MCP-конфигурациях теперь NTS-FileSystem-MCP
- Старые JSON-файлы журнала можно безопасно удалить после обновления
- Изменения в Docker-конфигурации не требуются
Статистика
Метрика Значение Коммитов в релизе 19 Файлов изменено 89 Строк добавлено +7 148 Строк удалено -3 007 Нетто-изменение +4 141
NTS MCP Tools — Обновление
Новые возможности
Персистентность журнала транзакций
История undo/redo теперь сохраняется на диск в формате JSON. Данные не теряются при перезапусках сервера.
Код:{ "version": 1, "sessionId": "713a6834-c90a-4645-b441-f25f97a75457", "counters": { "totalEdits": 5, "totalUndos": 2 }, "undoStack": [ { "type": "TRANSACTION", "timestamp": "2026-01-15T19:09:25", "description": "Edit file: src/main/java/com/test/User.java", "instruction": "Добавление аннотации @Entity", "status": "COMMITTED", "snapshots": [{ "original": "src/main/java/com/test/User.java", "backup": "uuid.bak" }] } ], "redoStack": [] }
Ключевые улучшения:
- Синхронное сохранение после каждого commit/undo/redo — исправляет гонку потоков при завершении JVM
- Относительные пути для файлов — портируемость между машинами
- Только имена снапшотов (uuid.bak) — директория сессии подразумевается
Автоматическая реактивация сессий
Сессии автоматически восстанавливаются с диска при перезапуске сервера. Больше не нужно заново настраивать рабочее окружение!
Реактивация через nts_init:
Код:{ "sessionId": "ваш-предыдущий-uuid" }
Что восстанавливается:
- Полная история undo/redo из journal.json
- Ссылка на активный TODO-план
- Метаданные сессии (время создания, последняя активность)
Примечание: Токены доступа к файлам начинаются с чистого листа — перечитайте файлы перед редактированием.
Расширенный TodoTool
Новые действия для полного цикла управления задачами:
Действие Описание create Создать план с заголовком и чек-листом read Просмотр текущего плана (алиас: status) update Отметить задачу выполненной/проваленной или изменить текст add Добавить новую задачу в текущий план close Архивировать завершённый план (убирает из HUD) list Показать все планы (активные и архивные) reopen Реактивировать архивный план
Новое редактирование текста задачи:
Код:{ "action": "update", "id": 3, "text": "Обновлённое описание задачи" }
Предыдущий релиз
Улучшения LAT (Line Access Tracker)
- Сложные случаи перекрытия диапазонов теперь обрабатываются корректно
- Предотвращает ошибки сравнения CRC в краевых случаях
Smart Tips для инструментов
- Контекстные подсказки для LLM-агентов
- Рекомендации по оптимальному workflow
- Предотвращение типичных ошибок
Исправления ошибок
Журнал не восстанавливается после реактивации (Критично)
Проблема: После перезапуска сервера nts_init(sessionId="...") возвращал пустые стеки undo/redo, хотя journal.json существовал на диске.
Причина: SessionContext.getOrCreate() не проверял диск на существование сессий. После перезапуска JVM in-memory карта sessions пуста, поэтому создавался новый пустой контекст.
Решение: getOrCreate() теперь вызывает existsOnDisk() и loadJournal() при наличии директории сессии.
Гонка асинхронного сохранения (Критично)
Проблема: journal.json иногда не создавался, несмотря на успешные правки.
Причина: saveJournalAsync() использовал Thread.startVirtualThread(), который не успевал завершиться до выхода JVM.
Решение: Все сохранения журнала и метаданных теперь синхронные.
Совместимость
Критических изменений нет. Все изменения обратно совместимы.
Действий по обновлению не требуется. Существующие сессии на диске будут автоматически реактивированы при обращении.
Основные изменения:
Подробнее:
- Доступен AST-инструментарий: открыт доступ к механизмам глубокого анализа кода с поддержкой 12 языков программирования: Java, Kotlin, JS/TS/TSX, Python, Go, Rust, C/C++, C#, PHP, HTML.
- Интеграция рефакторинга с batch-операциями: инструмент nts_code_refactor теперь возвращает токены доступа для всех затронутых файлов, упрощая создание цепочек команд.
- Новая операция change_signature: добавлена возможность изменять параметры методов (добавление, удаление, переименование, изменение типа) с обновлением мест вызова.
- Алиасинг путей: токены доступа остаются валидными после перемещения или переименования файлов (автоматическое разрешение путей).
- Исправления критических ошибок: устранены проблемы с CRC в batch-режиме, ошибки диапазонов при удалении строк и рассинхронизация кеша сессии.
- Документация и тесты: обновлены инструкции для LLM, актуализирован README и добавлено покрытие тестами для новых функций.
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация