6ae611a376
Merge pull request 'ORCH-062 — INFRA: авто-prune docker build cache на mva154' ( #100 ) from feature/ORCH-062-infra-prune-docker-build-cache into main
CI / test (push) Has been cancelled
2026-06-09 19:59:13 +03:00
deploy-finalizer
c816b33c19
deploy(ORCH-036): finalize SUCCESS for ORCH-062
CI / test (push) Successful in 29s
2026-06-09 19:59:13 +03:00
5ead4543ee
tester(ET): auto-commit from tester run_id=494
CI / test (push) Successful in 33s
CI / test (pull_request) Successful in 29s
2026-06-09 19:55:00 +03:00
247915e3d1
reviewer(ET): auto-commit from reviewer run_id=493
2026-06-09 19:55:00 +03:00
664c2e945a
feat(infra): auto-prune docker build cache on mva154 (ORCH-062)
...
Add src/build_cache_pruner.py — a background daemon thread modelled 1:1 on
src/disk_watchdog.py that periodically runs STRICTLY `docker builder prune -f
--filter until=<until>` (BuildKit GC) on the HOST over ssh. It is the "second
half" of the disk-watchdog (ORCH-063): the watchdog signals, the pruner cleans.
Removes the root cause of the 07.06.2026 incident (build cache ~11GB -> disk
100% -> whole self-hosting pipeline down) automatically, без оператора.
ADR-001 (Variant A): host-over-ssh, same channel as image_freshness/self_deploy
(no docker CLI in the image). Touches ONLY the build cache — no image/system
prune, no image/container removal, never restarts the docker daemon or the prod
container (self-hosting safety). No ssh target -> tick is a no-op.
- src/config.py: ORCH_BUILD_CACHE_PRUNE_* flags + defensive validators
(interval/timeout >0, until ~ ^\d+[smhdw]?$, notify_min_gb >=0 -> safe default).
- src/main.py: start last (after disk_watchdog) / stop first in lifespan;
additive read-only build_cache_prune block in GET /queue.
- never-raise on two levels (per-command + per-tick); kill-switch
ORCH_BUILD_CACHE_PRUNE_ENABLED (false -> daemon does not start, 1:1 as before).
- STAGE_TRANSITIONS / QG_CHECKS / check_* / _parse_* / DB schema UNCHANGED;
last-run/last-result is in-memory (no migration).
- tests/test_build_cache_pruner.py: TC-01..TC-12 (23 cases, docker fully mocked).
- .env.example + CHANGELOG.md updated; INFRA.md / architecture docs already
carry the component (architecture stage).
Refs: ORCH-062
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-09 19:55:00 +03:00
d2604e42cd
architect(ET): auto-commit from architect run_id=491
2026-06-09 19:55:00 +03:00
621c1352e1
analyst(ET): auto-commit from analyst run_id=490
2026-06-09 19:55:00 +03:00
e86ea82501
docs: init ORCH-062 business request
2026-06-09 19:55:00 +03:00
1b03f6b3a7
docs(ORCH-062): staging gate log — SUCCESS (8/10, C9a/C9b infra-waived)
2026-06-09 19:54:36 +03:00
4d74d981da
Merge pull request 'ORCH-063 — Disk-watchdog: мониторинг диска mva154 + Telegram-алерт при ≥85%' ( #98 ) from feature/ORCH-063-infra-mva154-85 into main
CI / test (push) Has been cancelled
2026-06-09 19:13:33 +03:00
deploy-finalizer
2bd3bb75d4
deploy(ORCH-036): finalize SUCCESS for ORCH-063
CI / test (push) Successful in 30s
CI / test (pull_request) Successful in 30s
2026-06-09 19:08:50 +03:00
efd744f766
tester(ET): auto-commit from tester run_id=488
CI / test (push) Successful in 35s
CI / test (pull_request) Successful in 32s
2026-06-09 19:04:36 +03:00
fb4203b8f9
reviewer(ET): auto-commit from reviewer run_id=486
2026-06-09 19:04:36 +03:00
8759cb7df8
feat(disk-watchdog): host-FS fill heartbeat + Telegram alert at >=85% (ORCH-063)
...
Adds src/disk_watchdog.py — a background daemon thread modelled on
reconciler/job_reaper that measures host-FS fill via the mounted bind-paths
(/repos, /app/data) with shutil.disk_usage and Telegram-alerts the operator at
>= threshold (default 85%). The missing proactive signal: on 07.06.2026 the
mva154 host disk silently hit 100% and stalled the whole self-hosting pipeline.
- Pure decide_action(used_pct, threshold, prev, now, realert_s): alert on
crossing up, cooldown re-alert, single recovery below threshold (unit-tested
without a thread/timer; clock injected).
- measure_paths: shutil.disk_usage per path, dedup by st_dev, per-path
never-raise (a broken path never fails the tick).
- Config flags ORCH_DISK_MONITOR_* with defensive validation (threshold 1..100,
positive intervals -> default + warning). Kill-switch -> daemon does not start.
- Additive disk_monitor block in GET /queue; start/stop in main.lifespan.
- never-raise (per-path/per-tick/per-send); STAGE_TRANSITIONS/QG_CHECKS/check_*/
DB schema untouched, no migration (anti-spam state in-memory).
Tests: tests/test_disk_watchdog.py (TC-01..TC-12, 18 cases); full suite green
(1296). Docs: INFRA.md, .env.example, CHANGELOG.md (architecture/README.md +
ADRs authored at architecture stage).
Refs: ORCH-063
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-09 19:04:36 +03:00
4d9251c698
architect(ET): auto-commit from architect run_id=484
2026-06-09 19:04:36 +03:00
8ace9f880d
analyst(ET): auto-commit from analyst run_id=483
2026-06-09 19:04:36 +03:00
8c97a6ab1c
docs: init ORCH-063 business request
2026-06-09 19:04:36 +03:00
a499ee8e42
docs(ORCH-063): staging gate log — SUCCESS (8/10, C9a/C9b infra-waived)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-09 19:04:16 +03:00
fb96556a79
Merge pull request 'ORCH-092 — промпт-аудит 6 агентов: расхардкод даты/модели, escalation, чистка' ( #97 ) from feature/ORCH-092-6-escalation into main
CI / test (push) Has been cancelled
2026-06-09 17:50:42 +03:00
deploy-finalizer
2265cb4a93
deploy(ORCH-036): finalize SUCCESS for ORCH-092
CI / test (push) Successful in 30s
CI / test (pull_request) Successful in 29s
2026-06-09 17:50:41 +03:00
caea18577a
tester(ET): auto-commit from tester run_id=481
CI / test (push) Successful in 37s
CI / test (pull_request) Successful in 33s
2026-06-09 17:46:27 +03:00
ef43e4a48c
reviewer(ET): auto-commit from reviewer run_id=480
2026-06-09 17:46:27 +03:00
6cae171745
docs(prompts): ORCH-092 — аудит 6 агент-промптов (расхардкод, escalation, чистка)
...
Эпилог эпика ORCH-52. Docs/prompts-only: src/**, STAGE_TRANSITIONS, QG_CHECKS,
machine-verdict ключи и схема БД не тронуты; frontmatter_validation_strict=False.
- FR-1/FR-2: копируемые frontmatter-примеры всех 6 промптов расхардкожены
(created_at: <YYYY-MM-DD> / model_used: <resolve ORCH-41> + врезка «не копируй
буквально, подставь date +%F и модель из конфига»); литерал claude-opus-4-8 —
только справка в таблице полей.
- FR-3: имена check_* в промптах сверены с QG_CHECKS — несовпадений нет
(закреплено интеграционным тестом TC-03).
- FR-4: developer «PR>1500 → разбивай» переформулирован в эскалацию на уровне задач.
- FR-5: секция <escalation> у developer/reviewer/tester (после </success_criteria>):
back-to:analysis / back-to:dev / REQUEST_CHANGES.
- FR-6: deployer — критичные self-hosting-запреты в видной рамке в начале <context>.
- FR-7: tester обогащён worktree-путём, smoke serial_gate (ORCH-088), покрытием TC.
- FR-8: из reviewer удалена мёртвая строка «тот же экземпляр Developer».
- FR-9 (ADR-001 D1): убран ручной git rebase origin/main — свежесть базы держит
движок (serial-gate ORCH-088 + auto_rebase_onto_main под merge-lease).
- FR-10 (ADR-001 D2): deployer.md оставлен на английском как нормативное исключение.
- FR-11: расширен tests/test_agent_prompts_canon.py (ORCH-092 TC-01…TC-08);
канон 52d и test_agent_frontmatter_no_model.py зелёные; полный регресс 1278 зелёный.
Документация: 6 промптов, CLAUDE.md, docs/architecture/README.md, CHANGELOG.md.
Refs: ORCH-092
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-09 17:46:27 +03:00
f61d963f9b
architect(ET): auto-commit from architect run_id=478
2026-06-09 17:46:27 +03:00
484069851e
analyst(ET): auto-commit from analyst run_id=477
2026-06-09 17:46:27 +03:00
334b8dd8fd
docs: init ORCH-092 business request
2026-06-09 17:46:27 +03:00
d0b2208087
docs(ORCH-092): staging gate log — SUCCESS (8/10, C9a/C9b infra-waived)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-09 17:46:08 +03:00
61d5d8ffc5
Merge pull request 'ORCH-079 — ORCH-52f: синхронизация README/доков с кодом + reviewer-ось обзорных доков' ( #96 ) from feature/ORCH-079-orch-52f-readme-reviewer into main
CI / test (push) Has been cancelled
2026-06-09 16:37:44 +03:00
deploy-finalizer
99db59a277
deploy(ORCH-036): finalize SUCCESS for ORCH-079
CI / test (push) Successful in 35s
2026-06-09 16:37:43 +03:00
991443b215
tester(ET): auto-commit from tester run_id=475
CI / test (push) Successful in 34s
CI / test (pull_request) Successful in 34s
2026-06-09 16:33:33 +03:00
499a040ee6
reviewer(ET): auto-commit from reviewer run_id=474
2026-06-09 16:33:33 +03:00
d97b26a59f
docs(ORCH-079): ORCH-52f — sync README with code + reviewer overview-docs axis
...
Layer 5 (final) of epic ORCH-52. Docs + prompt-only; src/ untouched.
- README.md «Известные ограничения»: fix numbering (was 1,2,3,4,3,4),
move 6 resolved/obsolete items to «Закрыто (история)» trail with ORCH
refs, keep only really-open limitations (Telegram-48h ORCH-087,
task-deps intra-repo ORCH-026, serial-gate ORCH-088). Point-sync stage
table (development → check_ci_green) and event-routing (ORCH-045).
- reviewer.md: overview-docs axis (axis 4 + constraints) — closing a
README limitation without updating README → finding ≥P1 (canon 52d
«❌ →✅ »; verdict key + 5 XML sections + 6 schema fields byte-intact).
- tests: new tests/test_readme_limitations.py (numbering + no resolved
items as open); test_agent_prompts_canon.py asserts the new axis.
- CLAUDE.md / CHANGELOG.md updated; epic ORCH-52 closed (52b→…→52f).
Refs: ORCH-079
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-09 16:33:33 +03:00
07a2d6ad1e
architect(ET): auto-commit from architect run_id=472
2026-06-09 16:33:33 +03:00
7d1346d90f
analyst(ET): auto-commit from analyst run_id=471
2026-06-09 16:33:33 +03:00
4a2a50c12b
docs: init ORCH-079 business request
2026-06-09 16:33:33 +03:00
0d4f579c3f
docs(ORCH-079): staging gate log — SUCCESS (8/10, C9a/C9b infra-waived)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-09 16:32:52 +03:00
55ead46f13
Merge pull request 'ORCH-078 — ORCH-52e: трассировка ORCH-NNN (стандарт маркеров + правило чтения ADR)' ( #95 ) from feature/ORCH-078-orch-52e-orch-nnn into main
CI / test (push) Has been cancelled
2026-06-09 15:52:57 +03:00
deploy-finalizer
8e2179a890
deploy(ORCH-036): finalize SUCCESS for ORCH-078
CI / test (push) Successful in 30s
2026-06-09 15:52:56 +03:00
da709895f9
tester(ET): auto-commit from tester run_id=469
CI / test (push) Successful in 35s
CI / test (pull_request) Successful in 33s
2026-06-09 15:48:43 +03:00
fb9c133ef9
reviewer(ET): auto-commit from reviewer run_id=468
2026-06-09 15:48:43 +03:00
572b3172cd
docs(ORCH-078): ORCH-52e — стандарт трассировки ORCH-NNN + правило чтения ADR
...
Слой 4 (трассировка) эпика ORCH-52, замыкающий цепочку 52b/52c/52d.
Docs + prompts-only: src/**, STAGE_TRANSITIONS, QG_CHECKS, src/frontmatter.py,
схема БД — не тронуты; новый QG не вводится; ретро-фит 51 маркера вне объёма.
- Новый нормативный стандарт docs/_standards/TRACEABILITY.md: формат маркера,
правило размещения, чтение истории с реальным проверяемым примером
(src/serial_gate.py → ORCH-088 → ADR-001-serial-gate.md), fallback-доступ
(git show origin/main:...), анти-археология (3+ → сводный сквозной ADR),
каноничный текст правила чтения (единый источник).
- Точечные аддитивные врезки в промпты (52d-канон не переписан): developer.md
(правило чтения чужого маркера + fallback, «❌ X → ✅ Y»), architect.md
(правило чтения + анти-археология), reviewer.md (усиление оси «Соответствие
ADR» под-пунктом: слом маркированного инварианта → finding ≥P1). Все три
ссылаются на единый текст в TRACEABILITY.md, не копируют (анти-дубль BR-6).
- Сопутствующе: CLAUDE.md, docs/architecture/README.md (слой 4 эпика 52),
CHANGELOG.md.
- Анти-регресс: расширен tests/test_agent_prompts_canon.py (9 новых проверок);
проверки 52d и test_agent_frontmatter_no_model.py зелёные;
полный pytest tests/ -q зелёный (1253 passed), src/ не изменён.
Refs: ORCH-078
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-09 15:48:43 +03:00
14f037a8a9
architect(ET): auto-commit from architect run_id=466
2026-06-09 15:48:43 +03:00
8064ae2c5d
analyst(ET): auto-commit from analyst run_id=465
2026-06-09 15:48:43 +03:00
5349a41182
docs: init ORCH-078 business request
2026-06-09 15:48:43 +03:00
e8523ac116
docs(ORCH-078): staging gate log — deploy-staging SUCCESS
...
Staging suite passed inside orchestrator-staging (exit 0); C9a/C9b waived (ORCH-061).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-09 15:48:16 +03:00
76a778696c
Merge pull request 'ORCH-077 — ORCH-52d: канон Anthropic для 6 промптов + эмиссия frontmatter-схемы 52c' ( #94 ) from feature/ORCH-077-orch-52d-6-anthropic into main
CI / test (push) Has been cancelled
2026-06-09 15:12:40 +03:00
deploy-finalizer
9fd99cb67a
deploy(ORCH-036): finalize SUCCESS for ORCH-077
CI / test (push) Successful in 31s
2026-06-09 15:12:39 +03:00
7619f12169
tester(ET): auto-commit from tester run_id=463
CI / test (push) Successful in 35s
CI / test (pull_request) Successful in 30s
2026-06-09 15:08:27 +03:00
93d5c9c296
reviewer(ET): auto-commit from reviewer run_id=462
2026-06-09 15:08:27 +03:00
8beed58d98
docs(prompts): rewrite 6 agent prompts in Anthropic canon + emit 52c schema (ORCH-52d)
...
Замыкающий слой эпика ORCH-52. Тело всех 6 промптов .openclaw/agents/*.md
переписано в едином каноне Anthropic (5 обязательных XML-секций <context>/
<task>/<deliverables>/<constraints>/<output_format>, запреты «❌ X → ✅ Y»,
<thinking> у решающих ролей), и каждый промпт добровольно эмитит 6-польную
frontmatter-схему 52c (work_item/stage/author_agent/status/created_at/
model_used) аддитивно — рядом с machine-verdict ключом, не меняя его имя/
регистр/значения (verdict:/result:/staging_status:/deploy_status:/
security_status:).
Docs/prompts-only: src/**, STAGE_TRANSITIONS, QG_CHECKS, схема БД не тронуты;
frontmatter_validation_strict остаётся False (enforcement не включён).
Функциональное содержание старых промптов перенесено 1:1 (инвентарь TRZ §FR-6).
- tests/test_agent_prompts_canon.py: структурный анти-регресс (TC-01…TC-07)
- tests/manual/ab_prompt_compare.md: метод A/B (TC-09 / AC-6)
- CLAUDE.md, CHANGELOG.md обновлены; README/ADR — архитектором
Полный регресс pytest tests/ -q зелёный (1244); test_agent_frontmatter_no_model
остаётся зелёным.
Refs: ORCH-077
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-09 15:08:27 +03:00