-
Notifications
You must be signed in to change notification settings - Fork 0
Storage Model ru
English | 中文 | 日本語 | 한국어 | Español | Português | Русский
Все пользовательские данные живут в chrome.storage.local, обёрнутом в lib/storage.js. Без аккаунта, без сервера.
-
history— глобальный единый разговор, плоский массив сообщений (не по вкладкам) — задуманный продуктовый дефолт: новая тема = пользователь явно открывает новую сессию из панели сессий. Автопереключение по вкладкам было явно отвергнуто (ADR-0002); не предлагать заново. - Форма записи:
{role, content};content— строка или (мультимодально)[{type:'text'}, {type:'image_url'}]; записи прикреплений несут заголовокPAGE_CONTEXT_PREFIX; видео-записи штампуютсяvideoSrc(предусловие кликабельных капсул таймкодов). - Одна отправка = ровно один пользовательский пузырь — инвариант (edit&resend / regenerate сначала удаляют старый пузырь).
-
savedSessionsсам по себе — ЛЁГКИЙ ИНДЕКС[{id,name,createdAt,pinned,textDigest}]; байты снимков живут в ключахsession_<id>по сессии. Каждая сессионная функция проходит черезreadSessionIndex(), которая мигрирует legacy-снимки с одним ключом на месте (тела, записанные ДО переписывания индекса; идемпотентно, устойчиво к сбоям). - Поиск в панели сессий матчит имена +
textDigest(дайджест только по тексту, потолок 100K символов на сессию — контент за потолком не ищется; задокументированный компромисс). - Ключи
session_<id>читаются адресно и намеренно НЕ входят вGET_ALL_KEYS.
getAll() читает ФИКСИРОВАННЫЙ список лёгких ключей (DEFAULTS минус history плюс три настройки options), никогда get(null) — последний десериализовал ≤8MB изображений плюс каждый снимок при каждом ходе/прикреплении/explain. Новый ключ, который должны видеть потребители getAll, идёт в список; адресно-читаемые ключи остаются вне.
Пузырь показывает то, что было отправлено — сохранённые пиксели изображений никогда не удаляются и не деградируют (снимки сессий тоже включают байты, ADR-0005). Всё сжатие происходит на стороне ЗАПРОСА:
- Штамповка
imagesSeen: после успешного хода записи с изображениями штампуются; билдеры запросов вызываютprepareHistoryForModel, которая заменяет ВИДЕННЫЕ изображения на текстовые плейсхолдеры ([图N]/[Figure 3: …]), а НЕВИДЕННЫЕ пропускает с пикселями. Последующие ходы пересылают дешёвый текст вместо ~1K токенов за изображение. -
boundUnseenImageBytes: гигиена при открытии панели — припаркованные невиденные пиксели ограничены 8MB путём УМЕНЬШЕНИЯ старейших до миниатюр (никогда не лейблы: запись, потерявшая пиксели, теряет картинку в пузыре). Новейшая запись с изображениями всегда оберегается. - Агентским провайдерам не нужно никаких изменений:
buildAgentTurnсобирает только (никогда не отвечённый, никогда не штампованный) хвостовой page-context прогон.
-
Старение контекста (
ageStaleAttachments): в момент отправки «холодные» прикрепления (не новейшее, ≥3 ходов пользователя назад, ≥8000 символов) превращаются в однострочный детерминированный стаб — хранилище не трогается; детерминизм держит префикс кэша провайдера стабильным после одноразового разрыва. -
Автосуммаризация прикреплений: прикрепления выше порога получают один LLM-проход сжатия после сохранения; мультимодальные блоки
image_urlпереживают перезапись. - Спасение при переполнении: ход, упавший из-за переполнения контекста, пересобирает запрос с урезанными крупными прикреплениями и ретраит один раз; хранилище перезаписывается ТОЛЬКО после успеха ретрая — сырое прикрепление переживает неудачу.
Сайтовые кэши живут в chrome.storage.session; восстановление ленивое (первый вызов siteCacheCtx платит за чтение) и проверяет живость вкладки (что заодно убило гонку restore-vs-close); purge-слушатели регистрируются по требованию. Ничто, что холодно стартует SW, не должно быть постоянным.
Авторитетные версии: Storage-Model (англ.) / Storage-Model-zh (кит.) — снимок первичного перевода ИИ, синхронизирован 2026-10-01.
English
- Home
- Architecture
- Rendering Pipeline
- Storage Model
- Providers and Agents
- ASR and Video Analysis
- Security Model
- Design Decisions
- Contributing
中文
相关 / Related
日本語
한국어
Español
- Inicio
- Arquitectura
- Pipeline de renderizado
- Modelo de almacenamiento
- Proveedores y agentes
- ASR y análisis de vídeo
- Modelo de seguridad
- Decisiones de diseño
- Contribuir
Português
- Início
- Arquitetura
- Pipeline de renderização
- Modelo de armazenamento
- Provedores e agentes
- ASR e análise de vídeo
- Modelo de segurança
- Decisões de design
- Contribuindo
Русский