# Web MVP: AI Project Editor (Frontend-only) Локальный frontend MVP без backend API. ## Что реализовано - Выбор папки проекта: - `showDirectoryPicker` в secure context (`http://localhost`, `https://`). - fallback через `input[webkitdirectory]` в `file://` (read-only режим). - Папка `.git` скрывается и исключается из загрузки/подсчета. - Ограничения загрузки директории: - `>1000` файлов: предупреждение, можно продолжить. - `>10000` файлов: предупреждение и запрет загрузки. - общий размер `>1MB`: предупреждение, можно продолжить. - общий размер `>10MB`: предупреждение и запрет загрузки. - Рекурсивное дерево файлов и read-only просмотр содержимого. - Центральная панель: только вкладки открытых файлов и просмотр содержимого. - Правая панель: чат + ревью изменений (diff, accept/reject/apply). - Ресайз 3 колонок с дефолтными ширинами `15% / 65% / 20%`. - Темная тема по умолчанию (темно-синий акцент). - Mock индексация: snapshot/changes статусы в UI. - Mock чат-агент: - `/demo-update ` генерирует `update` для файла. - `/changeset { ... }` принимает raw JSON и строит review. - Валидация `changeset` по обязательным полям (`create/update/delete`). - Статусы review: `pending`, `accepted_partial`, `accepted_full`, `rejected`, `conflict`, `applied`. - `Apply accepted` с повторной hash-проверкой до записи и подтверждением удаления. - Без git-операций и без автоприменения правок. ## Запуск через Docker Compose ```bash cd "/Users/alex/Dev_projects_v2/ai driven app process/v2/web_app" docker compose up --build ``` Открыть: `http://localhost:8080` ## Локальный запуск без Docker ```bash cd "/Users/alex/Dev_projects_v2/ai driven app process/v2/web_app" python3 -m http.server 8080 ``` Открыть: `http://localhost:8080` ## Пример changeset ```json { "changeset": [ { "op": "create", "path": "notes/new_doc.md", "proposed_content": "# New doc\\nhello", "reason": "demo" } ] } ``` В чат отправить: ```text /changeset {"changeset":[{"op":"create","path":"notes/new_doc.md","proposed_content":"# New doc\\nhello","reason":"demo"}]} ```