# Contributing to Log Viewer Спасибо за интерес. Этот документ — короткая навигация: куда писать идеи, как запустить проект локально, какие правила соблюдаются в коммитах, ADR и плагинах. ## Связаться - **Баги** — категория [Bug Reports](https://github.com/AlexandrBukhtatyy/log-viewer/discussions/categories/bug-reports) в Discussions. - **Идеи, запросы фич, вопросы** — категория [Ideas & Feature Requests](https://github.com/AlexandrBukhtatyy/log-viewer/discussions/categories/ideas-feature-requests) в Discussions. - **Трекинг работы** — доска [GitHub Projects → Log Viewer](https://github.com/users/AlexandrBukhtatyy/projects/1) (созревшие обсуждения мейнтейнер конвертирует в Issue и кладёт на доску). Как оформлять задачи — [docs/conventions/task-management.md](docs/conventions/task-management.md). - **Roadmap** — [docs/ROADMAP.md](docs/ROADMAP.md). ## Запуск локально Нужны: - **pnpm** (требуется, см. [CLAUDE.md](CLAUDE.md)). Если нет: `corepack enable pnpm`. - **Node 20+** (тестировалось на 24). ```bash pnpm install # один раз после клона pnpm dev # http://localhost:5173/log-viewer/ pnpm test # vitest run (один прогон) pnpm lint # eslint flat config pnpm build # prod-сборка → dist/ pnpm preview # проверка prod-сборки локально pnpm gen:fixtures # сгенерировать .tmp/demo_logs c sample-логами ``` ## Структура - `src/core/` — типы, парсеры, фильтр, storage; без React и worker'ов. - `src/workers/` — coordinator, indexer, parser pool. - `src/worker-client/` — Comlink-обёртка для main thread. - `src/hooks/` — React-хуки (zustand stores, контейнерные хуки). - `src/ui/` — React-компоненты (sidebar, stream, panels, modals). - `src/app/` — провайдеры и контейнеры верхнего уровня. - `app/index.html` — demo-страница (`/log-viewer/app/`). - `index.html` — лендинг (`/log-viewer/`). - `docs/adr/` — Architecture Decision Records. - `docs/plans/` — планы реализации фич. Подробный обзор — [CLAUDE.md](CLAUDE.md). ## Архитектурные решения (ADR) Любое нетривиальное архитектурное решение (выбор библиотеки, схема хранения, контракт между модулями) фиксируется как **ADR** в [docs/adr/](docs/adr/). Полная политика — [docs/adr/README.md](docs/adr/README.md). Как создать: - Скопируй [docs/adr/0000-template.md](docs/adr/0000-template.md), назови `NNNN-.md`, дополни запись в `## Index` файла `docs/adr/README.md`. - Используй `proposed` как статус по умолчанию. ## Планы для крупных задач Большие фичи начинаются с маленького плана в [docs/plans/](docs/plans/) — пара экранов с разделами **Context / Design / Critical files / Verification**. Это позволяет обсудить подход до того, как набьются 800 строк кода. Готовые планы остаются как «как мы это делали»-документ. ## Стиль коммитов С релиза 0.1.0 (2026-05-24) проект использует [Conventional Commits 1.0](https://www.conventionalcommits.org/) — на их основе [release-please](https://github.com/googleapis/release-please) автоматически бампит версию и наполняет [CHANGELOG.md](CHANGELOG.md). Все новые коммиты в `main` должны соответствовать формату. Формат: ``` ()?: