Files
obsidian-vault/personal/plans/workspace-gateway.md
T

6.4 KiB
Raw Blame History

Workspace Gateway — план

Обновлено: 2026-10-18. Проект: /Users/admin/Developer/workspace-gateway. Git: main, начальный коммит 2bc6743; создан каркас README/AGENTS/.gitignore, реализации сервиса пока нет. Общий setup Balda: personal/plans/balda-remote-agent.

Назначение и четыре функции

Сервис выдаёт Balda и удалённым агентам доступ к исходным папкам через сетевую файловую систему. Balda и агенты видят одни и те же файлы; копирование Git-репозитория не считается реализацией общего доступа.

  1. Папки: листинг папок хоста, включая навигацию по дереву, без выдачи списка файлов и их содержимого.
  2. Подключение: выбранная папка появляется в work dir после подтверждения владельцем точного пути, получателя, режима доступа и срока.
  3. Отключение: фактический отзыв ранее выданного доступа.
  4. Лизинг: статус и срок действия, автоматический отзыв после истечения срока, продление с подтверждением владельца.

Четыре пользовательские функции — согласованный объём проекта. Обработка ответа владельца, журнал выданных разрешений и таймеры обслуживают эти функции, а не расширяют API прикладными сценариями.

Границы

SSH-запуск, ACP-транспорт, исполнение команд на хосте и Seatbelt относятся к настройке Balda и среды, а не к Workspace Gateway. Prism, Callee, Beads, управление задачами и сессиями используются штатно. Сервис не реализует собственные Story workflows, собственный Prism и дублирующий scheduler.

Общий каталог Developer и домашний каталог не выдаются агентам. Листинг папок даёт возможность запросить конкретный путь, а не право читать его файлы. Ответ от модели или аргумент approved=true не является подтверждением владельца. Отзыв и истечение срока должны прекращать реальный доступ, включая существующие соединения и открытые файловые дескрипторы.

Конкретные шаги

  1. Я проверю готовую сетевую файловую систему на текущем Docker/Colima и целевых средах: исходные файлы видны обоим клиентам, добавление разрешённой папки обходится без перезапуска Balda, соседняя папка недоступна, отзыв закрывает уже выданный доступ.
  2. Я подключу постоянную точку сетевой файловой системы в work dir; это разовая настройка deployment, последующие выдачи и отзывы происходят в рантайме.
  3. Я реализую листинг папок и запрос подключения, связав подтверждение владельца с точным путём, получателем, правами и сроком; сначала проверю пригодность штатных взаимодействий Balda.
  4. Я реализую отключение и временный лизинг, сохранение состояния разрешений и обработку истечения срока после перезапуска сервиса; неполученное подтверждение оставляет доступ закрытым.
  5. Я проведу приёмку с двумя клиентами: общие файлы, RO/RW, запрет соседних путей и обхода через ссылки, отказ владельца, отзыв, истечение, продление и повторный запуск сервиса.

NFS/SMB или другой backend ещё не выбран: поддержка протокола сама по себе не подтверждает нужные свойства прав и отзыва. До выбора backend сохраняется ровно этот объём; общая копия всех репозиториев и ослабление изоляции не являются заменой выдаче доступа.

Что уже проверено и что остаётся

  • Создан отдельный Git-проект с зафиксированной границей четырёх функций.
  • Проверена независимая возможность штатного ACP Balda поверх SSH: personal/projects/balda/ssh-acp-verification-2026-10-18.
  • Выбрана и испытана сетевая файловая система.
  • Реализованы четыре функции, подтверждения и фактическое ограничение доступа.
  • Настроено общее состояние Beads и принята работа реальных агентов через полученный workspace.

Доступ к исходникам и доступ к состоянию Beads — связанные, но отдельные пункты общей установки. Для одновременной работы Balda и нескольких агентов Beads описывает server mode Dolt: официальная архитектура. Сетевой mount сам по себе не считается приёмкой конкурентной работы БД.