Initial SFERA platform baseline

This commit is contained in:
2026-05-16 19:03:49 +03:00
commit 3b845c8fce
282 changed files with 55045 additions and 0 deletions
+391
View File
@@ -0,0 +1,391 @@
# SFERA Frontend Changelog
## Правило
Каждое изменение frontend должно фиксироваться здесь.
Формат:
```text
Дата:
Автор/Codex task:
Что изменено:
Какие файлы:
Затронутые экраны:
Изменен ли UI contract:
Нужны ли новые smoke tests:
```
## Записи
### 2026-05-11
Initial UI contract created.
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Корневой маршрут frontend переведен на IDE последнего проекта; существующий экран настройки проекта вынесен на `/project-settings`; Top Project Bar дополнен настройками проекта, созданием проекта, уведомлениями и профилем; smoke-тесты обновлены под IDE-first модель и новый route настроек проекта.
Какие файлы: `frontend/sfera-web/src/app/page.tsx`, `frontend/sfera-web/src/app/project-settings/page.tsx`, `frontend/sfera-web/src/components/layout/app-shell.tsx`, `frontend/sfera-web/src/lib/i18n.ts`, `frontend/sfera-web/scripts/smoke-editor-modes.mjs`, `frontend/sfera-web/scripts/smoke-project-setup.mjs`
Затронутые экраны: основной вход frontend, IDE workspace, project settings
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, HTML smoke покрывает redirect `/` -> IDE и доступность `/project-settings`
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Fallback metadata tree приведен к контрактной модели: проект содержит top-level `Основная конфигурация`, `Расширение: <Имя>`, `SFERA`, `Среды`; расширение использует тот же configuration-like каркас без fake-объектов.
Какие файлы: `frontend/sfera-web/src/components/editor/ide-workspace.tsx`, `frontend/sfera-web/scripts/smoke-editor-modes.mjs`
Затронутые экраны: IDE workspace, левая панель metadata tree
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, HTML smoke проверяет ключевые top-level узлы левой панели
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Server-side metadata tree приведен к той же top-level модели для lazy/large-project режима; пути раскрытия теперь идут через `main-configuration`, а lazy tree сохраняет раскрытие `Основная конфигурация`.
Какие файлы: `services/api-server/src/api_server/main.py`, `services/api-server/tests/test_api.py`, `frontend/sfera-web/src/components/editor/lazy-metadata-tree.tsx`
Затронутые экраны: IDE workspace, lazy metadata tree
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, API tests покрывают структуру, HTML smoke покрывает видимые top-level узлы
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Project Settings sidebar переименован из wizard в контрактный экран настроек, добавлен список разделов настроек, AI policy и ITS/documentation access с безопасными env placeholders без реальных credentials; default privacy для нового fallback проекта изменен на `METADATA_ONLY`.
Какие файлы: `frontend/sfera-web/src/components/project-setup/project-setup-client.tsx`, `frontend/sfera-web/src/app/project-settings/page.tsx`, `frontend/sfera-web/scripts/smoke-editor-modes.mjs`
Затронутые экраны: Project Settings, Top Project Bar, Import Center
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, HTML smoke проверяет Project Settings и ITS env placeholders
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Lazy metadata tree получил полный маппинг contract-first иконок на существующие 1C SVG assets, чтобы top-level проект, основная конфигурация, ветки metadata, группы макетов/событий/движений, бизнес-процессы, задачи и внешние источники не ссылались на отсутствующие файлы.
Какие файлы: `frontend/sfera-web/src/components/editor/lazy-metadata-tree.tsx`
Затронутые экраны: IDE workspace, lazy metadata tree
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, существующий editor smoke покрывает lazy metadata tree shell
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Lazy metadata tree очищен от старого `dashboard` route variant; все переходы из дерева теперь строятся напрямую на `/editor`, включая SFERA overview как `mode=overview`.
Какие файлы: `frontend/sfera-web/src/components/editor/lazy-metadata-tree.tsx`, `frontend/sfera-web/src/components/editor/ide-workspace.tsx`
Затронутые экраны: IDE workspace, lazy metadata tree
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, существующий editor smoke покрывает IDE route
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: `/project-settings` закреплен как экран Project Settings при любом статусе проекта; INDEXED-проект больше не подменяет настройки старым workbench, поэтому настройки проекта остаются доступны из Top Project Bar по контракту.
Какие файлы: `frontend/sfera-web/src/components/project-setup/project-setup-client.tsx`, `frontend/sfera-web/scripts/smoke-project-setup.mjs`
Затронутые экраны: Project Settings
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, project setup smoke обновлен под contract-first Project Settings route
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: IDE workspace получил contract-first управление панелями: левая навигация сворачивается и меняет ширину, правая Context Inspector и нижняя tool panel сворачиваются, добавлены горячие клавиши `Alt+1`, `Alt+2`, `Alt+3`, `Ctrl+Tab`, `Ctrl+Shift+Tab`, `Ctrl+W`.
Какие файлы: `frontend/sfera-web/src/components/editor/ide-workspace.tsx`, `frontend/sfera-web/scripts/smoke-editor-modes.mjs`
Затронутые экраны: IDE workspace, Left Navigation Panel, Main Workspace, Right Context Inspector, Bottom Tool Panel, Open Objects Bar
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, editor smoke расширен проверкой contract layout markers
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Runtime smoke расширен интерактивной проверкой contract controls: `Alt+1`, `Alt+2`, `Alt+3` скрывают соответствующие панели, rail/buttons возвращают их, `Ctrl+Tab` и `Ctrl+Shift+Tab` переключают открытые объекты; после переходов между editor modes нижняя tool panel сворачивается для focused editor workflows.
Какие файлы: `frontend/sfera-web/src/components/editor/ide-workspace.tsx`, `frontend/sfera-web/scripts/smoke-editor-runtime.mjs`
Затронутые экраны: IDE workspace, панель открытых объектов, левая/правая/нижняя панели
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, runtime smoke обновлен
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Open Objects Bar получил fallback-набор IDE tabs (`Обзор`, `Модуль`, `Форма`, `TASK-123`) для пустого или минимального metadata tree, чтобы workspace сохранял contract-first модель переключаемых открытых объектов.
Какие файлы: `frontend/sfera-web/src/components/editor/ide-workspace.tsx`, `frontend/sfera-web/scripts/smoke-editor-runtime.mjs`
Затронутые экраны: IDE workspace, Open Objects Bar
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, runtime smoke проверяет минимум два переключаемых объекта
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: IDE workspace убран жесткий `min-h-[760px]`, из-за которого нижняя tool panel и fixed status bar могли перекрывать рабочую область и перехватывать клики в metadata editor на невысоких viewport.
Какие файлы: `frontend/sfera-web/src/components/editor/ide-workspace.tsx`
Затронутые экраны: IDE workspace, Main Workspace, Bottom Tool Panel, Status Bar
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, runtime smoke ловит перекрытие кликов
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Top Project Bar получил настоящий global search input; IDE workspace обрабатывает `Ctrl+K` для фокуса глобального поиска и `F5` для запуска проверки с открытием bottom tool panel и статусом запуска.
Какие файлы: `frontend/sfera-web/src/components/layout/app-shell.tsx`, `frontend/sfera-web/src/components/editor/ide-workspace.tsx`, `frontend/sfera-web/scripts/smoke-editor-runtime.mjs`
Затронутые экраны: Top Project Bar, IDE workspace, Bottom Tool Panel
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, runtime smoke расширен проверкой `Ctrl+K` и `F5`
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Fallback Left Navigation Panel получил поиск по дереву, фильтры `Все / 1C / SFERA / Среды`, отдельный scroll marker и сохранение раскрытия веток через `localStorage`.
Какие файлы: `frontend/sfera-web/src/components/editor/ide-workspace.tsx`, `frontend/sfera-web/scripts/smoke-editor-modes.mjs`, `frontend/sfera-web/scripts/smoke-editor-runtime.mjs`
Затронутые экраны: IDE workspace, Left Navigation Panel
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, editor smoke и runtime smoke расширены проверкой поиска/фильтров fallback tree
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Open Objects Bar получил pin/close controls, `Ctrl+W` закрывает активный незакрепленный объект, состояние закрытых и закрепленных объектов сохраняется в `localStorage` и восстанавливается для проекта.
Какие файлы: `frontend/sfera-web/src/components/editor/ide-workspace.tsx`, `frontend/sfera-web/scripts/smoke-editor-modes.mjs`, `frontend/sfera-web/scripts/smoke-editor-runtime.mjs`
Затронутые экраны: IDE workspace, Open Objects Bar
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, editor smoke и runtime smoke расширены проверкой pin/close/persist поведения
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Open Objects Bar поднят над рабочей областью (`z-index`) и сделан `shrink-0`, чтобы Monaco/editor canvas не перекрывал pin/close controls и не перехватывал клики.
Какие файлы: `frontend/sfera-web/src/components/editor/ide-workspace.tsx`
Затронутые экраны: IDE workspace, Open Objects Bar
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, runtime smoke ловит перекрытие кликов
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Project Settings получил недостающие контрактные секции `Пользователи и доступ`, `Интеграции задач`, `Docker/runtime adapter`, `Audit`, `Backup/restore`; sidebar anchors обновлены под эти секции, без хранения credentials.
Какие файлы: `frontend/sfera-web/src/components/project-setup/project-setup-client.tsx`, `frontend/sfera-web/scripts/smoke-editor-modes.mjs`, `frontend/sfera-web/scripts/smoke-project-setup.mjs`
Затронутые экраны: Project Settings
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, существующие smoke расширены проверкой полного набора settings sections
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Status Bar приведен к полному набору контрактных индикаторов, добавлен `Current user`, стабильные `data-status-item` markers и горизонтальный overflow для узких viewport.
Какие файлы: `frontend/sfera-web/src/components/layout/app-shell.tsx`, `frontend/sfera-web/scripts/smoke-editor-modes.mjs`, `frontend/sfera-web/scripts/smoke-editor-runtime.mjs`
Затронутые экраны: IDE workspace, Status Bar
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, editor smoke и runtime smoke расширены проверкой status markers
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Источники структуры 1С дополнены `REFERENCE_CONFIGURATION` end-to-end: backend import source registry/preflight, frontend selector/action button/source configurator и smoke checks.
Какие файлы: `services/api-server/src/api_server/main.py`, `frontend/sfera-web/src/components/project-setup/project-setup-client.tsx`, `frontend/sfera-web/scripts/smoke-editor-modes.mjs`, `frontend/sfera-web/scripts/smoke-project-setup.mjs`
Затронутые экраны: Project Settings, Import Center
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, существующие smoke расширены проверкой reference configuration source
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Metadata tree дополнен контрактными configuration-like roots для context/reference источников: при `CONTEXT_ONLY` добавляется `Context-only configuration`, при `REFERENCE_CONFIGURATION` добавляется `Reference configuration` с тем же каркасом веток, что у основной конфигурации/расширений.
Какие файлы: `services/api-server/src/api_server/main.py`, `services/api-server/tests/test_api.py`
Затронутые экраны: IDE workspace, левая панель metadata tree (lazy/server data)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, покрыто API tests для metadata tree response
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: В `LazyMetadataTree` добавлен настоящий virtual scroll для списка видимых узлов (viewport-based windowing с overscan), чтобы левая панель масштабировалась на больших деревьях без полной отрисовки всех root-level элементов.
Какие файлы: `frontend/sfera-web/src/components/editor/lazy-metadata-tree.tsx`
Затронутые экраны: IDE workspace, левая панель metadata tree (lazy mode)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, существующий `smoke:editor` проходит; typecheck зеленый
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Runtime smoke расширен проверкой контрактного scroll-контейнера левой панели (`data-virtual-scroll` для lazy tree или `data-fallback-tree-scroll` для fallback tree), чтобы регресс virtual scroll ловился автоматически.
Какие файлы: `frontend/sfera-web/scripts/smoke-editor-runtime.mjs`
Затронутые экраны: IDE workspace, левая панель metadata tree
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлен существующий runtime smoke
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: API test coverage дерева метаданных расширено для `CONTEXT_CONFIGURATION`: добавлен тест, подтверждающий появление `Context-only configuration` как configuration-like root с контрактным набором первых веток (`Сведения`, `Общие`, `Константы`).
Какие файлы: `services/api-server/tests/test_api.py`
Затронутые экраны: IDE workspace, левая панель metadata tree (server/lazy data)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, покрыто API tests
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: В `LazyMetadataTree` добавлены контрактные фильтры левой панели (`Все / 1C / SFERA / Среды`) для lazy/server режима, чтобы поведение фильтрации было единым с fallback tree.
Какие файлы: `frontend/sfera-web/src/components/editor/lazy-metadata-tree.tsx`
Затронутые экраны: IDE workspace, левая панель metadata tree (lazy mode)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, существующий runtime smoke проходит; typecheck зеленый
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Runtime smoke расширен проверкой lazy-tree фильтров: при наличии `data-lazy-tree-filter` тест переключает `SFERA`/`All` и подтверждает доступность узла `SFERA`, чтобы зафиксировать поведение новых фильтров.
Какие файлы: `frontend/sfera-web/scripts/smoke-editor-runtime.mjs`
Затронутые экраны: IDE workspace, левая панель metadata tree (lazy mode)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлен существующий runtime smoke
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Project Settings runtime smoke усилен проверкой отображения `.env.local` в секции `ITS/documentation access`, чтобы policy "credentials only via .env.local" оставалась закрепленной на UI-уровне.
Какие файлы: `frontend/sfera-web/scripts/smoke-project-setup.mjs`
Затронутые экраны: Project Settings (`ITS/documentation access`)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлен существующий project-setup runtime smoke
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: HTML smoke (`smoke:editor`) усилен контрактными маркерами Top Project Bar на корневом IDE-экране: добавлены проверки `Компания`, `Среда`, `Задача`, `Ctrl+K`, `API доступен`, `Агент онлайн`.
Какие файлы: `frontend/sfera-web/scripts/smoke-editor-modes.mjs`
Затронутые экраны: основной IDE экран, Top Project Bar
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлен существующий editor smoke
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: HTML smoke для `/project-settings` расширен security-маркерами секции `ITS/documentation access`: добавлены проверки `.env.local` и placeholder `&lt;set locally&gt;` вместе с `SFERA_ITS_USERNAME`.
Какие файлы: `frontend/sfera-web/scripts/smoke-editor-modes.mjs`
Затронутые экраны: Project Settings (`ITS/documentation access`)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлен существующий editor smoke
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Добавлен защитный API-тест на metadata tree: для обычных источников (`XML_DUMP`) в корне проекта не должны появляться contract-only roots `CONTEXT_CONFIGURATION` и `REFERENCE_CONFIGURATION`.
Какие файлы: `services/api-server/tests/test_api.py`
Затронутые экраны: IDE workspace, левая панель metadata tree (server/lazy data)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, покрыто API tests
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Runtime smoke расширен проверкой горячей клавиши `Ctrl+W`: тест выбирает немодульный открытый объект (если доступен), закрывает его через `Ctrl+W` и проверяет, что tab удален без runtime ошибок; сценарий стабилизирован возвратом к module-tab при необходимости.
Какие файлы: `frontend/sfera-web/scripts/smoke-editor-runtime.mjs`
Затронутые экраны: IDE workspace, Open Objects Bar, горячие клавиши
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлен существующий runtime smoke
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: ITS security-policy smoke-покрытие расширено: в HTML smoke добавлены `SFERA_ITS_URL`/`SFERA_ITS_PASSWORD`, в runtime smoke `Project Settings` добавлены проверки `SFERA_ITS_URL`, `SFERA_ITS_PASSWORD` и presence примера ITS URL через `input[value*='its.1c.ru/db/v838doc']`.
Какие файлы: `frontend/sfera-web/scripts/smoke-editor-modes.mjs`, `frontend/sfera-web/scripts/smoke-project-setup.mjs`
Затронутые экраны: Project Settings (`ITS/documentation access`)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлены существующие `smoke:editor` и `smoke:project-setup`
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: HTML smoke расширен англоязычной проверкой корневого IDE-экрана (`lang=en`) для Top Project Bar: `Workspace`, `Env`, `Task`, `Ctrl+K`, `API online`, `Agent online`.
Какие файлы: `frontend/sfera-web/scripts/smoke-editor-modes.mjs`
Затронутые экраны: основной IDE экран, Top Project Bar (EN UI)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлен существующий editor smoke
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Добавлен API-тест порядка top-level узлов metadata tree: при `CONTEXT_ONLY` и `REFERENCE_CONFIGURATION` соответствующие configuration-like roots должны располагаться перед `SFERA` в корне проекта.
Какие файлы: `services/api-server/tests/test_api.py`
Затронутые экраны: IDE workspace, левая панель metadata tree (server/lazy data)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, покрыто API tests
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: Runtime smoke расширен проверкой восстановления `Open Objects Bar` после перезагрузки: тест сохраняет состояние закрытых/закрепленных табов, делает `page.reload`, подтверждает сохранность `localStorage` и проверяет, что закрытый таб снова скрыт после применения состояния.
Какие файлы: `frontend/sfera-web/scripts/smoke-editor-runtime.mjs`
Затронутые экраны: IDE workspace, Open Objects Bar
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлен существующий runtime smoke
Дата: 2026-05-11
Автор/Codex task: Codex
Что изменено: API tests для `CONTEXT_CONFIGURATION` и `REFERENCE_CONFIGURATION` расширены проверкой lazy-режима (`object_limit_per_branch=0`): условные configuration-like roots должны присутствовать не только в полном, но и в lazy metadata tree response.
Какие файлы: `services/api-server/tests/test_api.py`
Затронутые экраны: IDE workspace, левая панель metadata tree (server/lazy data)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, покрыто API tests
Дата: 2026-05-12
Автор/Codex task: Codex
Что изменено: API-тест порядка корневых узлов расширен и на lazy metadata tree: для `CONTEXT_ONLY` и `REFERENCE_CONFIGURATION` условные configuration-like roots должны располагаться перед `SFERA` как в полном, так и в lazy-ответе (`object_limit_per_branch=0`).
Какие файлы: `services/api-server/tests/test_api.py`
Затронутые экраны: IDE workspace, левая панель metadata tree (server/lazy data)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, покрыто API tests
Дата: 2026-05-12
Автор/Codex task: Codex
Что изменено: Runtime smoke расширен проверкой состава `Bottom Tool Panel`: тест подтверждает видимость вкладок `Проблемы`, `Semantic diff`, `Вывод`, `История`, `Тесты`, `AI` после открытия нижней панели.
Какие файлы: `frontend/sfera-web/scripts/smoke-editor-runtime.mjs`
Затронутые экраны: IDE workspace, Bottom Tool Panel
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлен существующий runtime smoke
Дата: 2026-05-12
Автор/Codex task: Codex
Что изменено: HTML smoke расширен англоязычной проверкой `Project Settings` (`lang=en`): закреплены `Project Settings`, `Import Center`, `Task/session policy`, `Docker/runtime adapter`, `ITS/documentation access`, `Audit`, `Backup/restore` и ITS env placeholders.
Какие файлы: `frontend/sfera-web/scripts/smoke-editor-modes.mjs`
Затронутые экраны: Project Settings (EN UI)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлен существующий editor smoke
Дата: 2026-05-12
Автор/Codex task: Codex
Что изменено: Защитный API-тест для обычных источников (`XML_DUMP`) расширен и на lazy metadata tree: `CONTEXT_CONFIGURATION` и `REFERENCE_CONFIGURATION` не должны появляться в корне ни полного, ни lazy-ответа.
Какие файлы: `services/api-server/tests/test_api.py`
Затронутые экраны: IDE workspace, левая панель metadata tree (server/lazy data)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, покрыто API tests
Дата: 2026-05-12
Автор/Codex task: Codex
Что изменено: Runtime smoke `Project Settings` расширен англоязычным сценарием (`lang=en`): подтверждаются `Task/session policy`, `Docker/runtime adapter`, `ITS/documentation access`, `Audit`, `Backup/restore` и ITS env placeholders на реальном интерактивном экране.
Какие файлы: `frontend/sfera-web/scripts/smoke-project-setup.mjs`
Затронутые экраны: Project Settings (EN UI)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлен существующий project-setup runtime smoke
Дата: 2026-05-12
Автор/Codex task: Codex
Что изменено: Runtime smoke IDE расширен англоязычным сценарием (`lang=en`) для Top Project Bar и status bar; дополнительно smoke фиксирован на desktop viewport `1680x1050`, чтобы контрактные desktop-элементы вроде `Task` проверялись в реальном видимом layout.
Какие файлы: `frontend/sfera-web/scripts/smoke-editor-runtime.mjs`
Затронутые экраны: основной IDE экран, Top Project Bar, Status Bar (EN UI)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлен существующий editor runtime smoke
Дата: 2026-05-12
Автор/Codex task: Codex
Что изменено: EN runtime smoke `Project Settings` расширен проверкой `REFERENCE_CONFIGURATION` и кнопки `Reference config`, чтобы import/source contract был закреплен и в английском интерактивном сценарии.
Какие файлы: `frontend/sfera-web/scripts/smoke-project-setup.mjs`
Затронутые экраны: Project Settings (EN UI)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлен существующий project-setup runtime smoke
Дата: 2026-05-12
Автор/Codex task: Codex
Что изменено: EN runtime smoke IDE расширен проверкой `Bottom Tool Panel`: в английском сценарии подтверждаются вкладки `Problems`, `Semantic diff`, `Output`, `Change history`, `Tests`, `AI`.
Какие файлы: `frontend/sfera-web/scripts/smoke-editor-runtime.mjs`
Затронутые экраны: основной IDE экран, Bottom Tool Panel (EN UI)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлен существующий editor runtime smoke
Дата: 2026-05-12
Автор/Codex task: Codex
Что изменено: Кнопки действий `Project Settings` получили стабильный маркер `data-import-action=<SOURCE>:<mode>`; runtime smoke переведен на этот маркер и EN-сценарий теперь интерактивно запускает `Source preflight`, а не зависит от русского текста кнопки.
Какие файлы: `frontend/sfera-web/src/components/project-setup/project-setup-client.tsx`, `frontend/sfera-web/scripts/smoke-project-setup.mjs`
Затронутые экраны: Project Settings, Import Center (RU/EN UI)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлен существующий project-setup runtime smoke
Дата: 2026-05-12
Автор/Codex task: Codex
Что изменено: HTML smoke для `Project Settings` (RU/EN) расширен проверкой стабильных action markers `data-import-action="REFERENCE_CONFIGURATION:import"` и `data-import-action="XML_DUMP:check"`, чтобы import actions ловились быстрым контуром без Playwright.
Какие файлы: `frontend/sfera-web/scripts/smoke-editor-modes.mjs`
Затронутые экраны: Project Settings, Import Center (RU/EN UI)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлен существующий editor smoke
Дата: 2026-05-12
Автор/Codex task: Codex
Что изменено: `Top Project Bar` получил стабильные `data-*` маркеры для logo, selectors, actions, status badges, language switcher и profile button; `Badge` обновлен с passthrough `HTMLAttributes`, чтобы `data-*` атрибуты доходили до DOM. HTML и runtime smoke IDE переведены на эти маркеры. Дополнительно runtime smoke после reload явно возвращается на module-tab перед проверкой Monaco.
Какие файлы: `frontend/sfera-web/src/components/layout/app-shell.tsx`, `frontend/sfera-web/src/components/ui/badge.tsx`, `frontend/sfera-web/scripts/smoke-editor-modes.mjs`, `frontend/sfera-web/scripts/smoke-editor-runtime.mjs`
Затронутые экраны: основной IDE экран, Top Project Bar, Open Objects Bar
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлены существующие `smoke:editor` и `smoke:editor:runtime`
Дата: 2026-05-12
Автор/Codex task: Codex
Что изменено: `Project Settings` секции получили стабильный маркер `data-settings-section`; HTML и runtime smoke переведены на него для ключевых разделов `task-session-policy`, `docker-runtime-adapter`, `its-documentation-access` в RU/EN сценариях.
Какие файлы: `frontend/sfera-web/src/components/project-setup/project-setup-client.tsx`, `frontend/sfera-web/scripts/smoke-editor-modes.mjs`, `frontend/sfera-web/scripts/smoke-project-setup.mjs`
Затронутые экраны: Project Settings (RU/EN UI)
Изменен ли UI contract: нет
Нужны ли новые smoke tests: нет, обновлены существующие `smoke:editor` и `smoke:project-setup`
@@ -0,0 +1,35 @@
# SFERA Frontend Product Contract
SFERA - это серверная semantic IDE-платформа для 1С, а не dashboard, CRM или файловый редактор.
## Главная модель
- Проект выбирается в верхней панели.
- Пользователь долго работает внутри одного проекта.
- Основной экран - IDE workspace последнего проекта.
- Если проекта нет - пустой workspace с выбором или созданием проекта.
- Левая панель - навигация по текущему проекту.
- Центр - рабочая область.
- Правая панель - контекстные свойства.
- Нижняя зона - открытые объекты, служебные панели и status bar.
## Product Principles
SFERA должна быть metadata-first: в 1С дерево объектов конфигурации представляет прикладное решение как древовидную структуру логически связанных объектов.
Расширения являются configuration-like структурами: расширение похоже на обычную конфигурацию и тоже представляется деревом объектов.
Формы - visual-first: формы 1С предназначены для просмотра и редактирования данных и могут принадлежать объектам конфигурации или быть общими.
Окно объекта конфигурации в 1С предназначено для редактирования свойств, управления подчиненными объектами и настройки взаимодействия объектов. SFERA должна расширять эту модель, а не заменять ее dashboard-карточками.
## Official 1C Documentation
При проектировании 1C-specific поведения использовать официальные источники:
- ITS;
- v8.1c.ru;
- 1C DN;
- локальные knowledge packs.
ITS credentials нельзя хранить в документации или репозитории. Доступ передается только через `.env.local`.
+152
View File
@@ -0,0 +1,152 @@
# SFERA IDE UI Contract
## 1. Основной экран
После входа открывается:
- последний проект пользователя;
- либо пустой IDE shell, если проекта нет.
Проект выбирается только в верхней панели.
Запрещено:
- показывать список проектов в левой панели;
- делать dashboard главным экраном;
- показывать fake-данные без импортированного проекта.
## 2. Главный Layout
Экран состоит из:
```text
Top Project Bar
Left Navigation Panel
Main Workspace
Right Context Inspector
Open Objects Bar
Bottom Tool Panel
Status Bar
```
## 3. Top Project Bar
Содержит:
- SFERA logo;
- Workspace selector;
- Project selector;
- Project settings button;
- Create project button;
- Environment selector;
- Active task selector;
- Global search;
- Agent/API status;
- Notifications;
- Language;
- User profile.
Пример:
```text
SFERA | Workspace v | Project v | Настройки | + Проект | Env v | Task v | Search...
```
## 4. Левая Панель
Левая панель - навигация текущего проекта.
Она содержит:
```text
Проект: ERP Demo
├── Основная конфигурация
├── Расширение: <Имя>
├── Расширение: <Имя>
├── SFERA
└── Среды
```
Левая панель должна:
- сворачиваться;
- менять ширину;
- поддерживать поиск;
- поддерживать фильтры;
- поддерживать lazy loading;
- поддерживать virtual scroll;
- сохранять состояние раскрытия узлов.
## 5. Центр
Центр - основная рабочая область.
Там открываются:
- Object Workspace;
- Code Workspace;
- Form Designer;
- Report Designer;
- СКД Designer;
- Layout Designer;
- Project Settings;
- Task Workspace;
- Review Workspace;
- Runtime Workspace;
- Knowledge Workspace.
## 6. Правая Панель
Правая панель - Context Inspector.
Она показывает свойства выбранного объекта, элемента формы, процедуры, задачи, отчета, регистра, расширения.
Она не является навигацией.
## 7. Open Objects Bar
Внизу отображается панель открытых объектов:
```text
[Документ.ЗаказКлиента] [ФормаДокумента] [Модуль объекта] [TASK-123]
```
Поддерживает:
- быстрое переключение;
- закрытие;
- закрепление;
- восстановление после перезагрузки.
## 8. Bottom Tool Panel
Сворачиваемая служебная панель:
- Проблемы;
- Semantic diff;
- Вывод;
- История;
- Тесты;
- AI.
## 9. Status Bar
- Snapshot;
- Agent;
- Parser;
- Diagnostics;
- Active Task;
- Privacy;
- AI tokens;
- Current user.
## 10. Горячие Клавиши
- `Alt+1` - левая панель;
- `Alt+2` - правая панель;
- `Alt+3` - нижняя панель;
- `Ctrl+Tab` - следующий открытый объект;
- `Ctrl+Shift+Tab` - предыдущий объект;
- `Ctrl+W` - закрыть текущий объект;
- `Ctrl+K` - глобальный поиск;
- `F5` - запустить проверку.
@@ -0,0 +1,301 @@
# SFERA Metadata Tree Contract
## 1. Верхний Уровень
```text
Проект
├── Основная конфигурация
├── Расширение: <name>
├── Расширение: <name>
├── SFERA
└── Среды
```
## 2. ConfigurationLikeRoot
Один компонент используется для:
- основной конфигурации;
- расширений;
- context-only конфигураций;
- reference конфигураций.
Типы:
- `MAIN_CONFIGURATION`;
- `EXTENSION`;
- `CONTEXT_CONFIGURATION`;
- `REFERENCE_CONFIGURATION`.
## 3. Структура ConfigurationLikeRoot
- Сведения;
- Общие;
- Константы;
- Справочники;
- Документы;
- Журналы документов;
- Перечисления;
- Отчеты;
- Обработки;
- Планы видов характеристик;
- Планы счетов;
- Планы видов расчета;
- Регистры сведений;
- Регистры накопления;
- Регистры бухгалтерии;
- Регистры расчета;
- Бизнес-процессы;
- Задачи 1С;
- Внешние источники данных.
## 4. Узел "Общие"
- Подсистемы;
- Общие модули;
- Параметры сеанса;
- Роли;
- Общие реквизиты;
- Планы обмена;
- Критерии отбора;
- Подписки на события;
- Регламентные задания;
- Боты;
- Функциональные опции;
- Параметры функциональных опций;
- Определяемые типы;
- Хранилища настроек;
- Общие команды;
- Группы команд;
- Общие формы;
- Общие макеты;
- Общие картинки;
- XDTO-пакеты;
- Web-сервисы;
- HTTP-сервисы;
- WS-ссылки;
- WebSocket-клиенты;
- Сервисы интеграции;
- Цвета палитры;
- Элементы стиля;
- Стили;
- Языки.
## 5. Object Tree Templates
### Справочник
- Обзор;
- Свойства;
- Реквизиты;
- Табличные части;
- Формы;
- Команды;
- Макеты;
- Модуль объекта;
- Модуль менеджера;
- Права;
- Данные;
- Где используется;
- Кто читает;
- Кто записывает;
- Версии;
- Проверки.
### Документ
- Обзор;
- Свойства;
- Реквизиты;
- Табличные части;
- Формы;
- Команды;
- Макеты;
- Движения;
- Модуль объекта;
- Модуль менеджера;
- Права;
- Данные;
- Где используется;
- Кто создает;
- Кто проводит;
- Версии;
- Проверки.
### Регистр Сведений
- Обзор;
- Свойства;
- Измерения;
- Ресурсы;
- Реквизиты;
- Формы;
- Команды;
- Макеты;
- Модуль набора записей;
- Модуль менеджера;
- Права;
- Данные;
- Кто читает;
- Кто записывает;
- Версии;
- Проверки.
### Регистр Накопления
- Обзор;
- Свойства;
- Измерения;
- Ресурсы;
- Реквизиты;
- Формы;
- Команды;
- Макеты;
- Модуль набора записей;
- Модуль менеджера;
- Права;
- Данные;
- Кто читает;
- Кто записывает;
- Документы-регистраторы;
- Версии;
- Проверки.
### Отчет
- Обзор;
- Свойства;
- СКД;
- Формы;
- Команды;
- Макеты;
- Модуль объекта;
- Права;
- Данные;
- Версии;
- Проверки.
### Обработка
- Обзор;
- Свойства;
- Формы;
- Команды;
- Макеты;
- Модуль объекта;
- Права;
- Данные;
- Интеграции;
- Версии;
- Проверки.
### Общий Модуль
- Обзор;
- Свойства;
- Процедуры;
- Функции;
- Экспортные методы;
- Запросы;
- Записи;
- Вызовы;
- Кто вызывает;
- Транзакции;
- Runtime;
- Версии;
- Проверки.
### Форма
- Дизайнер формы;
- Свойства;
- Реквизиты формы;
- Элементы;
- Команды;
- События;
- Модуль формы;
- Связи с объектом;
- Данные;
- Версии;
- Проверки.
### Роль
- Обзор;
- Свойства;
- Права на объекты;
- Права на реквизиты;
- Права на табличные части;
- RLS;
- Унаследованные права;
- Отличия от default rights;
- Пользователи с ролью;
- Проверки безопасности;
- Версии;
- Данные.
### HTTP-Сервис
- Обзор;
- Свойства;
- URL-шаблоны;
- Методы;
- Обработчики;
- Контракты JSON;
- Безопасность;
- Runtime;
- Тестовые запросы;
- Версии;
- Проверки.
### План Обмена
- Обзор;
- Свойства;
- Узлы;
- Состав обмена;
- Авторегистрация;
- Правила регистрации;
- Формы;
- Команды;
- Модуль объекта;
- Модуль менеджера;
- Runtime;
- Данные;
- Версии;
- Проверки.
### Регламентное Задание
- Обзор;
- Свойства;
- Расписание;
- Обработчик;
- Параметры;
- Runtime;
- Связанные интеграции;
- Версии;
- Проверки.
## 6. Узел "Данные"
Узел "Данные" добавляется к объектам, где это применимо.
Режимы:
- `METADATA_ONLY`;
- `SANITIZED_SAMPLE`;
- `TEST_DATA`;
- `FULL_DATA`.
По умолчанию:
- `METADATA_ONLY`.
Правила:
- `FULL_DATA` только по RBAC;
- `FULL_DATA` всегда audit logged;
- AI не получает данные без explicit approval;
- данные привязаны к environment;
- данные маскируются по умолчанию.
@@ -0,0 +1,194 @@
# SFERA Project Settings Contract
## 1. Назначение
Настройки проекта - один из главных экранов SFERA.
Открывается из Top Project Bar через кнопку рядом с Project selector.
## 2. Разделы Настроек
```text
Основные сведения
Источники структуры 1С
Импорт конфигурации
Среды
Агенты
Расширения
Knowledge sources
Privacy
AI policy
Task/session policy
Пользователи и доступ
Интеграции задач
Docker/runtime adapter
ITS/documentation access
Audit
Backup/restore
```
## 3. Основные Сведения
Поля:
- Название проекта;
- Код проекта;
- Описание;
- Workspace;
- Владелец;
- Тип проекта;
- Язык интерфейса;
- Язык кода 1С по умолчанию: русский / английский;
- Версия платформы;
- Режим совместимости.
## 4. Источники Структуры 1С
Поддерживаемые источники:
- `.cf` файл;
- `.cfe` файл;
- XML dump;
- Live infobase через Designer CLI;
- EPF agent snapshot;
- CFE agent snapshot;
- EDT project;
- Архив выгрузки;
- BSL/XML file tree;
- Context-only configuration;
- Reference configuration.
Для каждого источника:
- тип;
- статус;
- последний импорт;
- последняя ошибка;
- версия платформы;
- режим совместимости;
- количество объектов;
- количество модулей;
- количество форм;
- количество расширений.
## 5. Среды
- Dev;
- Test;
- Stage;
- Prod.
Для среды:
- тип;
- подключение;
- агент;
- источник данных;
- privacy mode;
- разрешение data preview;
- версия платформы;
- активные расширения.
## 6. Агенты
- EPF agent;
- CFE agent;
- runtime agent;
- diagnostic agent.
Поля:
- agent id;
- version;
- environment;
- last heartbeat;
- status;
- compatibility;
- download/update.
## 7. Расширения
Таблица:
- имя;
- версия;
- назначение;
- активно;
- безопасный режим;
- защита от опасных действий;
- область действия;
- источник;
- последний import;
- статус применимости.
Действия:
- загрузить `.cfe`;
- получить из live base;
- обновить snapshot;
- проверить применимость;
- сравнить с основной конфигурацией;
- построить effective configuration.
## 8. ITS/Documentation Access
Документация 1С используется для проверки 1С-specific поведения.
Источники:
- ITS;
- v8.1c.ru;
- 1C DN;
- локальные knowledge packs.
ITS credentials нельзя хранить в репозитории.
Использовать только переменные окружения:
```dotenv
SFERA_ITS_URL=<ITS_URL>
SFERA_ITS_USERNAME=<ITS_USERNAME>
SFERA_ITS_PASSWORD=<ITS_PASSWORD>
```
Локальный файл:
```text
.env.local
```
Пример для локальной настройки:
```dotenv
SFERA_ITS_URL=https://its.1c.ru/db/v838doc#browse:13:-1:7
SFERA_ITS_USERNAME=<set locally>
SFERA_ITS_PASSWORD=<set locally>
```
Запрещено:
- коммитить логин или пароль;
- писать логин или пароль в markdown;
- писать логин или пароль в Dockerfile;
- выводить логин или пароль в logs.
## 9. Privacy
- `METADATA_ONLY`;
- `SANITIZED_SAMPLE`;
- `TEST_DATA`;
- `FULL_DATA`.
По умолчанию:
- `METADATA_ONLY`.
## 10. Task/Session Policy
- `STRICT`;
- `SOFT`;
- `LOCAL_DEV`.
Enterprise default:
- `STRICT`.