Files
web_app/README.md
2026-02-23 09:08:15 +03:00

68 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 <path>` генерирует `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"}]}
```