## 1. Базовый logger и конфигурация - [x] 1.1 Добавить валидируемый `LOG_LEVEL`, его production default и пример в backend-конфигурацию. - [x] 1.2 Добавить `nestjs-pino`, настроить JSON stdout, уровни debug/info/warn/error, redaction и allowlisted HTTP serializers. - [x] 1.3 Подключить Pino к Nest bootstrap с lifecycle-событиями запуска и штатного завершения. ## 2. Контекст и HTTP-события - [x] 2.1 Добавить request context на `AsyncLocalStorage`: server-generated request ID, безопасный client request ID и `X-Request-ID` response header. - [x] 2.2 Настроить CORS для чтения `X-Request-ID` browser-клиентом. - [x] 2.3 Добавить единственное HTTP completion-событие с безопасным route template, duration и уровнем по outcome. - [x] 2.4 Передавать public error code и stack 5xx из exception filter в completion-событие без изменения problem response. ## 3. Миграция backend-событий - [x] 3.1 Перевести T-Bank client на allowlisted success/retry/failure события с duration, gRPC code и attempts. - [x] 3.2 Перевести существующие Portfolio и Upcoming Events события на Pino logger и удалить прямой `Nest Logger`. - [x] 3.3 Добавить внутренние user ID и brokerage account ID в контекст только в местах, где они уже доступны. ## 4. Проверка - [x] 4.1 Добавить unit-тесты logger и config validation для уровней, JSON-формата и отсутствия запрещённых полей. - [x] 4.2 Добавить backend e2e-тесты `X-Request-ID`, CORS, одного completion-события, 5xx error code/stack и безопасной деградации logging failure. - [x] 4.3 Добавить тесты T-Bank client для уровней success/retry/final failure и correlation context. - [x] 4.4 Выполнить `npm run lint`, `npm test`, `npm run build` в backend и `openspec validate add-backend-structured-logging --type change --store wealth-ledger-specs`.