Files
fission-src/.github/copilot-instructions.md
T
“Naeel” 3b93c5dc8b fix(namespace): harden lifecycle — RemoveNamespace, parallel dispatch, reconciler
- DefaultNSResolver.RemoveNamespace(): removes NS from global map on label removal
  so Snapshot() and idleObjectReaper stop iterating deleted namespaces.
  Fixes class of dirty-state bugs when NS name is reused by new tenant.

- HandleWatcherNamespaceRemoval: call RemoveNamespace on both TrackOnly and
  DispatchRemove strategies — global resolver cleanup is always required.

- dispatch(): parallel subscriber execution via goroutine per subscriber +
  sync.WaitGroup. Reduces onboarding latency from O(N_subscribers × API_latency)
  to O(max(API_latency)). Safe: MarkPart* are internally mutex-protected.

- inMemoryNamespaceManager.RunReconciler(): 30s ticker scans for
  NamespacePhaseFailed records and retries via DispatchResync. Started
  automatically by RunManagedNamespaceWatcher. Fixes permanent stuck-failed
  state caused by transient k8s API errors.

Analysis source: FORENSIC_ARCHITECTURE_AUDIT.md §Deep Risk Analysis
2026-05-18 08:45:31 +04:00

3.3 KiB

Правила

ОТВЕЧАТЬ КРАТКО — АБСОЛЮТНОЕ ПРАВИЛО

  • Вопрос → короткий ответ → СТОП.
  • Ничего лишнего.
  • Код — только по запросу.

ВОПРОС = СТОП

Если в сообщении есть вопрос в ЛЮБОЙ форме ("так ?", "верно ?", "почему ?", "как ?", "так же ?" и т.д.):

  1. ТОЛЬКО ответить на вопрос

  2. ОСТАНОВИТЬСЯ

  3. ЖДАТЬ следующей команды ЗАПРЕЩЕНО начинать работу, писать код, запускать команды — без явного "делай".

  4. АБСОЛЮТНЫЙ ЗАПРЕТ: не трогать и не читать рабочий код с целью подготовки к правке — без ПРЯМОГО указания "делай". Даже чтение файлов перед правкой — СТОП, сначала разрешение.

  5. Файлы редактируются локально: ~/fission-src (текущая рабочая папка)

    После ЛЮБЫХ изменений ОБЯЗАТЕЛЬНО синхронизировать на ВМ командой: rsync -az
    -e "ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10"
    /fission-src/
    naeel@5.172.178.213:
    /terra/fission-src/

  6. Git (add/commit/push) выполнять ЛОКАЛЬНО в ~/fission-src

  7. Docker, kubectl и другие инфраструктурные команды — только через SSH на ВМ: ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10 naeel@5.172.178.213 'КОМАНДА'

    • не выполнять инфраструктурные команды локально
    • не открывать интерактивные сессии
    • не делать цепочки без необходимости
  8. Перед запуском команд ОБЯЗАТЕЛЬНО убедиться, что синхронизация выполнена.

  9. ЗАПРЕЩЕНО:

    • откатывать код
    • менять версии
    • ломать рабочее состояние
  10. После каждого исправления:

    • git add/commit ЛОКАЛЬНО (в ~/fission-src)
    • затем синхронизация (rsync) на ВМ

ДЕЛАТЬ ТОЛЬКО ЧТО ПРЯМО ПРИКАЗАНО

АБСОЛЮТНЫЙ ЗАПРЕТ на додумывание:

  • Не расширять масштаб работы
  • Не выполнять "логичные следующие шаги"
  • Не инициировать дополнительные операции
  • Не делать ничего кроме того что сказано

Пример (2026-05-01):

  • Приказано: "собери"
  • Сделано: ✓ собрал образы v1.3.17 и v0.1.2
  • СТОП — жду команды дальше
  • ЗАПРЕЩЕНО: обновлять манифесты, заливать образы, применять на кластер, запускать тесты

Исключение: только если приказ явно включает цепочку ("собери И залей И тесты")