feat: log unhandled errors and pretty dev output (WealthLedger/backend#120) #121

Closed
codex-bot wants to merge 2 commits from feature/120-structured-error-logging into develop
Owner

Closes #120.

Что изменено

  • Неожиданные ошибки логируются через StructuredLogger.event('error', 'http.request.unhandled') с полями code, errorName, errorStack. message не пишется; в stack попадают только строки at .... Публичный ответ problem+json не меняется.
  • Для 400 validation-ошибок в completion-строке добавляется invalidFields (JSON pointers без значений).
  • В NODE_ENV=development включается pino-pretty с цветом. Production-зависимостей не добавлено (pino-pretty в devDependencies, production-образ делает prune --omit=dev).
  • userId в completion уже был: JwtAuthGuard ставит его через PinoLogger.assign, подтверждено выводом. Отдельного кода не добавлял.
  • Route для 404 оставлен <unmatched>.

Проверки

  • npm run lint:check, typecheck:app, typecheck:test — зелёные.
  • npm test — 40 suites, 289 tests passed.
  • npm run test:lint — OK.
  • Вывод pino-pretty и bindings (requestId, userId) проверен вручную.
  • app.e2e-spec.ts обновлён (ожидает два события на 500), но не запущен: на develop без моих правок test:sqlite падает с OOM во время jest-прогона. Это ограничение окружения, не регрессия. Нужна проверка в CI или на машине с достаточной памятью.

Вне scope

Полные тела запросов и ответов (требует нового ADR).

Closes #120. ## Что изменено - Неожиданные ошибки логируются через `StructuredLogger.event('error', 'http.request.unhandled')` с полями `code`, `errorName`, `errorStack`. `message` не пишется; в stack попадают только строки ` at ...`. Публичный ответ problem+json не меняется. - Для 400 validation-ошибок в completion-строке добавляется `invalidFields` (JSON pointers без значений). - В `NODE_ENV=development` включается `pino-pretty` с цветом. Production-зависимостей не добавлено (`pino-pretty` в devDependencies, production-образ делает `prune --omit=dev`). - `userId` в completion уже был: `JwtAuthGuard` ставит его через `PinoLogger.assign`, подтверждено выводом. Отдельного кода не добавлял. - Route для 404 оставлен `<unmatched>`. ## Проверки - `npm run lint:check`, `typecheck:app`, `typecheck:test` — зелёные. - `npm test` — 40 suites, 289 tests passed. - `npm run test:lint` — OK. - Вывод pino-pretty и bindings (`requestId`, `userId`) проверен вручную. - `app.e2e-spec.ts` обновлён (ожидает два события на 500), но **не запущен**: на `develop` без моих правок `test:sqlite` падает с OOM во время jest-прогона. Это ограничение окружения, не регрессия. Нужна проверка в CI или на машине с достаточной памятью. ## Вне scope Полные тела запросов и ответов (требует нового ADR).
codex-bot added 1 commit 2026-10-20 21:44:31 +03:00
feat: log unhandled errors and pretty dev output (WealthLedger/backend#120)
Backend verify / commits (pull_request) Successful in 37s
Backend verify / security (pull_request) Successful in 15s
Backend verify / verify (pull_request) Failing after 3m40s
e3e12260ce
codex-bot added 1 commit 2026-10-24 13:44:08 +03:00
Merge branch 'develop' into feature/120-structured-error-logging
Backend verify / commits (pull_request) Failing after 32s
Backend verify / security (pull_request) Skipped
Backend verify / verify (pull_request) Skipped
d567fc31b0
codex-bot closed this pull request 2026-10-24 14:33:30 +03:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/backend#121