# 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 сохраняется ровно этот объём; общая копия всех репозиториев и ослабление изоляции не являются заменой выдаче доступа. ## Что уже проверено и что остаётся - [x] Создан отдельный Git-проект с зафиксированной границей четырёх функций. - [x] Проверена независимая возможность штатного ACP Balda поверх SSH: [[personal/projects/balda/ssh-acp-verification-2026-10-18]]. - [ ] Выбрана и испытана сетевая файловая система. - [ ] Реализованы четыре функции, подтверждения и фактическое ограничение доступа. - [ ] Настроено общее состояние Beads и принята работа реальных агентов через полученный workspace. Доступ к исходникам и доступ к состоянию Beads — связанные, но отдельные пункты общей установки. Для одновременной работы Balda и нескольких агентов Beads описывает server mode Dolt: [официальная архитектура](https://github.com/gastownhall/beads/blob/main/docs/architecture/index.md). Сетевой mount сам по себе не считается приёмкой конкурентной работы БД.