CI / changes (push) Successful in 17s
CI / commitlint (push) Has been skipped
CI / openapi (push) Successful in 26s
CI / web (push) Successful in 46s
CI / go (push) Successful in 1m1s
CI / bird2 (push) Successful in 17s
CI / release (push) Failing after 2m22s
Web UI полностью переведён с SvelteKit на новый стек: React 19, TanStack Router/Query/Table/Virtual, shadcn/ui (base-nova) и ReUI enterprise-компоненты (data-grid, filters, autocomplete). Новый код разложен по слоям: packages/ui (shadcn-примитивы), apps/web (роуты, shared-обёртки, ReUI-адаптации). BREAKING CHANGE: меняется структура и инструментинг фронтенда. - apps/web/ — новый Vite + React-проект (@evobgp/web), file-based роуты TanStack Router; экраны dashboard, modules, monitoring, network, operations, schedule, settings, tenant-settings, access, directories. - packages/ui/ — shadcn/ui-примитивы (@evobgp/ui) с общими стилями globals.css и cn-утилитой; CLI shadcn запускается из apps/web. - apps/web/src/components/reui/ — enterprise-паттерны ReUI. - pnpm workspace (pnpm-workspace.yaml, pnpm-lock.yaml, tsconfig.base.json) заменяет npm-проект в web/. - web/ переименован в web-legacy-svelte/ (архив-референс для миграции); импорты оттуда запрещены правилом WEB-22. - CI (.gitea/workflows/ci.yaml): job web переведён на Node 22 + pnpm 10 (typecheck/lint/build через pnpm --filter @evobgp/web); пути триггеров обновлены под apps/web|packages/ui. - deploy/docker/evobgp-web/Dockerfile: сборка из корня репозитория, pnpm install --frozen-lockfile, выход dist из apps/web/dist. - .cursor/rules/web-shadcn.mdc, context7-stack.mdc, engineering.mdc, AGENTS.md — обновлены под React-стек (WEB-01..WEB-22, DOC-SYNC-06/07). Проверки WEB-19 локально: typecheck, lint, build — exit 0. Co-authored-by: Cursor <[email protected]>
101 lines
5.4 KiB
Plaintext
101 lines
5.4 KiB
Plaintext
---
|
||
description: Context7 — закреплённые ID библиотек и документации стека EvoBGP
|
||
alwaysApply: true
|
||
---
|
||
|
||
# Context7 — стек EvoBGP
|
||
|
||
При вопросах об API, синтаксисе, конфигурации и миграциях библиотек **сначала** `query-docs` с ID из таблицы ниже. Шаг `resolve-library-id` **пропускать**, если библиотека уже перечислена (кроме неоднозначного случая).
|
||
|
||
Локальные версии: `go.mod`, `web/package.json`. При расхождении с ID — предпочитать версию из репозитория.
|
||
|
||
---
|
||
|
||
## Backend (Go)
|
||
|
||
| Библиотека | Context7 ID | Версия в проекте | Когда |
|
||
|------------|-------------|------------------|-------|
|
||
| Go stdlib | `/golang/go/go1_24_6` | Go 1.24 | `net/http`, `context`, тесты, concurrency |
|
||
| pgx | `/websites/pkg_go_dev_github_com_jackc_pgx_v5` | v5.7.2 | PostgreSQL, pool, транзакции, типы |
|
||
| Prometheus Go client | `/prometheus/client_golang` | v1.20.5 | метрики, `/metrics`, middleware |
|
||
| modernc SQLite | `/websites/pkg_go_dev_modernc_org_sqlite` | v1.34.5 | SQLite-бэкенд, миграции sqlite |
|
||
| miekg/dns | `/miekg/dns` | v1.1.72 | DNS-запросы, DoH, pipeline |
|
||
|
||
---
|
||
|
||
## HTTP-контракт и спецификации
|
||
|
||
| Библиотека | Context7 ID | Версия в проекте | Когда |
|
||
|------------|-------------|------------------|-------|
|
||
| OpenAPI | `/oai/openapi-specification` | 3.x в `docs/openapi.yaml` | схемы, operationId, problem+json |
|
||
| Redocly CLI | `/redocly/redocly-cli` | CI `@redocly/cli` | lint OpenAPI, `npx @redocly/cli lint` |
|
||
|
||
---
|
||
|
||
## Web UI (`apps/web/` + `packages/ui/`)
|
||
|
||
| Библиотека | Context7 ID | Версия в проекте | Когда |
|
||
|------------|-------------|------------------|-------|
|
||
| React | `/facebook/react` | ^19.2 | hooks, components, JSX |
|
||
| TanStack Router | `/tanstack/router` | ^1.130 | file-based routes, `createFileRoute`, `useSearch`, `Link` |
|
||
| TanStack Query | `/tanstack/query` | ^5.90 | `useQuery`, `useMutation`, `queryOptions`, invalidation |
|
||
| TanStack Table | `/websites/tanstack_table` | ^8.21 | data-grid колонки, сортировка (ReUI) |
|
||
| TanStack Virtual | `/tanstack/virtual` | ^3.14 | виртуализация списков (ReUI data-grid) |
|
||
| Vite | `/vitejs/vite/v7.3.1` | ^7.3.1 | dev server, build, plugins |
|
||
| TypeScript | `/microsoft/typescript/v5.9.3` | ^5.9.3 | типы, strict, tsconfig |
|
||
| Tailwind CSS | `/tailwindlabs/tailwindcss.com` | ^4.1 | v4, `@tailwindcss/vite`, утилиты |
|
||
| shadcn/ui (React) | MCP `plugin-shadcn-shadcn` + https://ui.shadcn.com/docs | base-nova | примитивы `@evobgp/ui/components/*` |
|
||
| ReUI | https://reui.io/llms.txt + MCP с `registries: ["@reui"]` | registry | enterprise: data-grid, filters, autocomplete |
|
||
| react-hook-form | `/react-hook-form` | ^7.60 | формы, controller |
|
||
| Zod | `/websites/zod_dev_v4` | ^3.25 / ^4 (apps/web) | схемы валидации |
|
||
| recharts | `/recharts/recharts` | 3.8.0 | графики через shadcn `Chart` |
|
||
| next-themes | `/pacocoursey/next-themes` | ^0.4 | dark/light theme provider |
|
||
| sonner | `/emilkowalski/sonner` | ^1.7 | toast notifications |
|
||
| lucide-react | `/lucide-icons/lucide` | ^0.468 | иконки |
|
||
|
||
UI-правила репозитория: `.cursor/rules/web-shadcn.mdc` (MCP + shadcn/ui React docs — первичный источник для компонентов).
|
||
|
||
---
|
||
|
||
## Data plane / BGP
|
||
|
||
| Библиотека | Context7 ID | Версия в проекте | Когда |
|
||
|------------|-------------|------------------|-------|
|
||
| BIRD 2 | `/llmstxt/bird_xmsl_dev_llms_txt` | BIRD2 в compose | `birdfmt`, фильтры, протоколы |
|
||
| BIRD (исходники) | `/cz-nic/bird` | — | низкоуровневый синтаксис daemon |
|
||
|
||
Сетевые правила: `.cursor/rules/networking-bird.mdc`.
|
||
|
||
---
|
||
|
||
## DevOps
|
||
|
||
| Библиотека | Context7 ID | Версия в проекте | Когда |
|
||
|------------|-------------|------------------|-------|
|
||
| Docker Compose | `/docker/compose` | `deploy/compose/` | сервисы, profiles, volumes |
|
||
| Docker | `/docker/docs` | — | образы, bake, networking |
|
||
|
||
---
|
||
|
||
## Приоритет источников
|
||
|
||
1. **Контракт HTTP** — `docs/openapi.yaml` (не Context7).
|
||
2. **Context7** — синтаксис и API библиотек из таблицы.
|
||
3. **Локальные docs** — `docs/`, `web/README.md`, `AGENTS.md`.
|
||
4. **Официальный сайт** — BIRD: https://bird.network.cz/?get_doc (если Context7 не покрыл кейс).
|
||
|
||
## Примеры запросов
|
||
|
||
```
|
||
/docs /facebook/react hooks useState useEffect
|
||
/docs /tanstack/router createFileRoute useSearch Link
|
||
/docs /tanstack/query useQuery useMutation queryOptions
|
||
/docs /golang/go/go1_24_6 net/http ServeMux pattern matching
|
||
/docs /websites/pkg_go_dev_github_com_jackc_pgx_v5 pool acquire rows
|
||
/docs /llmstxt/bird_xmsl_dev_llms_txt filter bgp import
|
||
```
|
||
|
||
## Не через Context7
|
||
|
||
Рефакторинг `internal/*`, бизнес-логика EvoBGP, code review — код репозитория и `codegraph`. Context7 — только внешние библиотеки и инструменты.
|