5.7 KiB
2026-04-26 — Layer2 chat handoff
Что уже сделано
Layer1 завершён в ветке rewrite/layer1-namespace-manager-step1 и перенесён в новую рабочую ветку:
rewrite/layer2-namespace-manager-api-step1
Layer1 означает, что внутренняя адаптация Fission под multi-tenant namespace onboarding уже готова:
- Вынесен общий
NamespaceManager. - Buildermgr, router и executor/multitenant переведены на общий watcher/helper layer.
- Summary/debug contract стабилизирован.
- Logging path усилен и покрыт тестами.
Последняя точка закрытия layer1:
- commit
63ce6ea—layer1: close namespace manager step1
Какие тесты уже были прогнаны
Финальный целевой прогон для layer1:
go test ./pkg/utils/... ./pkg/buildermgr/... ./pkg/router/... ./pkg/executor/multitenant
Он прошёл зелёным.
На какой ветке продолжать
Продолжать работу нужно на ветке:
rewrite/layer2-namespace-manager-api-step1
Что является целью layer2
Layer2 — это уже не перепись watcher-ов, а внешний read-only consumption поверх готового NamespaceManager слоя.
Практическая цель:
- Дать безопасный read-only status/debug/API surface для состояния multi-tenant namespace onboarding.
- Не менять runtime behavior watcher-ов.
- Не дублировать логику manager-а в service-level коде.
- Использовать уже существующий
NamespaceManagerSummary, а не придумывать вторую модель состояния.
Что делать в новом чате
Новый чат должен стартовать не с переписывания layer1 заново, а с аккуратного поиска лучшей точки интеграции для layer2.
Предпочтительный порядок:
- Проверить текущую ветку и чистоту дерева.
- Найти существующий service-level debug/status/API contour в buildermgr, router или executor.
- Выбрать один самый безопасный read-only endpoint или status surface.
- Протащить наружу
NamespaceManagerSummaryбез изменения watcher semantics. - Добавить unit/integration tests именно на внешний consumer-side path.
- Документировать каждый шаг в новых файлах в
doc/thinking/.
Чего НЕ надо делать
- Не продолжать внутреннюю консолидацию watcher layer ради самой консолидации.
- Не ломать существующий runtime flow add/resync/remove.
- Не вводить второй независимый источник правды о namespace state.
- Не менять старые doc-файлы — только новые файлы с новыми шагами.
Важные файлы для продолжения
pkg/utils/namespace_manager.gopkg/utils/namespace_manager_model.gopkg/utils/namespace_manager_test.gopkg/buildermgr/ns_watcher.gopkg/router/ns_watcher.gopkg/executor/multitenant/ns_watcher.go
Как начать с другого компьютера
Если работа продолжается в том же репозитории на той же VM, достаточно открыть репозиторий и проверить ветку:
cd ~/terra/fission-src && git branch --show-current && git log --oneline -8
Если ветка не выбрана, переключиться на неё:
git checkout rewrite/layer2-namespace-manager-api-step1
Если новый чат работает через VS Code tools над sshfs mount, локальный путь будет соответствовать смонтированной папке, а команды всё равно нужно запускать через SSH на VM.
Готовый текст для первого сообщения в новом чате
Ниже текст, который можно вставить почти без изменений:
"Продолжаем в repo fission-src на ветке rewrite/layer2-namespace-manager-api-step1. Layer1 завершён и закрыт commit-ом 63ce6ea. Внутренний NamespaceManager layer готов, buildermgr/router/executor уже сидят на общих watcher helper-ах, summary/debug contract стабилизирован и целевой прогон go test ./pkg/utils/... ./pkg/buildermgr/... ./pkg/router/... ./pkg/executor/multitenant уже был зелёным. Теперь нужен layer2: аккуратно найти лучший существующий read-only status/debug/API surface и начать вынос наружу NamespaceManagerSummary без изменения runtime semantics watcher-ов. Работай маленькими шагами, с новыми doc-файлами в doc/thinking/, без background команд, все команды только через SSH на VM и всегда с timeout."
Ожидаемый первый технический шаг в новом чате
Не писать код сразу. Сначала найти реальный существующий endpoint или status surface, куда summary можно встроить безопасно и без архитектурного мусора.