Repository navigation
Release v1.5.0 — Engine Foundation, edit_file 2.0 & Complete UI Suite
🚀 DEVX v1.5.0 — The Mega-Release: Testing Foundation, edit_file 2.0 & Complete UI Suite
🇬🇧 English
DEVX v1.5.0 is the biggest and most comprehensive milestone release in the project's history! We have laid a rock-solid testing foundation powered by Vitest (53 automated tests), overhauled the safety and precision of code editing, added fault-tolerant cancellation at any stage, and introduced a complete terminal UI & telemetry suite: live tok/s telemetry spinner, powerline status bar with Git integration, mode indicator frame colors, text-only safe diffs, configurable banners, and persistent prompt history.
🌟 Highlights
1. 🧪 Automated Test Foundation (Vitest & CI)
- Built a modular test suite with 53 unit tests across 15 test files, running in ~500ms.
- Comprehensive test coverage: core agent loop,
/undosnapshots, context history, file system operations, security guard, live telemetry, diffs, banners, and prompt navigation. - Automated GitHub Actions CI matrix running on Node.js 20 & 22 across Ubuntu and Windows.
2. 🔍 edit_file 2.0 Overhaul
- Collision Detection with Line Reporting: When multiple matches of a target code block are found without
replaceAll: true, the agent receives exact line numbers:
Target text matches 2 occurrences in index.ts at lines: [12, 45]. Please provide more surrounding context or set replaceAll: true. replaceAllType Coercion: Full support for boolean and string values (true,"true","false") sent by different LLM providers.- Strict CRLF/LF Normalization: Completely eliminates dangling
\rcarriage return artifacts and terminal rendering corruption.
3. 🛡️ Hardened Security & Fault Tolerance
- Dangerous Command Blocking:
CLIConsoleGuardnow strictly blocksrm -rf .,rm -rf ./,rm -rf ..,rm -fr .even in YOLO auto-approve mode. - Safe Package Installation: Name sanitization in
install_packageand execution via argument arrays inspawn(preventing command injection). - OOM & Binary Protection in
searchTool: 512 KB file size ceiling and automatic skipping of compiled extensionless binaries (a.out, Go, Rust, ELF) via null byte detection (\0). - Fault-Tolerant
/undoinfinallyBlocks: File snapshots are guaranteed to be saved even during network crashes or unhandled LLM errors. - Instant Ctrl+C Cancellation: Smooth cancellation during the "Connecting..." phase without crashing the CLI process.
4. 💅 Complete UI & Telemetry Suite
- ⭐ Live Telemetry Spinner (
src/cli/telemetry.ts): Real-timetok/scalculation using a 2-second sliding window, elapsed timer, and token counter (✻ thinking… 12s · 1.4k tok · 87 tok/s). - 📊 Powerline Status Bar (
src/cli/statusline.ts): Cached Git branch & dirty indicator (main✱checked once per turn), visual context progress bar[████░░░░░░] 42%, and cost budget color grading. - 🎨 Mode Indicator Accent (
src/cli/modeborder.ts): Crisp visual differentiation: AGENT (green), PLAN (cyan), YOLO (strictly red). - 🛡️ Safe Text Diff (
src/cli/diff.ts): Formatted strictly using text foreground colors without background fills (preventing the v1.4.13 "ANSI background leak" bug). - 🖼️ Configurable Banner (
src/cli/banner.ts): Supportsfull,minimal(1 compact line saving screen height in Termux), andoff. - ⌨️ Command Palette
/with Descriptions & Token Counter: Two-column dropdown with inline command descriptions and real-time draft token badge (~120 tok). - 💾 Persistent Prompt History (
src/cli/history_search.ts): Stores prompt history in~/.devx/history.jsonl(500 entry limit) with support for linear navigation and fuzzy search.
5. ⚙️ Strict Feature Flags Isolation (Default OFF)
All new UI features are gated behind configuration flags in ~/.devxrc.json (default false for complete stability):
{
"ui": {
"liveTelemetry": false,
"powerlineStatus": false,
"modeBorder": false,
"diffColors": false,
"commandPalette": false,
"inputTokenCounter": false,
"promptHistoryFuzzy": false
},
"banner": "full"
}📦 Installation & Upgrade
# Global installation via npm
npm install -g termux-dev@1.5.0
# Or on Android (Termux):
pkg update && pkg install -y nodejs-lts
npm install -g termux-dev@1.5.0🇷🇺 Русский
DEVX v1.5.0 — крупнейшее и самое масштабное обновление в истории проекта! Мы заложили железобетонный тестовый фундамент на базе Vitest (53 авто-теста), кардинально повысили безопасность и точность редактирования кода, добавили надежную отмену операций на любом этапе и внедрили полноценный пакет интерфейсных улучшений: живой спиннер с телеметрией tok/s, powerline статус-строку с Git-статусом, цветовую индикацию режимов, настраиваемый баннер и постоянную историю промптов.
🌟 Главные новшества (Highlights)
1. 🧪 Тестовый фундамент (Vitest & CI)
- Разработан модульный набор из 53 unit-тестов (15 тестовых сьютов), выполняющийся за ~500ms.
- Покрыты все подсистемы: ядро агента, снимки
/undo, история контекста, файловые операции, безопасность команд, телеметрия, диффы, баннеры и навигация. - Настроена автоматическая CI-матрица в GitHub Actions для Node.js 20 и 22 на Ubuntu и Windows.
2. 🔍 Модернизация edit_file 2.0
- Защита от коллизий: при обнаружении дубликатов фрагмента без флага
replaceAllагент получает точные номера строк:
Target text matches 2 occurrences in index.ts at lines: [12, 45]. Please provide more surrounding context or set replaceAll: true. - Приведение типов
replaceAll: поддержка строковых значений"true"и"false"от различных LLM-провайдеров. - Строгая нормализация CRLF/LF: исключает появление лишних символов
\rи артефактов в терминале.
3. 🛡️ Усиление безопасности и отказоустойчивость
- Блокировка опасных команд:
CLIConsoleGuardтеперь блокируетrm -rf .,rm -rf ./,rm -rf ..иrm -fr .даже в YOLO-режиме. - Безопасная установка пакетов: санитизация имён в
install_packageи выполнение через массив аргументовspawn(защита от shell-инъекций). - Защита от OOM и бинарников в
searchTool: лимит на размер файлов 512 КБ и автоматический пропуск скомпилированных бинарных файлов без расширения (a.out, Go, Rust, ELF) по нулевому байту (\0). - Гарантия
/undoв блокахfinally: сохранение снимков файлов перед изменениями гарантировано даже при аварийном обрыве соединения или фатальных ошибках LLM. - Мгновенная отмена по Ctrl+C: аккуратная отмена на этапе «Connecting...» без аварийного закрытия программы.
4. 💅 Полный пакет UI и Телеметрии
- ⭐ Спиннер с живой телеметрией (
src/cli/telemetry.ts): расчет скоростиtok/sв скользящем окне (~2 сек), таймер и счетчик токенов в реальном времени (✻ thinking… 12s · 1.4k tok · 87 tok/s). - 📊 Powerline статус-строка (
src/cli/statusline.ts): кэшированный опрос Git (main✱1 раз за ход), графический прогресс-бар контекста[████░░░░░░] 42%и цветовая индикация расходов. - 🎨 Рамка режима ввода (
src/cli/modeborder.ts): четкие цветовые акценты: AGENT (зеленый), PLAN (голубой), YOLO (строго красный). - 🛡️ Безопасный текстовый Diff (
src/cli/diff.ts): оформление строго цветом текста без фоновых заливок (полная защита от бага v1.4.13 «ANSI background leak»). - 🖼️ Настраиваемый баннер (
src/cli/banner.ts): режимыfull,minimal(1 строка для Termux) иoff. - ⌨️ Палитра команд
/с описаниями + Токен-счётчик: двухколоночное выпадающее меню с пояснениями команд и живой индикатор размера промпта(~120 tok). - 💾 Долгосрочная история промптов (
src/cli/history_search.ts): сохранение запросов в~/.devx/history.jsonl(лимит 500 записей) с поддержкой линейной навигации и fuzzy-поиска.
5. ⚙️ Строгая изоляция Feature Flags (Default OFF)
Все новые UI-функции изолированы за флагами конфигурации ~/.devxrc.json (по умолчанию false для 100% стабильности):
{
"ui": {
"liveTelemetry": false,
"powerlineStatus": false,
"modeBorder": false,
"diffColors": false,
"commandPalette": false,
"inputTokenCounter": false,
"promptHistoryFuzzy": false
},
"banner": "full"
}📦 Установка и обновление
# Обновление до v1.5.0 через npm
npm install -g termux-dev@1.5.0
# Или в Termux на Android:
pkg update && pkg install -y nodejs-lts
npm install -g termux-dev@1.5.0Full Changelog: v1.4.19...v1.5.0