GraphQL public API: миграция с WebSocket-RPC в v2.0
## Что это
Сейчас public API — это WebSocket-RPC (`@rox-one/server-core`) с JSON-RPC обёрткой. Vision v2.0: добавить GraphQL-эндпоинт (`/graphql` + subscriptions) как канонический способ для third-party интеграций.
Что даёт GraphQL:
- Type-safe query из любого языка (graphql-codegen)
- Self-documenting через introspection
- Subscriptions: real-time session events без vendor-specific WS-протокола
- Federation: команда может объединить ROX-схему со своими сервисами
- Совместимость с Linear, GitHub, Shopify, Stripe API-стилем — разработчики уже знают
Архитектурно: WebSocket-RPC остаётся для internal (Electron preload bridge), GraphQL — для external (CLI, third-party, webhooks).
## Зачем
Сегодня каждая третья интеграция, которую хочется встроить, упирается в «как нам обратиться к ROX-у программно?». REST endpoints — fragmented, WebSocket-RPC — vendor-specific. GraphQL — индустриальный стандарт для product-API, особенно у Linear/GitHub-класса инструментов.
## План
- ADR в Phase-2 prep (Phase 9)
- Эндпоинт hello-world в v1.1
- Federation-ready schema в v2.0
- Sub-second p99 latency через DataLoader + persisted queries
## Источники вдохновения
- [linear/linear-release](https://github.com/linear/linear-release)
- [tursodatabase/agentfs](https://github.com/tursodatabase/agentfs)
- [hashintel/hash](https://github.com/hashintel/hash)