docs: how to bring up a local dev stand (+ gotchas), referenced from AGENTS.md #272
Reference in New Issue
Block a user
Delete Branch "docs/dev-stand-guide"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Добавляет доку «Running a local dev stand» (
docs/dev-stand.md) со всеми граблями, на которые я напоролся при поднятии стенда, и ссылается на неё изAGENTS.md(секции Commands + Two server processes).Ключевые грабли, задокументированы:
pnpm devподнимает только API + клиент; realtime-коллаб (:3001) надо стартовать отдельно (pnpm collab:dev), иначе редактор висит на «Real-time editor connection lost» и остаётся в статик-режиме.collab:dev=node dist/.../collab-main, так что сначалаpnpm --filter server build; черезtsx/ts-nodeпадает на NestJS-DI.APP_SECRETдолжен совпадать у API- и коллаб-сервера, иначе каждый realtime-коннект отбивается[onAuthenticate] Invalid collab token.--host.@docmost/editor-ext= белый экран («does not provide an export named …»).demopass, неStr0ng!Pass@2026): спецсимволы ломаются при прогоне через шелл/JSON/URL в скриптах.How verified
Только документация (
docs/dev-stand.mdновый + правки-ссылки вAGENTS.md). Проверил, что относительные ссылки резолвятся в обе стороны (docs/dev-stand.md↔AGENTS.md). Технические факты сверены с репой: run-скрипты (pnpm dev/collab:dev/build),collab-mainпорт/host (COLLAB_PORT||3001,HOST||0.0.0.0),.env-ключи,migration:latest.Checklist
Ревью
ef173f022— docs-only (новыйdocs/dev-stand.md+135 + две ссылки-врезки вAGENTS.md+8), docs tier (documentation + coherence).Вердикт: PASS. Гайд по локальному дев-стенду точен: все несущие технические утверждения сверены с кодовой базой и держатся. Готово к мержу.
Что проверено и ЧИСТО (сверено с кодом):
pnpm dev=concurrently client:dev + server:dev, коллаб НЕ включён — верно;collab:dev=node dist/collaboration/server/collab-main(собранный dist, не tsx/ts-node) — «сначала build» верно;pnpm --filter server migration:latest=tsx src/database/migrate.ts latest— имя скрипта верно.page_embeddings-миграция делаетCREATE EXTENSION IF NOT EXISTS vector→ требование pgvector (pgvector/pgvector:pg18) верно; стоковый postgres упадёт.COLLAB_PORTdefault 3001 (process.env.COLLAB_PORT || 3001), PORT/3000 — верно; APP_SECRET: коллабonAuthenticate→verifyJwt(token, JwtType.COLLAB)сgetAppSecret(), ошибкаInvalid collab token— строка реальна (гочи #3 верна).getCollaborationUrl()при заданномCOLLAB_URLконектится напрямую на:3001/collab, мимо Vite/collab-прокси; три прокси (/api,/socket.io,/collab)→APP_URL — гочи #1/#4 консистентны.Spoiler— реальный экспорт@docmost/editor-ext(гочи #5 правдоподобна). Врезки в AGENTS.md совпадают с существующей секцией Architecture (два серверных процесса).Мелкая неточность (не блокер, кодеру не обязательно): гочи #1 называет
http://localhost:3001«дефолтом» COLLAB_URL, тогда как код при НЕзаданномCOLLAB_URLфолбэчится наAPP_URL(:3000)/collab; но их же.env-пример ставитCOLLAB_URL=http://localhost:3001, а дефолтCOLLAB_PORTдействительно 3001 — на практике инструкция верна, wrong-command-дефекта нет.Замечание: этот PR НЕ закрывает отдельный вопрос про AGENTS.md (2 vs 3 вендоренных копии схемы) — это другая правка.
Объективные проверки: docs-only, исполняемого кода/тестов нет — гейта проверок нет; технические утверждения верифицированы чтением против кодовой базы.
Маркер
reviewed_headобновлён наef173f022.