dope-canvas
Стадия проектированияБесконечный холст для больших коллекций веб-артефактов, созданных ИИ.
Сотни живых iframe не масштабируются, а превращение каждой страницы в картинку лишает выделения и адресации событий. dope-canvas удерживает артефакты целиком — исходник, устойчивое состояние, дерево взаимодействий, кэш отрисовки и необязательную живую среду выполнения — так что выделение и активация в духе Figma сохраняются. Репозиторий находится на предразработочной базовой линии: есть архитектура, план поставки и модель безопасности, но рабочего холста ещё нет.
Обзор
Каждый iframe удерживает контекст просмотра, состояние DOM/CSS, реалм скриптов, ресурсы и состояние отрисовки, поэтому держать живыми сотни сгенерированных страниц дорого. Проектный ответ — модель удерживаемого артефакта: `артефакт = исходник + устойчивое состояние + дерево взаимодействий + кэш отрисовки + необязательная живая среда выполнения`, где снимок является лишь кэшем отрисовки. Документ и модель взаимодействий остаются доступными для выделения, маршрутизации событий, активации и безопасного восстановления между ревизиями.
Сам холст отвечает за движение камеры, пространственную виртуализацию, жизненный цикл «живой/снимок», метаданные взаимодействий, бюджеты ресурсов и композицию отрисовки; артефакты приносят HTML, CSS и контролируемый JavaScript. Разбиение на пакеты следует этим границам — protocol, spatial, core, artifact, security, runtime, renderer, editor — и все пакеты приватные с версией 0.0.0, ни один не считается стабильным публичным контрактом.
Два ограничения заявлены сразу: барьеры браузерных доказательств этапа M0 не пройдены, поэтому поддержка экспериментальных API HTML-in-Canvas остаётся возможностью, а не обещанием; и лицензия не выбрана, так что до её добавления содержимое не предлагается под открытой лицензией.
Что он делает
- Модель удерживаемого артефакта: снимок — лишь кэш отрисовки, поэтому выделение и адресация событий не теряются.
- Холст отвечает за камеру, пространственную виртуализацию, жизненный цикл «живой/снимок», бюджеты ресурсов и композицию.
- Границы пакетов повторяют проект: protocol, spatial, core, artifact, security, runtime, renderer, editor.
- Безопасность — пакет первого класса: санитайзер, политика URL, квоты и capabilities, а не позднее упрочнение.
- Документировано заранее: технический проект, план поставки, модель безопасности, стратегия совместимости, протокол бенчмарков и открытые вопросы.
Начало работы
Требования: Node.js 22.12+ и pnpm 10.33.2.