Аналог task manager про дисциплину (игра слов вокруг Discipline без четырёх букв в середине).
Память проекта и план: каталог plan/ — с чего начать, roadmap, бэклог, формат работы с ИИ, шаблон ADR и сессий.
Структура: apps/web, apps/api, позже packages/*. Тулчейн — ADR-001: pnpm 9 + workspaces, без Turborepo.
Используй только pnpm из корня репозитория (
pnpm install). Не запускайnpm i— сломает workspace.
node -v → например v20.18.0)pnpm -v → 9.15.9)Установка pnpm (если ещё нет):
npm install -g pnpm@9.15.9
# или: brew install pnpm — убедись, что версия 9.x, не 11
Из корня репозитория:
pnpm install
pnpm list -r --depth -1
В списке должны быть dpline-task-manager, @dpline/web и @dpline/api.
pnpm dev # web + api параллельно
pnpm build # сборка workspace
pnpm lint # ESLint (сейчас web)
pnpm typecheck # tsc по apps/*
Нужен запущенный Docker Desktop.
cp .env.example .env # один раз; .env в git не коммитится
docker compose up -d
docker compose ps # сервис db / dpline-db
Строка подключения — DATABASE_URL в .env (шаблон в .env.example).
Остановка: docker compose down (данные в volume сохраняются; down -v — сбросить БД).
pnpm --filter @dpline/api dev
curl -s http://localhost:3001/health
# → {"status":"ok","databaseUrlConfigured":true}
Api читает корневой .env через dotenv и логирует DATABASE_URL без пароля.
pnpm --filter @dpline/web dev
# → http://localhost:5173 (страница DPline)
На PR и push в dev / main workflow .github/workflows/ci.yml гоняет pnpm lint и pnpm typecheck.