Commit Graph

753 Commits

Author SHA1 Message Date
e2cf883603 feat(scripts): interactive Lite-installer setup_lite.py (ORCH-104)
All checks were successful
CI / test (push) Successful in 57s
CI / test (pull_request) Successful in 57s
Единый операторский CLI scripts/setup_lite.py — исполняемый инструмент
Lite-тиража поверх документа-канона docs/deployment/LITE_SETUP.md
(ORCH-102). Автоматизирует маршрут §2–§12: скан предусловий хоста с
офером доустановки → discovery docker-инсталляций Plane/Gitea →
интерактивный сбор обязательных ключей с немедленной верификацией →
автодетект хост-параметров и когерентность портов → сборка
.env/.env.watchdog от канонов → webhook Plane → guard-ы Gitea →
подъём ровно orchestrator+orchestrator-watchdog → регистрация проекта
строго кирпичом onboard_project.py → итоговый отчёт PASS/FAIL/MANUAL.

Scripts+docs+tests (паттерн ORCH-009/103): рантайм src/**, корневой
docker-compose.yml, Dockerfile, .env.example/.env.watchdog.example,
STAGE_TRANSITIONS/QG_CHECKS/check_*/machine-verdict/схема БД —
байт-в-байт. kill-switch не нужен (активация — только явный запуск
CLI человеком на целевом хосте; в нашем контуре артефакт инертен).

- D1/D2: stdlib-only, один файл; режимы plan/apply/verify (closed
  choices), дефолт apply (бизнес-цель «одна команда»); безопасность
  структурно — фаза 0 ≡ plan, ранний guard чужого .env, per-action
  consent, non-TTY без --yes → exit 2 ДО мутаций. Exit 0/2/1; resume
  = повторный запуск (check→ensure по реальности, без state-файла).
- D3: 10 нормативных шагов, инвариант APPLY_STEPS == build_plan().
- D4–D11: решающая логика — чистые функции (вердикты предусловий,
  classifier discovery строго по image-префиксам, port_overrides
  когерентной тройкой, staging==prod fail-closed, рендер env с
  маркером managed-файла, C-1 ORCH-100 машинно, §6.4 branch
  protection без удаления, webhook Plane Path A/Б, build_onboard_args).
- NFR-1/3: src.* не импортируется; секреты скрыты и не печатаются;
  delete-операций нет; никаких операций с main; рестарт — только
  собственного контура.
- D12: LITE_SETUP.md §1.1 + footer-норматив; tests/test_setup_lite_script.py
  (47 unit/structural); аддитивный TC-27 в test_lite_setup_doc.py;
  витрина docs/overview + docs/architecture/README дополнены;
  CHANGELOG + CLAUDE.md (паспорт) обновлены.

Refs: ORCH-104

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 03:04:35 +03:00
52e2e5fda1 developer(ET): auto-commit from developer run_id=642
Some checks failed
CI / test (push) Failing after 1m0s
CI / test (pull_request) Failing after 59s
2026-06-12 02:56:23 +03:00
725791790d developer(ET): auto-commit from developer run_id=640
Some checks failed
CI / test (push) Failing after 59s
CI / test (pull_request) Failing after 58s
2026-06-11 21:12:42 +03:00
302a891aff architect(ET): auto-commit from architect run_id=639
All checks were successful
CI / test (push) Successful in 59s
2026-06-11 20:42:39 +03:00
94a3f399f2 analyst(ET): auto-commit from analyst run_id=638
All checks were successful
CI / test (push) Successful in 58s
2026-06-11 20:19:18 +03:00
831e9ed8d2 docs: init ORCH-104 business request
All checks were successful
CI / test (push) Successful in 1m2s
2026-06-11 20:05:03 +03:00
4d5e4613e5 Merge pull request 'docs(overview): ORCH-011 — витрина системы docs/overview/ (бизнес+тех, 3 аудитории, презентация)' (#125) from feature/ORCH-011- into main
Some checks failed
CI / test (push) Has been cancelled
2026-06-11 09:42:53 +03:00
deploy-finalizer
a6bf5d1b25 deploy(ORCH-036): finalize SUCCESS for ORCH-011
All checks were successful
CI / test (push) Successful in 55s
2026-06-11 09:42:52 +03:00
7191b8dca2 tester(ET): auto-commit from tester run_id=636
All checks were successful
CI / test (push) Successful in 1m3s
CI / test (pull_request) Successful in 1m1s
2026-06-11 09:36:40 +03:00
eb92cc6c2c reviewer(ET): auto-commit from reviewer run_id=635 2026-06-11 09:36:40 +03:00
6d798c01ef docs(overview): витрина системы docs/overview/ — бизнес+тех, 3 аудитории, презентация (ORCH-011)
Единая точка входа в документацию платформы (ADR-001 D1–D9):
- docs/overview/ — 10 файлов: индекс (маршруты «Я заказчик / Я менеджер /
  Я разработчик» + норматив «изменил функциональность → обнови витрину в том же
  PR»), business.md (без жаргона, 6 сценариев), 7 тех-блоков (link-first),
  presentation.md (16 слайдов + процедура сборки «команда + Проверка:»).
- scripts/build_presentation.py — генератор .pptx в тёмном дизайне (python-pptx;
  чистый stdlib-парсер parse_slides + ленивый import pptx; бинарь не коммитится,
  build/ в .gitignore; зависимость НЕ в прод-образе — машинный гард TC-09).
- tests/test_system_docs.py — структурный анти-дрейф: derive-сверки стадий/
  гейтов/агентов импортом STAGE_TRANSITIONS/QG_CHECKS/glob промптов/config,
  валидность ссылок, FORBIDDEN-скан + секрет-эвристика, слайды каноническим
  парсером, NFR-2, указатели.
- reviewer.md — ось обзорных доков ORCH-079 расширена на витрину (D7; канон 52d
  байт-в-байт, только текст внутри секций) + анти-регресс ассерт в
  test_agent_prompts_canon.py.
- Указатели: README.md, CLAUDE.md (правила №2/№6, «Структура»),
  PRODUCT_VISION.md (врезка-ссылка), CHANGELOG.md.

Рантайм байт-в-байт: src/**, docker-compose.yml, Dockerfile, requirements* —
ноль изменений (docs+tests+dev-скрипт, паттерн ORCH-102/103). pytest: 1873 passed.

Refs: ORCH-011

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 09:36:40 +03:00
c455931ae7 architect(ET): auto-commit from architect run_id=633 2026-06-11 09:36:40 +03:00
47479a9b75 analyst(ET): auto-commit from analyst run_id=632 2026-06-11 09:36:40 +03:00
6d1230bcc5 docs: init ORCH-011 business request 2026-06-11 09:36:40 +03:00
9b7bdc0c6c docs(ORCH-011): staging gate log — SUCCESS (8/10, C9a/C9b infra-waived)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 09:36:21 +03:00
2c72a889b6 Merge pull request 'feat(replication): ORCH-10b Bundled-тираж — весь стек одним комплектом + bootstrap (ORCH-103)' (#124) from feature/ORCH-103-orch-10b-bundled-bootstrap into main
Some checks failed
CI / test (push) Has been cancelled
2026-06-11 02:22:42 +03:00
deploy-finalizer
cf94fb813f deploy(ORCH-036): finalize SUCCESS for ORCH-103
All checks were successful
CI / test (push) Successful in 54s
2026-06-11 02:22:41 +03:00
6e17f33be4 tester(ET): auto-commit from tester run_id=630
All checks were successful
CI / test (push) Successful in 57s
CI / test (pull_request) Successful in 1m1s
2026-06-11 02:16:32 +03:00
8512dad29e reviewer(ET): auto-commit from reviewer run_id=629 2026-06-11 02:16:32 +03:00
f0cd19d748 feat(replication): ORCH-10b Bundled-тираж — bundle-compose всего стека + bootstrap-скрипт
Закрывает Type B эпика ORCH-10 (по ADR-001 ORCH-103, D1–D11):

- deploy/bundled/docker-compose.yml — самодостаточный compose всего стека
  (орк + watchdog + Gitea 1.22.6 + зеркало upstream Plane CE v0.23.1,
  ~14 контейнеров); project name orchestrator-bundle (узнаваемый префикс),
  container_name не пиннится, staging-контура нет; одна bridge-сеть,
  машинный трафик — сервис-DNS, наружу только человеческие порты;
  GITEA__webhook__ALLOWED_HOST_LIST=orchestrator; все образы пиннованы
  неподвижными тегами. Корневой compose/Dockerfile/src/** — байт-в-байт.
- deploy/bundled/.env.example — конфиг-канон bundle (плейсхолдеры, ни одного
  дефолтного пароля; key-set-sync интерполяций держит тест).
- scripts/bootstrap_bundle.py — python stdlib-only, режимы plan/apply/verify,
  step-движок check→ensure, exit 0/2/1: preflight (fail-fast до мутаций) →
  секреты (gen_secrets.py + stdlib secrets, без перетирания) → up+готовность →
  init Gitea автоматом → init Plane (manual-step с API-верификацией) →
  онбординг строго onboard_project.py apply+verify → token-remote клон →
  сборка .env/.env.watchdog (единственный писатель, права 600) → health.
  Delete-операций нет вообще (D9), секреты не печатаются (NFR-3).
- CHANGELOG.md, CLAUDE.md (абзац Type B), .gitignore (deploy/bundled/repos/).

Док BUNDLED_SETUP.md, REPLICATION §1, arch README, adr-0038 и три структурных
тест-модуля (TC-01…TC-11) — в предыдущих коммитах ветки; полный регресс
1844 passed, ruff по файлам задачи чистый.

Refs: ORCH-103

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 02:16:32 +03:00
215930fb90 developer(ET): auto-commit from developer run_id=627 2026-06-11 02:16:32 +03:00
054b78c8ca architect(ET): auto-commit from architect run_id=626 2026-06-11 02:16:32 +03:00
4050ccbfde analyst(ET): auto-commit from analyst run_id=625 2026-06-11 02:16:32 +03:00
d282d25659 docs: init ORCH-103 business request 2026-06-11 02:16:32 +03:00
c74a68a251 docs(ORCH-103): staging gate log — SUCCESS (8/10, C9a/C9b infra-waived)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 02:16:04 +03:00
0d15719676 Merge pull request 'docs(deployment): ORCH-102 — ORCH-10a Lite-тираж (LITE_SETUP + watchdog-канон + анти-дрейф)' (#123) from feature/ORCH-102-orch-10a-lite-watchdog into main
Some checks failed
CI / test (push) Has been cancelled
2026-06-11 00:48:29 +03:00
deploy-finalizer
f09aff6b43 deploy(ORCH-036): finalize SUCCESS for ORCH-102
All checks were successful
CI / test (push) Successful in 54s
2026-06-11 00:48:28 +03:00
a5f904b56a tester(ET): auto-commit from tester run_id=623
All checks were successful
CI / test (push) Successful in 59s
CI / test (pull_request) Successful in 1m1s
2026-06-11 00:42:15 +03:00
56cbf9bd0e reviewer(ET): auto-commit from reviewer run_id=611 2026-06-11 00:42:15 +03:00
8351e91382 docs(deployment): ORCH-10a Lite-тираж — LITE_SETUP.md + канон watchdog-конфига + анти-дрейф контур
Закрывает Type A эпика ORCH-10 (поверх 10-common ORCH-101). Docs+tests
(паттерн ORCH-077/092): src/**, docker-compose.yml, Dockerfile, scripts/** —
ноль изменений; конвейер (STAGE_TRANSITIONS/QG_CHECKS/check_*/machine-verdict/
схема БД) — байт-в-байт.

- docs/deployment/LITE_SETUP.md (D1/D2): golden source Lite-тиража — 13
  нормативных разделов в порядке маршрута оператора, каждый шаг =
  fenced-команда + явная «Проверка:»/PASS/FAIL, хост-специфика только
  плейсхолдерами; канон не форкается (статусы/env/вебхуки/smoke — ссылками
  на ONBOARDING §1 / REPLICATION §2–§4 / SETUP_WEBHOOKS; явно — только
  fail-closed Confirm Deploy/STOP и обязательные ключи нового хоста).
- .env.watchdog.example (D5, исход А-4): третий канонический env-example;
  key-set = блок WATCHDOG_* .env.example (19 ключей, токены — пустые
  плейсхолдеры); закрывает ловушку файла-носителя (sidecar читает ТОЛЬКО
  .env.watchdog); C-1 ORCH-100 + когерентность порта в шапке; .env.watchdog
  добавлен в .gitignore (секрет-гигиена, зеркало .env.staging).
- tests/test_lite_setup_doc.py (D8): 25 структурных тестов без
  сети/LLM/subprocess — 13 разделов в порядке D2, кирпичи FR-6.1, key-sync
  watchdog-канона, env-ключи ⊂ .env.example, compose-подмножество (ровно
  орк+watchdog по дефолту, staging за профилем, анти-появление
  plane*/gitea*), fenced-скан FORBIDDEN (импорт из test_no_host_hardcodes)
  + секрет-эвристика с негативным самочеком, «22 статуса» сверкой импорта
  plane_sync._PLANE_NAME_TO_KEY, перекрёстность.
- Перекрёстные доки (FR-7): REPLICATION.md §1 (Type A — Lite →  ORCH-102 +
  ссылка), README.md (способность Lite + docs/deployment/ в структуре),
  INFRA.md (.env.watchdog в секрет-нормативе + ссылка на deployment),
  CLAUDE.md (блок ORCH-102), CHANGELOG.md.

Нормативы разделов: Gitea — branch protection на main НЕ включать (D3 /
ADR D10 ORCH-009 / INV-4), pre-receive не вводится, ОДИН глобальный
webhook-секрет; staging-вилка опциональна (D6); источник кода —
параметризованный git clone <ORCHESTRATOR_GIT_URL> (D7); stateless —
данные/задачи/секреты боевого хоста НЕ переносятся (AC-3).

Тесты: pytest tests/ -q — 1789 passed (полный регресс зелёный).

Refs: ORCH-102

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 00:42:15 +03:00
443ddc6b6f architect(ET): auto-commit from architect run_id=609 2026-06-11 00:42:15 +03:00
30f1f33af1 analyst(ET): auto-commit from analyst run_id=608 2026-06-11 00:42:15 +03:00
3a103a6e92 docs: init ORCH-102 business request 2026-06-11 00:42:15 +03:00
7d6251d4b6 docs(ORCH-102): staging gate log — SUCCESS (8/10, C9a/C9b infra-waived) 2026-06-11 00:41:48 +03:00
ede5ec9473 Merge pull request 'feat(replication): ORCH-101 — расхардкод хоста + секреты нового хоста + smoke (фундамент тиража 10-common)' (#122) from feature/ORCH-101-orch-10-common-smoke into main
Some checks failed
CI / test (push) Has been cancelled
2026-06-10 21:09:38 +03:00
deploy-finalizer
c1e3c46f98 deploy(ORCH-036): finalize SUCCESS for ORCH-101
All checks were successful
CI / test (push) Successful in 56s
CI / test (pull_request) Successful in 58s
2026-06-10 21:09:37 +03:00
cb1f27e9c0 docs(ORCH-101): staging gate log — staging_status SUCCESS (8/10, C9a/C9b infra-waived)
All checks were successful
CI / test (push) Successful in 1m2s
CI / test (pull_request) Successful in 1m3s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 21:02:45 +03:00
c55f956d78 tester(ET): auto-commit from tester run_id=606
All checks were successful
CI / test (push) Successful in 56s
CI / test (pull_request) Successful in 55s
2026-06-10 21:00:13 +03:00
26fe4cdd5e reviewer(ET): auto-commit from reviewer run_id=605
All checks were successful
CI / test (push) Successful in 1m1s
CI / test (pull_request) Successful in 59s
2026-06-10 20:57:20 +03:00
f1635ddb39 feat(replication): расхардкод хоста + секреты нового хоста + smoke-runbook
All checks were successful
CI / test (push) Successful in 57s
CI / test (pull_request) Successful in 55s
Фундамент тиража 10-common (эпик ORCH-10): платформа разворачивается на
новой инфре без правки кода — только env/конфиг. Каждый дефолт = боевому
значению (пустой .env => поведение 1:1, kill-switch-природа, NFR-2);
STAGE_TRANSITIONS/QG_CHECKS/check_*/machine-verdict/схема БД не тронуты.

- config: agent_home_dir / agent_git_name / git_email_domain / staging_port
  (ADR-001 D2/D4); код-блокеры A1-A4 закрыты: plane_sync ссылки из
  gitea_public_url+gitea_owner, launcher - единый agent_git_env() (x2 места),
  self_deploy/post_deploy - HOME+домен из Settings (имена системных акторов -
  платформенные литералы)
- image_freshness: staging_port из конфига + fail-closed guard
  staging_port == прод-порт -> отказ ДО ssh/build (инвариант ORCH-058 AC-9
  стал исполняемым); REPO= передаётся хуку явно обоими инвокерами (D7)
- SELF_HOSTING_REPO - нормативная платформенная константа (D3, пин-тест)
- compose: полная ${VAR:-default}-интерполяция (реестр B, карта D6); группа
  ORCH-040 uid/gid/HOME/маунты двигается согласованно (build.args APP_*);
  group_add "МИНА 1" сохранён x3; оба app-сервиса с явным command:
- Dockerfile: ARG APP_UID/APP_GID/APP_USER/APP_HOME (CMD exec-form 8500
  сознательно не тронут - D5); deploy-hook: REPO="${REPO:-...}" (D1 реестра)
- секреты: stdlib scripts/gen_secrets.py (token_hex(32); печать по умолчанию;
  --write никогда не перезаписывает существующий .env молча, exit=2;
  перезапись только --force); .env.example дополнен до полноты ключей старта
- доки: новый docs/operations/REPLICATION.md (карта env, чек-лист секретов,
  smoke-процедура с PASS/FAIL, границы 10-common/Lite/Bundled), INFRA.md,
  README, CLAUDE.md, CHANGELOG
- анти-регресс: tests/test_no_host_hardcodes.py (tokenize-сканер запрещённых
  литералов, config-модули - структурное исключение, allowlist пуст,
  негативная самопроверка) + test_host_config_keys / test_infra_parametrization
  / test_secrets_gen / test_replication_smoke; согласованные структурные
  правки test_orch040_compose (судит резолв дефолтов) и
  test_deploy_hook_rollback_sim (REPO через env-override = контракт D7)

Полный регресс: 1764 passed.

Refs: ORCH-101

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 20:50:43 +03:00
26bdd783d6 architect(ET): auto-commit from architect run_id=603
All checks were successful
CI / test (push) Successful in 59s
2026-06-10 20:23:50 +03:00
69aa6eacde analyst(ET): auto-commit from analyst run_id=602
All checks were successful
CI / test (push) Successful in 1m9s
2026-06-10 20:02:14 +03:00
9d0f2e40b7 docs: init ORCH-101 business request
All checks were successful
CI / test (push) Successful in 59s
2026-06-10 19:50:40 +03:00
4c232112d4 Merge pull request 'feat(onboarding): turnkey project onboarding — kit + CLI + runbook (ORCH-009)' (#120) from feature/ORCH-009-turnkey-plane into main
Some checks failed
CI / test (push) Has been cancelled
2026-06-10 19:50:38 +03:00
deploy-finalizer
2fb6dc32f6 deploy(ORCH-036): finalize SUCCESS for ORCH-009
All checks were successful
CI / test (push) Successful in 58s
2026-06-10 19:50:37 +03:00
e5c3774bc5 tester(ET): auto-commit from tester run_id=600
All checks were successful
CI / test (push) Successful in 58s
CI / test (pull_request) Successful in 57s
2026-06-10 19:40:51 +03:00
b97ffae7a1 reviewer(ET): auto-commit from reviewer run_id=593
All checks were successful
CI / test (push) Successful in 56s
CI / test (pull_request) Successful in 1m3s
2026-06-10 17:26:44 +03:00
b26a391fa3 developer(ET): auto-commit from developer run_id=592
All checks were successful
CI / test (push) Successful in 55s
CI / test (pull_request) Successful in 55s
2026-06-10 16:18:27 +03:00
e9038182a1 fix(tests): hermetic ORCH-41 model/effort tests vs host env (unblock merge-gate)
Some checks failed
CI / test (push) Has been cancelled
CI / test (pull_request) Successful in 55s
Merge-gate re-test runs under the orchestrator's prod env, where the
operator legitimately set ORCH_AGENT_FALLBACK_MODEL and changed
ORCH_AGENT_MODEL_DEFAULT / ORCH_AGENT_EFFORT_*. Two ORCH-41-era tests
asserted SHIPPED defaults through the env-backed settings singleton and
failed 3/3 there, while Gitea CI (clean env) stayed green. Branch
ORCH-009 touches neither src/ nor these tests - latent non-hermetic
landmine on main, detonated by the prod env change.

- test_resolve_agent_effort.py: autouse fixture now mirrors the sibling
  model-file baseline (pins shipped model/fallback fields) so the
  flag-assembly tests are env-independent.
- test_resolve_agent_model.py: fixture also resets agent_fallback_model;
  test_fallback_model_disabled_by_default now asserts the CLASS field
  default (the actual ORCH-074 ADR-001 G4 invariant: shipped default
  is ""), never-break is_valid_model asserts unchanged byte-for-byte.

Clean-env behaviour is byte-equivalent (fixtures pin exactly what an
empty env yields). Full suite: 1713 passed (was 2 failed / 1711).

Refs: ORCH-009

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 16:17:54 +03:00
dd09e3da89 tester(ET): auto-commit from tester run_id=590
All checks were successful
CI / test (push) Successful in 54s
CI / test (pull_request) Successful in 53s
2026-06-10 16:08:43 +03:00