# Request Trace: req_c1a55e97a0aa45ce8c4c6c453a9ec080 - session_id: as_9d330fb7437341f18539f819dcace95f - active_rag_session_id: 34007a57-cf69-45f1-a0cd-c6a39bd81d42 - process_version: v2 - created_at: 2026-03-26T20:17:51.253164+00:00 ## User Message опиши сущность runtime health ## Step bootstrap ```json { "status": "started", "details": {} } ``` ## Event status ```json { "source": "orchestrator", "text": "Запрос принят и поставлен в обработку.", "payload": {}, "created_at": "2026-03-26T20:17:51.255051+00:00" } ``` ## Event status ```json { "source": "orchestrator", "text": "Запускаю процесс обработки v1.", "payload": { "process_version": "v2" }, "created_at": "2026-03-26T20:17:51.255274+00:00" } ``` ## Step bootstrap ```json { "status": "completed", "details": {} } ``` ## Step intent_router ```json { "status": "started", "details": {} } ``` ## Event status ```json { "source": "intent_router", "text": "Маршрутизирую запрос и определяю целевой workflow.", "payload": {}, "created_at": "2026-03-26T20:17:51.255716+00:00" } ``` ## Event status ```json { "source": "intent_router", "text": "Маршрут выбран: DOCUMENTATION_EXPLAIN / ENTITY_EXPLAIN.", "payload": { "intent": "DOCUMENTATION_EXPLAIN", "sub_intent": "ENTITY_EXPLAIN", "matched_intent_source": "deterministic" }, "created_at": "2026-03-26T20:17:51.267550+00:00" } ``` ## Step intent_router ```json { "status": "completed", "details": { "intent": "DOCUMENTATION_EXPLAIN", "sub_intent": "ENTITY_EXPLAIN", "matched_intent_source": "deterministic" } } ``` ## Step workflow_documentation_explain ```json { "status": "started", "details": {} } ``` ## Event status ```json { "source": "task_workflow", "text": "Запускаю workflow docs_qa.", "payload": { "intent": "DOCUMENTATION_EXPLAIN", "sub_intent": "ENTITY_EXPLAIN" }, "created_at": "2026-03-26T20:17:51.268352+00:00" } ``` ## Event status ```json { "source": "status.rag_retrieval", "text": "RAG Retrieval", "payload": { "status_block": { "id": "rag_retrieval", "title": "RAG Retrieval", "lines": [ "planned_layers: D3_ENTITY_CATALOG, D5_RELATION_GRAPH, D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS", "executed_layers: D3_ENTITY_CATALOG, D5_RELATION_GRAPH, D1_DOCUMENT_CATALOG, D0_DOC_CHUNKS", "D3_ENTITY_CATALOG: 8 hits", "D5_RELATION_GRAPH: 8 hits", "D1_DOCUMENT_CATALOG: 4 hits", "D0_DOC_CHUNKS: 4 hits" ], "append": false }, "kind": "task_progress" }, "created_at": "2026-03-26T20:17:58.665245+00:00" } ``` ## Event status ```json { "source": "status.workflow", "text": "Task Workflow", "payload": { "status_block": { "id": "workflow", "title": "Task Workflow", "lines": [ "workflow_id: docs_qa", "prompt: docs_explain_answer", "answer_mode: answered" ], "append": false }, "kind": "task_progress" }, "created_at": "2026-03-26T20:17:58.666116+00:00" } ``` ## Event status ```json { "source": "status.evidence_gate", "text": "Evidence Gate", "payload": { "status_block": { "id": "evidence_gate", "title": "Evidence Gate", "lines": [ "decision: allow", "reason: evidence_sufficient", "satisfied: retrieval_non_empty, exact_anchor_match" ], "append": false }, "kind": "task_progress" }, "created_at": "2026-03-26T20:17:58.666391+00:00" } ``` ## Event status ```json { "source": "rag_retrieval", "text": "RAG retrieval завершен.", "payload": { "planned_layers": [ "D3_ENTITY_CATALOG", "D5_RELATION_GRAPH", "D1_DOCUMENT_CATALOG", "D0_DOC_CHUNKS" ], "executed_layers": [ "D3_ENTITY_CATALOG", "D5_RELATION_GRAPH", "D1_DOCUMENT_CATALOG", "D0_DOC_CHUNKS" ], "non_empty_layers": [ "D3_ENTITY_CATALOG", "D5_RELATION_GRAPH", "D1_DOCUMENT_CATALOG", "D0_DOC_CHUNKS" ] }, "created_at": "2026-03-26T20:17:58.666626+00:00" } ``` ## Event status ```json { "source": "evidence_gate", "text": "Evidence gate оценен.", "payload": { "decision": "allow", "reason": "evidence_sufficient", "missing": [], "satisfied": [ "retrieval_non_empty", "exact_anchor_match" ] }, "created_at": "2026-03-26T20:17:58.666964+00:00" } ``` ## Event status ```json { "source": "workflow_result", "text": "Workflow docs_qa завершен.", "payload": { "workflow_id": "docs_qa", "result_type": "answer", "answer_length": 1619 }, "created_at": "2026-03-26T20:17:58.667219+00:00" } ``` ## Step workflow_documentation_explain ```json { "status": "completed", "details": { "workflow_id": "docs_qa", "meta": { "workflow_id": "docs_qa", "intent": "DOCUMENTATION_EXPLAIN", "diagnostics": { "intent": "DOCUMENTATION_EXPLAIN", "sub_intent": "ENTITY_EXPLAIN", "layers_used": [ "D3_ENTITY_CATALOG", "D5_RELATION_GRAPH", "D1_DOCUMENT_CATALOG", "D0_DOC_CHUNKS" ], "documents_found": 1, "facts_found": 0, "relations_found": 2, "openapi_fields_extracted": 0, "missing_required_fields": [], "openapi_status": { "has_path": false, "has_method": false, "has_request": false, "has_response": false }, "prompt_used": "docs_explain_answer", "llm_mode": "prose", "output_valid": true, "matched_intent_source": "deterministic", "matched_anchor_type": "entity", "matched_anchor_value": "runtime health", "exact_anchor_match": true, "docs_layers_requested": [ "D3_ENTITY_CATALOG", "D5_RELATION_GRAPH", "D1_DOCUMENT_CATALOG", "D0_DOC_CHUNKS" ], "docs_layers_with_hits": [ "D3_ENTITY_CATALOG", "D5_RELATION_GRAPH", "D1_DOCUMENT_CATALOG", "D0_DOC_CHUNKS" ], "planned_layers": [ "D3_ENTITY_CATALOG", "D5_RELATION_GRAPH", "D1_DOCUMENT_CATALOG", "D0_DOC_CHUNKS" ], "executed_layers": [ "D3_ENTITY_CATALOG", "D5_RELATION_GRAPH", "D1_DOCUMENT_CATALOG", "D0_DOC_CHUNKS" ], "non_empty_layers": [ "D3_ENTITY_CATALOG", "D5_RELATION_GRAPH", "D1_DOCUMENT_CATALOG", "D0_DOC_CHUNKS" ], "layer_diagnostics": { "D3_ENTITY_CATALOG": { "hits": 8, "top_ids": [ "architecture.telegram_notify_app", "domain.runtime_health", "logic.telegram_notification_loop" ], "top_sections": [ "RuntimeManager", "TelegramNotifyWorker", "WorkerStatus", "WorkerHealth" ] }, "D5_RELATION_GRAPH": { "hits": 8, "top_ids": [ "8595d7b82fecdb7ef579fa8961cda6799bb21970061e5bc221d4dd7a3d53fd04", "801650f8bcbfbfbefd35c14447bfef7b3c3827313db790efa7faf47db860f8c4", "79bdb0a74713df6064008179ca8c5c186dc23e4e1c5e2c9607b0bdddeba50f93", "af2a4f7c1b677b908410ba720915405e10dbd0870e30a3c6e3aa2468550ddf0e", "4e0bbeb8e97e25091a30412d8631b1d9f6bb58b5694d8b7cc632af69a9262ea8" ], "top_sections": [ "domain.runtime_health:related_logic", "domain.runtime_health:used_by", "domain.runtime_health:parent", "domain.runtime_health:part_of", "architecture.telegram_notify_app:child" ] }, "D1_DOCUMENT_CATALOG": { "hits": 4, "top_ids": [ "domain.runtime_health", "api.control_actions_endpoint", "architecture.telegram_notify_app", "logic.telegram_notification_loop" ], "top_sections": [ "Сущность runtime health", "HTTP API /actions/{action}", "Архитектура Telegram Notify App", "Цикл отправки уведомлений в Telegram" ] }, "D0_DOC_CHUNKS": { "hits": 4, "top_ids": [ "domain.runtime_health", "docs/README.md", "api.control_actions_endpoint" ], "top_sections": [ "domain.runtime_health:Details", "domain.runtime_health:Summary", "docs/README.md:Навигация", "api.control_actions_endpoint:Summary" ] } }, "query_entity_candidates": [ "runtime health" ], "resolved_entity_candidates": [], "query_anchor_candidates": [], "resolved_anchor_candidates": [ "domain.runtime_health", "docs/documentation/domain/runtime-health-entity.md", "docs/README.md" ], "anchor_candidates": [], "selected_anchor": null, "anchor_selection_reason": "", "anchor_match_type": "", "doc_ids": [ "domain.runtime_health", "docs/README.md" ], "doc_paths": [ "docs/documentation/domain/runtime-health-entity.md", "docs/README.md" ], "doc_titles": [ "Сущность runtime health", "domain.runtime_health:Details", "domain.runtime_health:Summary", "docs/README.md:Навигация", "TelegramNotifyWorker", "WorkerStatus", "WorkerHealth", "domain.runtime_health:related_logic", "domain.runtime_health:used_by", "domain.runtime_health:parent", "domain.runtime_health:part_of" ], "relation_hits_count": 2, "relation_targets": [ "domain.runtime_health:related_logic", "domain.runtime_health:used_by" ], "selected_doc_ids": [ "domain.runtime_health" ], "selected_fact_ids": [], "selected_relation_ids": [ "8595d7b82fecdb7ef579fa8961cda6799bb21970061e5bc221d4dd7a3d53fd04", "801650f8bcbfbfbefd35c14447bfef7b3c3827313db790efa7faf47db860f8c4" ], "selected_chunk_ids": [ "domain.runtime_health" ], "selected_entity_ids": [ "domain.runtime_health" ], "selected_workflow_ids": [], "fallback_doc_hits_count": 2, "fallback_used": false, "fact_hits": 0, "entity_hits": 0, "evidence_summary": { "documents": 1, "facts": 0, "entities": 2, "workflows": 0, "relations": 2, "chunks": 1, "selected_doc_ids": [ "domain.runtime_health" ], "selected_fact_ids": [], "selected_relation_ids": [ "8595d7b82fecdb7ef579fa8961cda6799bb21970061e5bc221d4dd7a3d53fd04", "801650f8bcbfbfbefd35c14447bfef7b3c3827313db790efa7faf47db860f8c4" ], "selected_chunk_ids": [ "domain.runtime_health" ], "entity_hits": 0, "openapi_signals": { "path_found": false, "method_found": false, "operation_semantics_found": false, "request_payload_found": false, "request_schema": false, "request_fields_found": false, "response_payload_found": false, "response_schema": false, "response_fields_found": false, "status_codes": false, "content_type_found": false, "examples_found": false, "payload_description": false } }, "gate_decision": "allow", "gate_decision_reason": "evidence_sufficient", "gate_missing_requirements": [], "gate_satisfied_requirements": [ "retrieval_non_empty", "exact_anchor_match" ], "openapi_evidence": { "path_found": false, "method_found": false, "operation_semantics_found": false, "request_payload_found": false, "request_schema": false, "request_fields_found": false, "response_payload_found": false, "response_schema": false, "response_fields_found": false, "status_codes": false, "content_type_found": false, "examples_found": false, "payload_description": false }, "requested_fragment_type": null, "fragment_evidence_found": [], "fragment_missing_requirements": [], "prompt": { "prompt_name": "docs_explain_answer", "system_prompt": "Ты объясняешь документацию системы.\n\nНа вход приходит JSON с полями:\n- question\n- intent\n- sub_intent\n- documents\n- facts\n- relations\n\nПравила:\n- Используй только предоставленные факты\n- Не додумывай\n- Если данных недостаточно, скажи это явно\n- Объясняй структурировано\n\nФормат ответа:\n1. Краткое описание\n2. Основные элементы\n3. Как это работает\n4. Связи с другими частями системы (если есть)", "user_prompt": "{\n \"question\": \"опиши сущность runtime health\",\n \"intent\": \"DOCUMENTATION_EXPLAIN\",\n \"sub_intent\": \"ENTITY_EXPLAIN\",\n \"documents\": [\n {\n \"layer\": \"D1_DOCUMENT_CATALOG\",\n \"path\": \"docs/documentation/domain/runtime-health-entity.md\",\n \"title\": \"Сущность runtime health\",\n \"content\": \"`runtime health` — доменная модель наблюдаемости сервиса, которая описывает общее состояние runtime и состояние отдельных компонентов. Для `test_echo_app` главным объектом наблюдения является компонент `telegram_notify`, у которого важны статус, время старта и количество успешных отправок. Эта модель используется для внешнего health-monitoring и внутренней диагностики.\",\n \"metadata\": {\n \"name\": \"runtime_health\",\n \"tags\": [\n \"domain\",\n \"health\",\n \"observability\"\n ],\n \"type\": \"domain_entity\",\n \"layer\": \"domain\",\n \"links\": [\n {\n \"type\": \"part_of\",\n \"target\": \"architecture.telegram_notify_app\"\n },\n {\n \"type\": \"used_by\",\n \"target\": \"api.health_endpoint\"\n },\n {\n \"type\": \"related_logic\",\n \"target\": \"logic.telegram_notification_loop\"\n }\n ],\n \"owner\": null,\n \"title\": \"Сущность runtime health\",\n \"doc_id\": null,\n \"module\": \"telegram_notify_app\",\n \"parent\": \"architecture.telegram_notify_app\",\n \"status\": \"draft\",\n \"repo_id\": \"/Users/alex/Dev_projects_v2/apps/test_echo_app\",\n \"section\": null,\n \"blob_sha\": \"37d4dcf470ea3de95d59e44786006e369a3ea11bf5dbf4c88877696e9183ee87\",\n \"children\": [],\n \"doc_kind\": \"misc\",\n \"entities\": [\n \"WorkerHealth\",\n \"WorkerStatus\",\n \"TelegramNotifyWorker\"\n ],\n \"updated_at\": \"2026-03-20\",\n \"doc_version\": null,\n \"document_id\": \"domain.runtime_health\",\n \"source_path\": \"docs/documentation/domain/runtime-health-entity.md\",\n \"summary_text\": \"`runtime health` — доменная модель наблюдаемости сервиса, которая описывает общее состояние runtime и состояние отдельных компонентов. Для `test_echo_app` главным объектом наблюдения является компонент `telegram_notify`, у которого важны статус, время старта и количество успешных отправок. Эта модель используется для внешнего health-monitoring и внутренней диагностики.\",\n \"artifact_type\": null,\n \"last_modified\": null,\n \"staleness_score\": null,\n \"system_component\": null\n }\n }\n ],\n \"facts\": [],\n \"entities\": [\n {\n \"layer\": \"D3_ENTITY_CATALOG\",\n \"path\": \"docs/documentation/domain/runtime-health-entity.md\",\n \"title\": \"TelegramNotifyWorker\",\n \"content\": \"TelegramNotifyWorker\",\n \"metadata\": {\n \"tags\": [\n \"domain\",\n \"health\",\n \"observability\"\n ],\n \"owner\": null,\n \"doc_id\": null,\n \"module\": \"telegram_notify_app\",\n \"repo_id\": \"/Users/alex/Dev_projects_v2/apps/test_echo_app\",\n \"section\": null,\n \"blob_sha\": \"37d4dcf470ea3de95d59e44786006e369a3ea11bf5dbf4c88877696e9183ee87\",\n \"doc_version\": null,\n \"document_id\": \"domain.runtime_health\",\n \"entity_name\": \"TelegramNotifyWorker\",\n \"source_path\": \"docs/documentation/domain/runtime-health-entity.md\",\n \"artifact_type\": null,\n \"document_type\": \"domain_entity\",\n \"last_modified\": null,\n \"staleness_score\": null,\n \"system_component\": null\n }\n },\n {\n \"layer\": \"D3_ENTITY_CATALOG\",\n \"path\": \"docs/documentation/domain/runtime-health-entity.md\",\n \"title\": \"WorkerStatus\",\n \"content\": \"WorkerStatus\",\n \"metadata\": {\n \"tags\": [\n \"domain\",\n \"health\",\n \"observability\"\n ],\n \"owner\": null,\n \"doc_id\": null,\n \"module\": \"telegram_notify_app\",\n \"repo_id\": \"/Users/alex/Dev_projects_v2/apps/test_echo_app\",\n \"section\": null,\n \"blob_sha\": \"37d4dcf470ea3de95d59e44786006e369a3ea11bf5dbf4c88877696e9183ee87\",\n \"doc_version\": null,\n \"document_id\": \"domain.runtime_health\",\n \"entity_name\": \"WorkerStatus\",\n \"source_path\": \"docs/documentation/domain/runtime-health-entity.md\",\n \"artifact_type\": null,\n \"document_type\": \"domain_entity\",\n \"last_modified\": null,\n \"staleness_score\": null,\n \"system_component\": null\n }\n }\n ],\n \"workflows\": [],\n \"relations\": [\n {\n \"layer\": \"D5_RELATION_GRAPH\",\n \"path\": \"docs/documentation/domain/runtime-health-entity.md\",\n \"title\": \"domain.runtime_health:related_logic\",\n \"content\": \"domain.runtime_health related_logic logic.telegram_notification_loop\",\n \"metadata\": {\n \"owner\": null,\n \"anchor\": \"frontmatter.links\",\n \"doc_id\": null,\n \"repo_id\": \"/Users/alex/Dev_projects_v2/apps/test_echo_app\",\n \"section\": null,\n \"blob_sha\": \"37d4dcf470ea3de95d59e44786006e369a3ea11bf5dbf4c88877696e9183ee87\",\n \"source_id\": \"domain.runtime_health\",\n \"target_id\": \"logic.telegram_notification_loop\",\n \"doc_version\": null,\n \"relation_id\": \"8595d7b82fecdb7ef579fa8961cda6799bb21970061e5bc221d4dd7a3d53fd04\",\n \"source_path\": \"docs/documentation/domain/runtime-health-entity.md\",\n \"artifact_type\": null,\n \"last_modified\": null,\n \"relation_type\": \"related_logic\",\n \"staleness_score\": null,\n \"system_component\": null\n }\n },\n {\n \"layer\": \"D5_RELATION_GRAPH\",\n \"path\": \"docs/documentation/domain/runtime-health-entity.md\",\n \"title\": \"domain.runtime_health:used_by\",\n \"content\": \"domain.runtime_health used_by api.health_endpoint\",\n \"metadata\": {\n \"owner\": null,\n \"anchor\": \"frontmatter.links\",\n \"doc_id\": null,\n \"repo_id\": \"/Users/alex/Dev_projects_v2/apps/test_echo_app\",\n \"section\": null,\n \"blob_sha\": \"37d4dcf470ea3de95d59e44786006e369a3ea11bf5dbf4c88877696e9183ee87\",\n \"source_id\": \"domain.runtime_health\",\n \"target_id\": \"api.health_endpoint\",\n \"doc_version\": null,\n \"relation_id\": \"801650f8bcbfbfbefd35c14447bfef7b3c3827313db790efa7faf47db860f8c4\",\n \"source_path\": \"docs/documentation/domain/runtime-health-entity.md\",\n \"artifact_type\": null,\n \"last_modified\": null,\n \"relation_type\": \"used_by\",\n \"staleness_score\": null,\n \"system_component\": null\n }\n }\n ],\n \"chunks\": [\n {\n \"layer\": \"D0_DOC_CHUNKS\",\n \"path\": \"docs/documentation/domain/runtime-health-entity.md\",\n \"title\": \"domain.runtime_health:Details\",\n \"content\": \"Health payload собирается runtime'ом и включает общий статус приложения и список компонентов. Для worker `telegram_notify` используются состояния `ok`, `degraded` и `unhealthy`, которые зависят от жизненного цикла фонового потока, наличия Telegram credentials и результата последней отправки.\\n\\nКлючевые metadata поля компонента — `app_started_at` и `notifications_sent`. Первое отражает UTC timestamp запуска worker'а, второе показывает число успешных доставок с момента старта runtime. Эти поля позволяют отделить реальный жизненный цикл worker'а от простого факта, что HTTP API отвечает.\\n\\nСущность `runtime health` связывает техническое состояние worker'а с операторским представлением сервиса. Через нее клиент `/health` получает не только общий статус процесса, но и диагностический контекст, достаточный для базового мониторинга и troubleshooting.\",\n \"metadata\": {\n \"tags\": [\n \"domain\",\n \"health\",\n \"observability\"\n ],\n \"type\": \"domain_entity\",\n \"order\": 2,\n \"owner\": null,\n \"doc_id\": null,\n \"module\": \"telegram_notify_app\",\n \"repo_id\": \"/Users/alex/Dev_projects_v2/apps/test_echo_app\",\n \"section\": null,\n \"blob_sha\": \"37d4dcf470ea3de95d59e44786006e369a3ea11bf5dbf4c88877696e9183ee87\",\n \"doc_kind\": \"misc\",\n \"doc_version\": null,\n \"document_id\": \"domain.runtime_health\",\n \"source_path\": \"docs/documentation/domain/runtime-health-entity.md\",\n \"section_path\": \"Details\",\n \"artifact_type\": null,\n \"last_modified\": null,\n \"section_title\": \"Details\",\n \"staleness_score\": null,\n \"system_component\": null\n }\n }\n ]\n}", "log_context": "graph.project_qa.docs.answer", "prompt_stats": { "system_chars": 393, "user_chars": 8418, "tokens_in_estimate": 2203 } }, "answer_mode": "answered", "degrade_reason": null, "degraded_reason": null, "code_intents_stubbed": false } } } } ``` ## Step finalize ```json { "status": "started", "details": {} } ``` ## Event user ```json { "source": "agent", "text": "### Описание сущности Runtime Health\n\n**Runtime Health** - это доменная модель наблюдаемости сервиса, описывающая текущее состояние runtime и его компонентов. Она предназначена для использования в системах внешнего health-monitoring и внутренней диагностики.\n\n---\n\n### Основные элементы\n\n1. **Компоненты**: \n - Главный объект наблюдения - компонент `telegram_notify`.\n \n2. **Метрики и атрибуты**:\n - Статус (`ok`, `degraded`, `unhealthy`), зависящий от жизненного цикла worker'а и результатов работы.\n - Время старта (`app_started_at`) - UTC timestamp начала работы worker'а.\n - Количество успешных отправок (`notifications_sent`) - число успешно выполненных задач с момента старта.\n\n3. **Связанные сущности**:\n - `WorkerHealth`\n - `WorkerStatus`\n - `TelegramNotifyWorker`\n\n---\n\n### Как это работает\n\nМодель собирает данные о состоянии worker'ов во время выполнения и предоставляет их через endpoint `/health`. Данные включают текущий статус приложения и подробную информацию по каждому компоненту, позволяя пользователям проводить мониторинг и диагностику.\n\nДля worker'а `telegram_notify` учитывается статус, который зависит от таких факторов как наличие credentials и успешность последних операций. Ключевая информация помогает определить реальное состояние worker'а, а не просто факт доступности HTTP API.\n\n---\n\n### Связи с другими частями системы\n\n- **Используется логикой**: логика `telegram_notification_loop` использует эту модель для отслеживания состояния worker'а.\n- **Используемый API**: данные из модели передаются на endpoint `/health`, обеспечивая внешнее наблюдение за состоянием системы.", "payload": {}, "created_at": "2026-03-26T20:17:58.668790+00:00" } ``` ## Event status ```json { "source": "orchestrator", "text": "Обработка запроса завершена.", "payload": {}, "created_at": "2026-03-26T20:17:58.671598+00:00" } ``` ## Step finalize ```json { "status": "completed", "details": {} } ``` ## Result ```json { "status": "done", "answer": "### Описание сущности Runtime Health\n\n**Runtime Health** - это доменная модель наблюдаемости сервиса, описывающая текущее состояние runtime и его компонентов. Она предназначена для использования в системах внешнего health-monitoring и внутренней диагностики.\n\n---\n\n### Основные элементы\n\n1. **Компоненты**: \n - Главный объект наблюдения - компонент `telegram_notify`.\n \n2. **Метрики и атрибуты**:\n - Статус (`ok`, `degraded`, `unhealthy`), зависящий от жизненного цикла worker'а и результатов работы.\n - Время старта (`app_started_at`) - UTC timestamp начала работы worker'а.\n - Количество успешных отправок (`notifications_sent`) - число успешно выполненных задач с момента старта.\n\n3. **Связанные сущности**:\n - `WorkerHealth`\n - `WorkerStatus`\n - `TelegramNotifyWorker`\n\n---\n\n### Как это работает\n\nМодель собирает данные о состоянии worker'ов во время выполнения и предоставляет их через endpoint `/health`. Данные включают текущий статус приложения и подробную информацию по каждому компоненту, позволяя пользователям проводить мониторинг и диагностику.\n\nДля worker'а `telegram_notify` учитывается статус, который зависит от таких факторов как наличие credentials и успешность последних операций. Ключевая информация помогает определить реальное состояние worker'а, а не просто факт доступности HTTP API.\n\n---\n\n### Связи с другими частями системы\n\n- **Используется логикой**: логика `telegram_notification_loop` использует эту модель для отслеживания состояния worker'а.\n- **Используемый API**: данные из модели передаются на endpoint `/health`, обеспечивая внешнее наблюдение за состоянием системы.", "completed_at": "2026-03-26T20:17:58.672309+00:00" } ```