Память
Обзор экрана
Что это. Экран «Память» — личный рабочий стол пользователя для просмотра и управления накопленным контекстом. Память структурирована по скоупам (личное → коллекция → спейс → проект): более узкий скоуп дополняет широкий, а не замещает. Открывается по вкладке «Память» в навигации; доступна любому аутентифицированному пользователю — только собственная память (per-user, permission=self).
Как устроено. Двухколоночная раскладка. Левая колонка — дерево скоупов
(GET /api/memory/scopes): для каждого скоупа
показаны права (замок у read-only) и нудж-счётчик ожидающих предложений консолидации. Фасет
«только редактируемые» скрывает скоупы, в которых нет прав на запись. Правая часть меняется в
зависимости от выбранного скоупа и активной вкладки.
Что тут делают.
-
Просматривают записи. По выбранному скоупу загружается список записей (
GET /api/memory/records): секция «Мои правила» (rules/bindings — ручное управление) и «Извлечено системой» (fact/terminology — автоматика). На карточке: текст, скоуп, provenance и last_used_at. «Раскрыть usage» показывает недавнюю активность ресурса скоупа (GET /api/memory/records/:kind/:id/usage). -
Редактируют записи. Клик «Изменить» открывает Drawer. По умолчанию поля read-only — кнопка «Изменить» разблокирует их; diff-preview показывает, что изменилось. «Сохранить» → PUT правила или соответствия. Для скоупов под замком Drawer доступен только на чтение. Включить/отключить — тоггл на карточке (
POST /api/memory/rules/:id/toggle/POST /api/memory/bindings/:id/toggle/ факты и термины аналогично). Архивировать = тоггл в false (обратимо). -
Консолидируют память. Кнопка «Консолидировать» (с нудж-бейджем, если есть ожидающие предложения) запускает async-джоб (
POST /api/memory/consolidate→ 202 + job_id). Прогресс опрашивается черезGET /api/memory/jobs/:jobId. 409 если консолидация уже запущена. -
Разбирают предложения. Панель «Предложено» показывает кросс-скоуп-предложения консолидации (
GET /api/memory/proposals?status=pending). Для каждого: одобрить, исправить и принять (с правкой текста), отклонить. Одобренные и исправленные пишутся в fact через approve/amend. -
Работают с библиотекой организации. Панель библиотеки — общий банк правил/соответствий, которые члены организации могут публиковать и забирать. Опубликовать: type-to-confirm диалог →
POST /api/memory/library/publish(только rule/binding, примечание не публикуется). Забрать копию себе →POST /api/memory/library/:id/take. Отозвать (автор или org_admin) →DELETE /api/memory/library/:id. Забранные у других копии при отзыве не удаляются.
Сгенерировано из
docs/matrices/fm/memory.yaml.
| FM | Элемент | Действие | Поведение | Роли (доступ) | Статус |
|---|---|---|---|---|---|
| FM-203 | Дерево скоупов (левая колонка) | Выбрать скоуп; фасет «только редактируемые»; нудж-счётчик предложений | Дерево скоупов памяти: личное → коллекция → спейс → проект. Фасет «только редактируемые» скрывает скоупы без edit-доступа (замок). Нудж-счётчик числа ожидающих предложений консолидации. Данные — GET /api/memory/scopes (права/счётчики/нудж). | employee, spaceman, supervisor, org_admin, site_admin | done |
| FM-204 | Список записей (секции «Мои правила» / «Извлечено системой») | Создать правило, Создать соответствие, Вкл/Выкл, Изменить, Архивировать, Раскрыть usage | Две секции для выбранного скоупа: «Мои правила» (rules/bindings, ручное управление) и «Извлечено системой» (fact/terminology, авто). Данные — GET /api/memory/records?scope_type=&scope_id=. Карточка: текст, скоуп, provenance/last_used_at. Вкл/Выкл — toggle. «Архивировать» = toggle(false). «Раскрыть usage» расширяет карточку (GET /api/memory/records/:kind/:id/usage). | employee, spaceman, supervisor, org_admin, site_admin | done |
| FM-205 | Drawer правки (read-only по умолчанию, diff-preview) | Изменить правило/соответствие, Показать изменения, Сохранить | Drawer открывается при клике «Изменить» на карточке. По умолчанию read-only. Кнопка «Изменить» разблокирует поля ввода. Diff-preview показывает отличия от текущего значения. «Сохранить» → PUT /api/memory/rules/:id или PUT /api/memory/bindings/:id. Для read-only скоупов кнопка «Изменить» недоступна. | employee, spaceman, supervisor, org_admin, site_admin | done |
| FM-206 | Панель «Предложено» (review предложений консолидации) | Одобрить, Исправить и принять, Отклонить | Панель предложений кросс-скоуп-повышения (список GET /api/memory/proposals?status=pending). Каждое предложение: текст, источник/цель скоупа. Одобрить → POST …/approve. Исправить и принять → POST …/amend (с new_text). Отклонить → POST …/reject. 409 если уже разрешено. | employee, spaceman, supervisor, org_admin, site_admin | done |
| FM-207 | Кнопка «Консолидировать» (нудж-бейдж) | Запустить консолидацию | Кнопка в шапке экрана. Нудж-бейдж отображает число ожидающих предложений (pending > 0). Клик → POST /api/memory/consolidate (202 + job_id). Прогресс опрашивается через GET /api/memory/jobs/:jobId. 409 если консолидация уже запущена (pending/running). | employee, spaceman, supervisor, org_admin, site_admin | done |
| FM-208 | Панель библиотеки организации | Опубликовать (type-to-confirm), Забрать, Отозвать | Список публикаций организации (GET /api/memory/library?org_id=). Опубликовать ручной элемент: type-to-confirm диалог → POST /api/memory/library/publish (только rule/binding; note не публикуется). Забрать копию себе → POST /api/memory/library/:id/take. Отозвать публикацию (автор ИЛИ org_admin) → DELETE /api/memory/library/:id. | employee, spaceman, supervisor, org_admin | done |