Skip to main content
OrbitPilot

Статус памяти — одна страница, одна истина (BL-428)

Что это за страница

OrbitPilot уже отслеживал в нескольких разных местах, что он помнит о вас: карточка сборки на панели управления, небольшие значки рядом с каждым Blink, и строка, которую он добавляет в свои собственные ответы, когда память устарела. Слова владельца в день выпуска: время обновления, которое молчит о SCOPE — "обновлено сегодня, но нет доступа" — это правдивая фраза, которая все равно оставляет вас в замешательстве. Страница Статуса памяти (/orbitpilot/memory-status/) собирает все это на одной странице: когда память последний раз изменилась и как, каждый источник, в настоящее время в ней с количеством, и — для всего, что отсутствует — честная причина, почему, простым языком.

Что она показывает

  • Последнее обновление. Время последнего изменения памяти и метод — полное восстановление, быстрое обновление или автоматическое/ручное обновление из одного сохраненного изменения — плюс, если память устарела, деградировала или никогда не была создана, точная фраза, которую OrbitPilot прикрепил бы к ответу прямо сейчас.
  • В вашей памяти. Каждый источник с реальным содержанием в памяти — Blinks, Цели, Проекты, Бизнесы, файлы и другие — с количеством элементов и когда он был последний раз собраны.
  • Не в вашей памяти. Каждый другой доступный источник, каждый с действительной причиной: отключен для всего сайта, не по вашему плану (обновление dобавит его), файлы, которые ожидают, чтобы быть перемещенными в защищенную папку файлов OrbitPilot, или просто еще не были захвачены в сборку.

Обновление памяти с этой страницы

Начиная с BL-435 карточка Последнее обновление содержит два действия обновления —  Быстрое обновление (чтение только того, что изменилось с последней сборки; дешево) и  Полное восстановление (чтение и повторное встраивание всего; использует больше AI-кредитов) — так что никому не нужно покидать страницу, чтобы действовать на основе того, что она показывает. Это те же самые элементы управления, что и в окне чата OrbitPilot  меню  Память, по правилу владельца "не дублировать код": ОДИН общий шаблонный фрагмент (templates/_orbitpilot_rebuild_controls.html) отображается на обоих поверхностях, ОДИН конечный пункт (orbitpilot_rebuild_memory, POST mode=soft|hard), тот же диалог подтверждения, то же исцеление застрявшей сборки при нажатии (BL-404 reaper) и то же живое кольцо прогресса (BL-410). Кнопки подключены делегированием на уровне документа [data-op-rebuild] в static/js/orbitpilot-widget.js; согласно тому, как этот скрипт загружается с задержкой, orbitpilot-loader.js ставит в очередь нажатие, которое происходит до загрузки и воспроизводит его (rebuildFromButton), так же, как он защищает первое нажатие кнопки чата. Когда сборка завершена, эта страница перезагружается, чтобы "Последние обновления" повторно прочитались из get_memory_status_page, вместо того чтобы устаревать. Защита: orbitpilot/test_memory_status_page.py::RebuildControlsTests терпит неудачу в тот момент, когда кнопки копируются во второй шаблон или зарегистрирован второй маршрут восстановления.

Где это найти

Ссылка "🧠 Статус памяти" находится в нижней панели инструментов окна чата OrbitPilot — в той же строке, что и Новое / История / Копировать / Этот чат — так что она находится в одном нажатии от каждого разговора, закрепленного или в полном экране. Гостям видна та же ссылка, но она ведет к созданию аккаунта вместо этого, поскольку пока нет личной памяти для отчета.

Как это работает — для администраторов

Сегодня ничего настраивать не нужно. Страница открыта для каждого вошедшего пользователя; дальнейшее ограничение по плану (например, ограничение для более высоких уровней) — всего в одном ряду Реестра функций — зарегистрируйте Feature с ключом orbitpilot_memory_status_page и назначьте или отключите его, никаких изменений кода не требуется.

Счета сотрудников и суперпользователей видят дополнительное уведомление на странице: их аккаунт полностью обходят ограничения по плану (plans.services.get_effective_limits отдает сотрудникам каждый флаг без условий), так что то, что видит аккаунт сотрудника, не то, что видит не-сотрудник с тем же планом. Это сделано для того, чтобы администратор никогда не перепутал свой собственный обходной вид с тем, как выглядит страница настоящего пользователя.

Как это работает — для разработчиков

orbitpilot/services.py::get_memory_status_page(user) — это полное вычисление, и оно ТОЛЬКО агрегирует — оно вызывает те же функции, которые уже используются на каждой другой поверхности, так что эта страница никогда не может с ними не согласоваться: get_last_build/get_last_completed_build, memory_is_stale, build_notice.ask_honesty_note (BL-405, вернулась без изменений) и resolve_build_sources + _plan_gate_reason (#597 / BL-410-P1, те же причины, которые build_user_snapshot отдает модели во время разговора). Счеты по источникам получают один GROUP BY по OrbitPilotMemoryChunk, исключая get_rag_disabled_keys() так же, как pipeline/retrieve.py исключает их — источник, который администратор отключил после его сборки, все еще имеет строки в таблице, и эта страница не должна называть эти строки "в памяти", когда извлечение никогда не будет их искать.

Вид: orbitpilot.views.orbitpilot_memory_status, имя URL orbitpilot_memory_status. Шаблон: orbitpilot/templates/orbitpilot/memory_status.html. Паритет закреплен orbitpilot/test_memory_status_page.py — тест создает реальную строку профессии и утверждает, что количество на странице равно простому запросу по той же таблице, так что страница не может тихо начать пересчитывать свои собственные цифры.

Связанные страницы

Docshub: "Иконки статуса памяти на каждый Blink" (BL-417, та же лексика и семейство формулировок), "Ваша память остается честной" (BL-405). docs/orbitpilot/TASKS.md.

This guide was translated automatically. Read the English original.

🪐 OrbitPilot

Create a free account and I'll remember your conversations — sign up

🧠 Memory status