From 2d1dd0d718ae0ba967e64dbbd86a0bf3a94e0a4e Mon Sep 17 00:00:00 2001 From: DanliaQwerty20 Date: Mon, 14 Sep 2026 02:02:39 +0300 Subject: [PATCH] docs: record working Channel Gateway --- README.md | 1 + catalog/services.yaml | 2 +- docs/architecture/REPOSITORY_MODEL.md | 2 +- docs/delivery/CURRENT_STATUS.md | 18 +++++++++--------- docs/delivery/ROADMAP.md | 4 ++-- docs/delivery/WORK_PLAN.md | 3 ++- 6 files changed, 16 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 66e3d35..24e9509 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ - [`test-lab`](https://github.com/portable-agent/test-lab) — системные, нагрузочные и resilience-тесты. - [`calendar-mcp`](https://github.com/portable-agent/calendar-mcp) — MCP-сервис календаря с fake-провайдером. - [`mcp-gateway`](https://github.com/portable-agent/mcp-gateway) — безопасная маршрутизация вызовов MCP. +- [`channel-gateway`](https://github.com/portable-agent/channel-gateway) — единый вход Web, Telegram и других каналов. Первый backend-срез уже проверен: русский текст превращается в предложение, после явного подтверждения проходит через Temporal и создаёт событие в Fake Calendar. Входные каналы, виджеты и реальный календарь diff --git a/catalog/services.yaml b/catalog/services.yaml index 5202982..4f2ccce 100644 --- a/catalog/services.yaml +++ b/catalog/services.yaml @@ -8,7 +8,7 @@ services: phase: 0 - name: channel-gateway repository: channel-gateway - status: planned + status: working owner: platform runtime: typescript framework: fastify diff --git a/docs/architecture/REPOSITORY_MODEL.md b/docs/architecture/REPOSITORY_MODEL.md index 64e140c..f887966 100644 --- a/docs/architecture/REPOSITORY_MODEL.md +++ b/docs/architecture/REPOSITORY_MODEL.md @@ -16,6 +16,7 @@ Portable Agent использует GitHub Organization и отдельную р | `test-lab` | Сквозные, нагрузочные и resilience-тесты | Контрактный календарный acceptance-тест готов | | `calendar-mcp` | MCP-интеграция календаря | Fake Calendar, OIDC и идемпотентность работают в общем сценарии | | `mcp-gateway` | Безопасный вызов настроенных MCP-сервисов | Stateless-маршрутизатор работает между Action и Calendar MCP | +| `channel-gateway` | Единый вход независимых каналов | Текстовый API, JWT и вызов Agent Runtime работают в общем сценарии | Каркас означает, что настроены структура и инженерные проверки. Это не означает, что правила бизнеса уже спроектированы или реализованы. @@ -24,7 +25,6 @@ Portable Agent использует GitHub Organization и отдельную р ```text portable-agent organization -├── channel-gateway единый вход для каналов ├── conversation-service состояние диалога ├── approval-service подтверждение действий ├── policy-bundle правила OPA diff --git a/docs/delivery/CURRENT_STATUS.md b/docs/delivery/CURRENT_STATUS.md index d24448d..f638cf7 100644 --- a/docs/delivery/CURRENT_STATUS.md +++ b/docs/delivery/CURRENT_STATUS.md @@ -6,20 +6,21 @@ | Репа | Что меняем или добавляем | Ожидаемый результат | Фактический результат | Следующий шаг | |---|---|---|---|---| | `.github` | Общие workflows и правила | Одинаковый CI/CD для всех сервисов | Java, Python, Node, docs, security и container workflows работают | Подключать правила к каждой новой репе | -| `contracts` | Версионируемые внешние и внутренние API | Один проверяемый источник сетевых DTO | Bundle `2.1.0` выпущен; Agent, Action и MCP Gateway берут схемы из него | Сначала описать API Channel Gateway | +| `contracts` | Версионируемые внешние и внутренние API | Один проверяемый источник сетевых DTO | Bundle `2.2.0` выпущен; добавлен Channel Gateway API | Спроектировать контракт ответа для виджета | | `action-service` | Подтверждение и надёжное выполнение | `AWAITING_APPROVAL → APPROVED → EXECUTING → SUCCEEDED/FAILED` | jOOQ, outbox, Temporal worker и вызов MCP Gateway работают; backend acceptance зелёный | Принимать команду через Channel Gateway | | `calendar-mcp` | `create_event` | Идемпотентное создание fake-события | Fake Calendar, OIDC и защита от дублей работают в общем сценарии | Оставить эталонным fake-коннектором | | `mcp-gateway` | OIDC, allowlist и MCP client | Безопасный stateless-маршрутизатор | Foundation смержен и проверен вызовом Calendar MCP | Добавлять коннекторы только по контракту | -| `deploy` | Приложения в локальном Compose | Одна команда поднимает вертикальный backend-срез | Agent, Action, Temporal, Gateway и Calendar поднимаются; GitHub smoke зелёный | Ускорить сборку и добавить следующий входной сервис | +| `deploy` | Приложения в локальном Compose | Одна команда поднимает вертикальный backend-срез | Channel, Agent, Action, Temporal, MCP Gateway и Calendar поднимаются; GitHub smoke зелёный | Ускорить сборку полного smoke | | `test-lab` | Календарный acceptance-тест | Один JWT и один контракт на всём пути | Схема Agent `2.1.0`, подтверждение и проверка часового пояса работают | Добавить повтор запроса и проверку отсутствия дубля | | `agent-runtime` | Текст в предложение действия | Детерминированное предложение встречи без скрытого выполнения | API `2.1.0`, проверка JWT и календарное предложение работают в общем сценарии | Вызывать через Channel Gateway, AI-модель пока не выбирать | -| `channel-gateway` | Общий вход каналов | Web и Telegram используют один контракт | Репа ещё не создана | Спроектировать минимальный API и создать репу | -| `widget-sdk` | Карточка подтверждения | Один UI-контракт для разных каналов | Репа ещё не создана | Начать после API Channel Gateway | +| `channel-gateway` | Общий вход каналов | Web и Telegram используют один контракт | Репа создана; JWT, OpenAPI-типы и вызов Agent работают в общем acceptance | Добавить сохранённое action в ответ после выбора orchestration | +| `widget-sdk` | Карточка подтверждения | Один UI-контракт для разных каналов | Репа ещё не создана | Спроектировать тип карточки и создать репу | ## Что уже проверено ```text русский текст + -> Channel Gateway -> Agent Runtime -> предложение calendar.create_event -> Action Service и явное подтверждение @@ -30,18 +31,17 @@ ``` Проверка запускает реальные контейнеры отдельных репозиториев по закреплённым commit SHA. Последний -зелёный запуск вошёл в `deploy` через merge `b931cc6`. +зелёный запуск вошёл в `deploy` через merge `722d33f`. ## Текущий порядок ```text -[готово] contracts 2.1.0 +[готово] contracts 2.2.0 -> [готово] MCP Gateway и Calendar MCP -> [готово] Action Service и Temporal worker - -> [готово] Agent Runtime в общем Compose + -> [готово] Channel Gateway и Agent Runtime в общем Compose -> [готово] backend acceptance - -> [следом] Channel Gateway API и репа - -> Widget SDK + -> [следом] контракт карточки подтверждения и Widget SDK -> Telegram adapter ``` diff --git a/docs/delivery/ROADMAP.md b/docs/delivery/ROADMAP.md index be03f15..db071da 100644 --- a/docs/delivery/ROADMAP.md +++ b/docs/delivery/ROADMAP.md @@ -17,8 +17,8 @@ ## Фаза 1 — Первый вертикальный срез -Состояние: backend-путь от текста до fake-календаря готов. Следующий пакет — независимый от канала -входной API, затем Widget SDK и первый адаптер. +Состояние: backend-путь от независимого Channel Gateway до fake-календаря готов. Следующий пакет — +контракт карточки подтверждения, Widget SDK и первый адаптер. - Channel Gateway и Telegram adapter. - Conversation Service и Agent Runtime. diff --git a/docs/delivery/WORK_PLAN.md b/docs/delivery/WORK_PLAN.md index 99c24a1..4009711 100644 --- a/docs/delivery/WORK_PLAN.md +++ b/docs/delivery/WORK_PLAN.md @@ -88,7 +88,8 @@ ### 6. Первый продуктовый срез -Состояние: backend-срез готов. Вход из канала, Widget SDK и реальный календарь ещё не реализованы. +Состояние: backend-срез и общий текстовый вход готовы. Widget SDK, адаптер и реальный календарь ещё не +реализованы. Выбран сценарий создания события календаря с явным подтверждением. Обязательны название, начало, конец и часовой пояс. Сначала пишется сквозной acceptance-тест с `fake-calendar`, и только затем