Commit Graph

949 Commits

Author SHA1 Message Date
f737e6730e analyst(ET): auto-commit from analyst run_id=796
All checks were successful
CI / test (push) Successful in 1m15s
2026-06-17 20:35:32 +03:00
d8ab31d200 analyst(ET): auto-commit from analyst run_id=795
All checks were successful
CI / test (push) Successful in 1m17s
2026-06-17 19:23:14 +03:00
66428edb69 docs: init ORCH-020 business request
All checks were successful
CI / test (push) Successful in 1m15s
2026-06-17 19:16:29 +03:00
e5dc4eb655 Merge pull request 'docs(operations): FAQ по статусу STOP для пользователя (ORCH-108)' (#148) from feature/ORCH-108-19c40858 into main
Some checks failed
CI / test (push) Has been cancelled
2026-06-17 18:23:09 +03:00
deploy-finalizer
618321addb deploy(ORCH-036): finalize SUCCESS for ORCH-108
All checks were successful
CI / test (push) Successful in 1m18s
CI / test (pull_request) Successful in 1m15s
2026-06-17 18:23:07 +03:00
staging-runner
1d552aa6aa staging(ORCH-115): staging gate SUCCESS for ORCH-108
All checks were successful
CI / test (push) Successful in 1m14s
CI / test (pull_request) Successful in 1m16s
2026-06-17 18:02:03 +03:00
test-runner
fedd5fab73 test(ORCH-116): test gate PASS for ORCH-108
Some checks failed
CI / test (push) Has been cancelled
CI / test (pull_request) Successful in 1m23s
2026-06-17 18:00:27 +03:00
21dd5a7eb0 reviewer(ET): auto-commit from reviewer run_id=794
All checks were successful
CI / test (push) Successful in 1m20s
CI / test (pull_request) Successful in 1m17s
2026-06-17 17:58:42 +03:00
dbd8df6eb2 docs(operations): add user FAQ for STOP cancellation status (ORCH-108)
All checks were successful
CI / test (push) Successful in 1m15s
CI / test (pull_request) Successful in 1m16s
Create docs/operations/FAQ_STOP.md — a user-facing "вопрос → ответ" FAQ for
Plane board users explaining the STOP status: what it does, how to cancel a
task, step-by-step consequences (agent stops → jobs cancelled → working branch
and worktree removed → task → cancelled → Telegram+Plane; docs artifacts
preserved, main/prod untouched), deferred cancellation in the critical
merge/deploy window, explicit "STOP does NOT revert merged/deployed code"
(revert is a separate task), restart only via "To Analyse" from scratch, no-op
causes, where to observe the result, and STOP/Approved/Confirm Deploy disambig.

docs-only: src/**, STAGE_TRANSITIONS, QG_CHECKS, check_*, machine-verdict keys
and the DB schema are byte-for-byte untouched. STOP behaviour source of truth
remains ORCH-090 (adr-0026); the FAQ documents and links to it (link-first:
machine details markers/lease/tombstone given by reference, not duplicated).

Add two-way cross-links: docs/overview/business.md (Сценарий 6) and
docs/overview/tech-pipeline.md (Отмена: STOP → cancelled) → FAQ; FAQ → overview
+ ADR ORCH-090. Structure guarded by deterministic anti-drift test
tests/test_faq_stop_doc.py (offline, no network/LLM/subprocess; mirrors
tests/test_lite_setup_doc.py): existence + 8 section anchors + fact bricks +
cross-links + claim-level negative scan (sentence-level, not bare substrings,
so it never false-fails on correctly negating phrases — TR-3, with a
non-evergreen self-check). Full pytest tests/ green (2227 passed).

Refs: ORCH-108

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 17:50:58 +03:00
e97111dc74 architect(ET): auto-commit from architect run_id=792
All checks were successful
CI / test (push) Successful in 1m15s
2026-06-17 17:42:59 +03:00
d11daf11f7 analyst(ET): auto-commit from analyst run_id=791
All checks were successful
CI / test (push) Successful in 1m15s
2026-06-17 17:26:06 +03:00
56825e79fe docs: init ORCH-108 business request
All checks were successful
CI / test (push) Successful in 1m20s
2026-06-17 17:17:50 +03:00
37cbaf5b86 Merge pull request 'fix(webhooks): source-backed 00-business-request.md instead of hardcoded TBD (ORCH-119)' (#147) from feature/ORCH-119-bug-00-business-request-md-is- into main
Some checks failed
CI / test (push) Has been cancelled
2026-06-17 17:17:48 +03:00
deploy-finalizer
43ab8938a9 deploy(ORCH-036): finalize SUCCESS for ORCH-119
All checks were successful
CI / test (push) Successful in 1m17s
2026-06-17 17:17:47 +03:00
staging-runner
02c4c4549d staging(ORCH-115): staging gate SUCCESS for ORCH-119
All checks were successful
CI / test (push) Successful in 1m25s
CI / test (pull_request) Successful in 1m15s
2026-06-17 17:11:52 +03:00
test-runner
4c9774b17d test(ORCH-116): test gate PASS for ORCH-119
Some checks failed
CI / test (push) Has been cancelled
CI / test (pull_request) Successful in 1m25s
2026-06-17 17:10:16 +03:00
1b09d1a525 reviewer(ET): auto-commit from reviewer run_id=790
All checks were successful
CI / test (push) Successful in 1m27s
CI / test (pull_request) Successful in 1m19s
2026-06-17 17:08:26 +03:00
2a50391a74 developer(ET): auto-commit from developer run_id=789
All checks were successful
CI / test (push) Successful in 1m18s
CI / test (pull_request) Successful in 1m16s
2026-06-17 15:10:50 +03:00
3d3f07ff05 docs(changelog): restore ORCH-119 entry dropped by rebase auto-merge
Some checks failed
CI / test (push) Has been cancelled
CI / test (pull_request) Successful in 1m16s
The merge-gate's auto_rebase_onto_main silently dropped the ORCH-119
CHANGELOG bullet during a same-anchor 3-way merge: origin/main's
ORCH-120/126 entries were kept while the ORCH-119 insertion was lost.
Re-spliced the entry verbatim under ## [Unreleased] alongside 120/126.

Refs: ORCH-119

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 15:10:14 +03:00
staging-runner
24ec88c372 staging(ORCH-115): staging gate SUCCESS for ORCH-119
All checks were successful
CI / test (push) Successful in 1m15s
CI / test (pull_request) Successful in 1m17s
2026-06-17 15:03:00 +03:00
test-runner
9819d10825 test(ORCH-116): test gate PASS for ORCH-119 2026-06-17 15:03:00 +03:00
aece77a6d9 reviewer(ET): auto-commit from reviewer run_id=788 2026-06-17 15:03:00 +03:00
test-runner
a1985f5181 test(ORCH-116): test gate FAIL for ORCH-119 2026-06-17 15:02:40 +03:00
f1e7c2aeb9 reviewer(ET): auto-commit from reviewer run_id=786 2026-06-17 15:02:40 +03:00
06cd7cb72c fix(webhooks): source-backed 00-business-request.md instead of hardcoded TBD (ORCH-119)
The Description section of 00-business-request.md always read the literal `TBD`,
losing the source-backed Plane-issue request context. Render the ACTUAL issue
`description` on both creation paths:

- Direct path A (serial_gate N/A): start_pipeline passes `description` to
  _create_initial_docs.
- Deferred path B (ORCH-088, dominates on self-hosting): persist `description`
  durable in the additive `tasks.description` column inside the same atomic INSERT
  in create_task_atomic (race-safe vs ORCH-053 anti-dup claim), read it in
  launcher._spawn -> _materialize_deferred_branch at claim (no network in the hot
  claim path, NFR-4).

Pure render helper _render_business_request with a fail-safe fallback marker for
empty/None/unreadable descriptions (never breaks task creation); Gitea 422 stays a
no-op (idempotent). STAGE_TRANSITIONS / QG_CHECKS / check_* / machine-verdict keys
and the base CREATE TABLE tasks are byte-for-byte unchanged; the ORCH-088
anti-stale-base invariant is preserved (only the data source is enriched).

Tests: tests/test_orch119_business_request.py (TC-01 mandatory red->green
regression; TC-02..TC-07). Updated the ORCH-088 serial-gate spy for the additive
_create_initial_docs arg.

Refs: ORCH-119
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 15:02:40 +03:00
a8b896b27f architect(ET): auto-commit from architect run_id=784 2026-06-17 15:02:40 +03:00
0f3649c5d3 analyst(ET): auto-commit from analyst run_id=783 2026-06-17 15:02:40 +03:00
b3bae0a1ca docs: init ORCH-119 business request 2026-06-17 15:02:40 +03:00
f50f61c5f5 Merge pull request 'fix(analysis): activate analyst open-questions -> Needs Input flow (ORCH-120)' (#146) from feature/ORCH-120-bug-analyst-open-questions-mus into main 2026-06-17 13:50:32 +03:00
deploy-finalizer
a1a044315b deploy(ORCH-036): finalize SUCCESS for ORCH-120
All checks were successful
CI / test (push) Successful in 1m15s
CI / test (pull_request) Successful in 1m12s
2026-06-17 13:50:26 +03:00
staging-runner
6c95e2d689 staging(ORCH-115): staging gate SUCCESS for ORCH-120
All checks were successful
CI / test (push) Successful in 1m21s
CI / test (pull_request) Successful in 1m17s
2026-06-17 13:44:39 +03:00
test-runner
8cda3a2eb5 test(ORCH-116): test gate PASS for ORCH-120
Some checks failed
CI / test (push) Has been cancelled
CI / test (pull_request) Successful in 1m26s
2026-06-17 13:43:04 +03:00
e3be810e80 reviewer(ET): auto-commit from reviewer run_id=782
All checks were successful
CI / test (push) Successful in 1m22s
CI / test (pull_request) Successful in 1m16s
2026-06-17 13:41:16 +03:00
19c31778b2 docs(overview): sync system showcase with analyst open-questions auto-park (ORCH-120)
All checks were successful
CI / test (push) Successful in 1m15s
CI / test (pull_request) Successful in 1m14s
Address reviewer P1 (ось ORCH-011/ORCH-079, правило агентов №6): витрина
описывала паузу serial-gate как исключительно операторскую, но ORCH-120
добавил движковый авто-park/unpark на analyst Needs Input.

- tech-pipeline.md: абзац пауз теперь называет два источника (оператор +
  авто-park движком на Needs Input, флаг analyst_needs_input_autopause_enabled,
  скоуп self-hosting, симметричный unpark на resume).
- tech-observability.md: пункт пауз в GET /queue — оба источника.
- tech-agents.md: when-applicable сигнальный канал 01-questions.md у analyst
  (строка таблицы + поясняющая врезка; не machine-verdict, не deliverable).
- CHANGELOG: запись ORCH-120 дополнена строкой про обновление витрины.

tests/test_system_docs.py зелёный (29 passed). src/STAGE_TRANSITIONS/QG_CHECKS
не тронуты — docs-only.

Refs: ORCH-120
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 13:28:06 +03:00
452df7aedf reviewer(ET): auto-commit from reviewer run_id=780
All checks were successful
CI / test (push) Successful in 1m14s
CI / test (pull_request) Successful in 1m14s
2026-06-17 13:24:21 +03:00
d6b495f156 fix(analysis): activate analyst open-questions -> Needs Input flow (ORCH-120)
All checks were successful
CI / test (push) Successful in 1m14s
CI / test (pull_request) Successful in 1m11s
Activates and completes the previously dead "analyst asks BLOCKING questions ->
01-questions.md -> Needs Input" path. Four coordinated changes, additive, under
kill-switch, self-hosting scope, never-raise; STAGE_TRANSITIONS / QG_CHECKS /
check_* / machine-verdict keys / DB schema are byte-for-byte UNCHANGED (the flow
is a pre-gate engine branch, NOT a Quality Gate; 01-questions.md is a SIGNAL
artifact, NOT a machine-verdict).

- D1 contract + canon: analyst.md documents the 01-questions.md channel (blocking
  questions -> Needs Input, do NOT fabricate deliverables) + resume behaviour; new
  skeleton docs/_templates/01-questions.md; PIPELINE_DOCS.md manifest row + 01-
  prefix note.
- D2 freshness-supersede (DQ-2): pure offline mtime predicate questions_active in
  the new leaf src/analyst_questions.py (a full FRESH package supersedes a stale
  untouched 01-questions.md -> no Needs-Input loop, AC-6).
- D3 priority: questions take priority over "files ready" in
  _handle_analysis_approved_flow (_decide_analysis_outcome + _emit_analysis_*);
  off/out-of-scope runs the ORIGINAL byte-for-byte order (AC-9).
- D4 auto-park: set_task_paused on Needs Input via the ORCH-124 pause axis so the
  repo serial-gate FIFO is not wedged while waiting for a human (AC-4); D5 resume +
  unpark (clear_task_paused) in handle_status_start (analysis branch).

Flags (config.py, safe defaults): analyst_questions_gate_enabled /
analyst_questions_gate_repos (empty -> self-hosting only) /
analyst_needs_input_autopause_enabled.

Tests: test_orch120_analyst_needs_input.py (TC-01 regress + TC-02/03/06/09/10),
test_orch120_serial_gate_needs_input.py (TC-04), test_orch120_resume_unpark.py
(TC-05), test_orch120_questions_artifact_canon.py (TC-08), assert in
test_agent_prompts_canon.py (TC-07). Full suite green (2205 passed).

Refs: ORCH-120

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 13:15:27 +03:00
1fcbe06df5 architect(ET): auto-commit from architect run_id=778
All checks were successful
CI / test (push) Successful in 1m13s
2026-06-17 12:55:28 +03:00
432da2c4ed analyst(ET): auto-commit from analyst run_id=777
All checks were successful
CI / test (push) Successful in 1m13s
2026-06-17 12:45:52 +03:00
a4625df97c docs: init ORCH-120 business request
All checks were successful
CI / test (push) Successful in 1m12s
2026-06-17 12:37:50 +03:00
8c74430b13 Merge pull request 'fix(queue): enforce queued ⇒ no run-ownership invariant (ORCH-126)' (#145) from feature/ORCH-126-bug-queued-job-can-keep-stale- into main
Some checks failed
CI / test (push) Has been cancelled
2026-06-17 11:56:28 +03:00
deploy-finalizer
ab157324a7 deploy(ORCH-036): finalize SUCCESS for ORCH-126
All checks were successful
CI / test (push) Successful in 1m14s
CI / test (pull_request) Successful in 1m13s
2026-06-17 11:56:26 +03:00
staging-runner
aca0466162 staging(ORCH-115): staging gate SUCCESS for ORCH-126
All checks were successful
CI / test (push) Successful in 1m20s
CI / test (pull_request) Successful in 1m12s
2026-06-17 11:50:19 +03:00
test-runner
3b8aca03ee test(ORCH-116): test gate PASS for ORCH-126
Some checks failed
CI / test (push) Has been cancelled
CI / test (pull_request) Successful in 1m18s
2026-06-17 11:48:44 +03:00
c8632f4b48 reviewer(ET): auto-commit from reviewer run_id=776
All checks were successful
CI / test (push) Successful in 1m18s
CI / test (pull_request) Successful in 1m14s
2026-06-17 11:47:05 +03:00
d7e7a4d817 fix(queue): enforce queued ⇒ no run-ownership invariant (ORCH-126)
All checks were successful
CI / test (push) Successful in 1m14s
CI / test (pull_request) Successful in 1m15s
Queued analyst-jobs hung forever even with ORCH_SERIAL_GATE_ENABLED=false
(incident ORCH-124/125, job 2286: queued + run_id=759/760 + pid=35/42 +
started_at=NULL — physically impossible). No path returning a job to
'queued' reset its run-ownership (run_id/pid); after a container restart a
reused pid made pid_alive(stale)=True, so the job-reaper Tier-1 saw a phantom
'running' and at max_concurrency=1 wedged the claim of the whole shared queue.

Enforce the invariant `status='queued' ⇒ run_id IS NULL AND pid IS NULL AND
started_at IS NULL` on existing columns (no schema change):

- D1 forward-cleanup: requeue_running_jobs / mark_job('queued') /
  mark_job_transient / reap_running_job('queued') reset run_id=NULL, pid=NULL
  in the same UPDATE that clears started_at; atomic status-guards preserved.
- D2 clean claim: claim_next_job resets pid/run_id on the queued->running flip
  (defense-in-depth) so the row carries pid IS NULL until _spawn stamps it.
- D4 self-heal + observability: db.find_impossible_queued_jobs /
  sanitize_impossible_queued run at startup (main.lifespan) and on each reaper
  tick (JobReaper.sanitize_impossible_queued_once, never-raise); counter
  impossible_queued_total in the GET /queue reaper block. Kill-switch
  ORCH_IMPOSSIBLE_QUEUED_SANITIZE_ENABLED (default on; gates only the D4 sweep).
- D5: reaper Tier-1 unchanged — the fix restores its precondition (pid reflects
  THIS run). Marked invariants ORCH-065/113/114/099 preserved.

Tests: tests/test_orch126_queued_stale_run.py (TC-01 mandatory regression
red->green; TC-02..TC-10). Full pytest tests/ -q green (2189 passed).
Docs: internals.md (run-ownership invariant section), .env.example, CHANGELOG;
cross-cutting adr-0052.

Refs: ORCH-126
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 11:39:26 +03:00
3fb7bd6e4c architect(ET): auto-commit from architect run_id=774
All checks were successful
CI / test (push) Successful in 1m12s
2026-06-17 11:22:30 +03:00
453c5b7d04 analyst(ET): auto-commit from analyst run_id=773
All checks were successful
CI / test (push) Successful in 1m12s
2026-06-17 11:07:33 +03:00
a5f691fc96 docs: init ORCH-126 business request
All checks were successful
CI / test (push) Successful in 1m17s
2026-06-17 11:00:16 +03:00
8e2281aab4 Merge pull request 'fix(serial-gate): pause-without-blocking via per-task park signal (ORCH-124)' (#144) from feature/ORCH-124-bug-serial-gate-treats-backlog into main
Some checks failed
CI / test (push) Has been cancelled
2026-06-16 22:46:02 +03:00
deploy-finalizer
895fb3ab44 deploy(ORCH-036): finalize SUCCESS for ORCH-124
All checks were successful
CI / test (push) Successful in 1m13s
2026-06-16 22:46:01 +03:00