Документация
Ревью кода перед публичным релизом
Это историческое ревью отслеживаемых TypeScript, браузерного JavaScript, fixtures, CLI, конфигурации и документации. Позднейшие проверки записаны в QA.md; текущий кандидат и условия публикации описаны в RELEASE.md. Ревью не означает, что устранены все возможные дефекты.
Исправленные находки
| Находка | Изменение |
|---|---|
| Заявлен Node 20 при требовании Commander Node 22 | Минимум 22.13 и соответствующие Node types |
| TypeScript 7 несовместим с peer range typescript-eslint | Поддерживаемый TypeScript 6.0 без принуждения peer-зависимостей |
| Нет форматирования и quality gate | Prettier, ESLint, строгий компилятор, настройки редактора и CI |
| Core импортировал CLI, общая инфраструктура жила в sync | Отдельные launch/status, errors, values, file-store, transaction, lock и shell |
| Импорт мог частично записать секреты, реестр и происхождение | Одна межпроцессная блокировка, проверки входов и компенсирующий откат |
| Ошибка чтения реестра превращалась в пустой реестр | Общая runtime-схема и запрет продолжения при ошибке |
| Dotenv терял многострочные и экранированные секреты | Сохраняющий parser/writer с round-trip тестами кавычек, escapes, переносов и Unicode |
| Секреты URL оставались в отслеживаемом реестре | Вынос URL и аргументов с секретами в .env и регрессии |
| Импорт автоматически добавлял все файлы Hub в staging | Импорт не коммитит; init коммитит только свои файлы настройки |
| Исключения миграции и takeover конкретного прототипа | Убраны неявные исключения владения, используется обычный проверяемый импорт |
| Логика n8n зашита в домен и UI | Общие readiness-настройки и подписи, необязательный отдельный пресет |
| Созданные команды предполагали POSIX shell | Общий renderer POSIX/PowerShell с тестами quoting |
| Import и sync DSH по-разному выбирали профиль | Общий parser настроек и resolver профиля |
| Личные email и домен в примерах | Нейтральные example.com |
| Рабочий UI зависел от assets макета | Самостоятельные assets и проверка пакета |
| Дублировались сериализация отпечатков и политики | Общая сериализация и определения политик в адаптерах |
CLI и UI используют одни доменные сервисы. Форматы клиентов, открытие браузера и очистка процессов — явные интеграции совместимости, не предположения о пользователе. Домашний путь, email, машинный путь и корпоративный host не зашиты в runtime.
Исходный результат проверок
Локальный gate охватывает формат, линтер, TypeScript, unit/integration tests и пакет. Покрытие относится к скомпилированному runtime, не fixtures. Baseline того ревью: 54 успешных теста, 86,20% строк, 81,46% ветвей, 84,68% функций. Полный CLI-сценарий работает из посторонней папки с переопределёнными путями трёх клиентов. Всё также прошло на минимальном Node 22.13.0. Позднейшие прогоны — актуальный источник результатов.
Аудит production-зависимостей тогда показал ноль уязвимостей. В dev-дереве была moderate minimatch DoS через ESLint. Шаблоны задаёт конфигурация репозитория, инструменты не входят в runtime. Неподдерживаемый override или принудительное понижение не применялись. Перед публикацией проверьте upstream-исправления; здесь advisory не объявлен исправленным.
Оставшиеся ограничения
- Цели — macOS/Linux. PowerShell проверен как текст; Windows tree-cleanup, права и wrappers требуют сквозного испытания.
- Настроен CI macOS/Linux с Node 22.13/24. Локальная macOS не доказывает удалённый CI.
- Замена атомарна для одного файла и сбрасывается до rename. Многофайловый откат не гарантирует восстановление после аварии процесса или машины; внешние программы не соблюдают lock.
- Авария может оставить блокировку. Она снимается явно после проверки владельца, без угадывания безопасности переиспользованного PID.
- Выделение секретов эвристическое. Проверяйте импорт перед публикацией; уже закоммиченные секреты нужно удалить и сменить отдельно.
- Аудит покрывает lockfile, а не пользовательские программы и пакеты внешних запускателей.
- Readiness — необязательный GET без авторизации. Он не выполняет инструменты, не доказывает API-права, ingress может скрывать состояние.
- Интерактивные prompts и открытие браузера не полностью автоматизированы unit-тестами. Проверены helpers и HTTP, не вся матрица браузеров.
- Доставка инструкций и инициализация репозитория реализованы. Индекс архивных сессий пока не реализован.
- Версия кандидата — 0.1.0-beta.1, распространяемая как проверенные архивы. Публикация в реестре npm отложена; это ревью ничего не публиковало.
Позднейшее дополнение: исходное восстановление
Следующий аудит добавил внешний baseline, устойчивый журнал намерений, reset, явное восстановление мёртвых блокировок и тесты прерванных sync/reset. См. пограничные случаи и восстановление. Это улучшает работу после аварии процесса, но не превращает файловые операции в crash-durable базу данных и не снимает ограничения файловой системы.