Dev Agent
fd3dac7d22
feat(queue): add jobs table + queue helpers and config (ORCH-1)
...
Persistent SQLite job queue (F-2b): jobs table + idx, atomic claim_next_job,
enqueue/mark/count/requeue/get helpers. New settings max_concurrency
(ORCH_MAX_CONCURRENCY) and queue_poll_interval (ORCH_QUEUE_POLL_INTERVAL).
2026-06-02 23:58:44 +03:00
b021ff7cb0
Merge pull request 'ORCH-6: multi-repo (project filter + repo/prefix per project)' ( #2 ) from feature/ORCH-6-multirepo into main
2026-06-02 23:42:29 +03:00
Dev Agent
ca81f38330
docs: document multi-repo registry + ORCH-6 bugfix and incident
...
ORCH-6: ARCHITECTURE.md gets a project-registry section; README explains
how to add a project via ORCH_PROJECTS_JSON; BUGFIXES_2026-06-03.md
records the fix and links the 2026-06-02 webhook autorun incident.
2026-06-02 22:30:51 +03:00
Dev Agent
c1f35a2047
test(projects,webhook): cover registry resolvers + project filter
...
ORCH-6: test_projects.py covers resolvers and ORCH_PROJECTS_JSON parsing
(valid/malformed/fallback). test_plane_webhook.py covers the webhook
project filter via TestClient (unknown->ignored, orchestrator->orchestrator
repo, enduro->enduro-trails, independent ORCH/ET prefixes); launcher
mocked. test_webhooks.py: register proj-1 so existing ET fixtures pass.
2026-06-02 22:30:51 +03:00
Dev Agent
a6f6a43c1c
fix(webhooks/gitea): ignore pushes/events for repos outside the registry
...
ORCH-6: get_project_by_repo None -> ignored, so events for unknown repos
do not trigger the pipeline.
2026-06-02 22:30:42 +03:00
Dev Agent
171f4eb304
fix(webhooks/plane): filter by project + resolve repo/prefix from registry
...
ORCH-6 / incident 2026-06-02: ignore work items from unknown Plane
projects (status=ignored) instead of funneling everything into
default_repo. Resolve repo, work-item prefix and Plane sync project from
the registry by data.project.
2026-06-02 22:30:42 +03:00
Dev Agent
a87c633003
refactor(plane_sync): parameterize project_id (backward compatible)
...
ORCH-6: sync functions resolve the issue PROJECT_ID via the registry
(get_project_by_repo) and accept project_id; default stays enduro so
existing ET callers keep working.
2026-06-02 22:30:42 +03:00
Dev Agent
0797f958dc
feat(db): per-project work-item prefix in get_next_work_item_id
...
ORCH-6: get_next_work_item_id(repo, prefix="ET") numbers per (repo, prefix)
so orchestrator issues number ORCH-001 independently of the ET sequence.
Default prefix stays ET for backward compatibility.
2026-06-02 22:30:42 +03:00
Dev Agent
36d5f25f2a
feat(projects): add project registry (Plane id -> repo/prefix mapping)
...
ORCH-6: src/projects.py introduces ProjectConfig + resolvers
(get_project_by_plane_id/by_repo, known_plane_project_ids) keyed by
Plane project uuid. Source: ORCH_PROJECTS_JSON env (config.projects_json),
with a built-in default registry (enduro-trails + orchestrator) and
robust parsing (malformed JSON/entries fall back to default).
2026-06-02 22:30:42 +03:00
Dev Agent
1ebe8afc23
feat(worktree): git worktree per task to isolate shared /repos (ORCH-2 / S-4)
...
- add src/git_worktree.py: ensure/remove/get_worktree_path
- config: worktrees_dir=/repos/_wt
- launcher: agent runs in per-branch worktree; task-file + commit/push in worktree; no shared checkout
- qg/checks: read artifacts + run make test from worktree (branch arg, backward-compatible)
- webhooks/plane: pass branch into QG dispatch; review fallback from worktree
- webhooks/gitea: keep read-only branch --contains in main clone (documented)
- tests: test_git_worktree.py (isolation) + update test_launcher write-task-file
- docs: ARCHITECTURE worktree section + BUGFIXES_2026-06-02_ORCH2
Preserves B-1/B-2/S-1/S-5 fixes (paths now point at worktree).
2026-06-02 21:12:06 +03:00
Dev Agent
66a37612fd
docs(bugfixes): add safe.directory, init:true findings and autonomy test result
2026-06-02 20:22:51 +03:00
Dev Agent
57cca14ed3
fix(compose): init:true (PID1 reaper) to reap claude grandchild zombies (B-2)
2026-06-02 20:20:33 +03:00
Dev Agent
5de8462a13
fix(docker): trust /repos for git (safe.directory) so launcher commit/push works
2026-06-02 20:18:44 +03:00
Dev Agent
553e0aae0c
docs: update QG table, task-file write, orphan recovery; add BUGFIXES_2026-06-02
2026-06-02 20:12:29 +03:00
Dev Agent
67b9f814b5
test(launcher): cover _write_task_file and reviewer verdict parsing (L-5)
2026-06-02 20:12:29 +03:00
Dev Agent
212352997e
fix(main): proper orphan recovery with per-run warning + notify (M-1)
2026-06-02 20:12:29 +03:00
Dev Agent
b585701c62
fix(webhooks): dispatch new QGs; stop false Gitea CI alerts (S-1)
...
- plane._try_advance_stage handles check_tests_local + check_reviewer_verdict
- gitea.handle_ci_status: failure -> debug log only (CI not authoritative)
2026-06-02 20:12:29 +03:00
Dev Agent
0924783be3
fix(qg): frontmatter-only reviewer verdict + local test gate (S-5, S-1)
...
- check_reviewer_verdict reads verdict: from YAML frontmatter of 12-review.md only
- add check_tests_local: orchestrator runs make test in /repos/<repo>
- stages: development QG -> check_tests_local
2026-06-02 20:12:29 +03:00
Dev Agent
265a5ef1e6
fix(launcher): write task file to /repos without docker; stdout->file, no PIPE zombies (B-1, B-2)
...
- _write_task_file writes directly to mounted /repos/<repo>, raises on failure
- Popen stdout=log_fh at OS level; _monitor_agent simplified to proc.wait()+close
- remove PIPE reader thread and startup-timeout (watchdog by pid stays)
- dispatch check_tests_local args (repo, branch)
2026-06-02 20:12:29 +03:00
Dev Agent
f575f6bc6a
chore: save WIP changes before audit fixes
...
- notifications: Telegram integration, richer stage/agent/QG notifications
- plane_sync: explicit Plane state IDs, needs_input/in_review/blocked helpers, links in comments
- launcher: deployer stage, model flag (opus), PR auto-create, REQUEST_CHANGES/tester/architect rollback+retry logic, partial check_reviewer_verdict path
- qg/checks: add check_reviewer_verdict (substring-based, will be hardened in S-5)
- stages: review->check_reviewer_verdict, testing->deployer agent
- config: telegram_bot_token/chat_id settings
2026-06-02 19:57:43 +03:00
claude-bot
8715dd7148
feat(deploy): SSH key mount, deploy env vars, openssh-client in image
2026-06-01 20:03:27 +03:00
Dev Agent
e27e489157
fix(plane-webhook): read issue/comment_stripped fields from Plane comment payload
2026-06-01 19:17:14 +03:00
51f7364532
feat: integrate Analyst into Plane/Orchestrator pipeline
...
- Add git fetch+checkout in agent launch cmd (ensures correct branch)
- Add git fetch+checkout in _monitor_agent before commit/push
- Post start comment in Plane when analyst launches
- Post :approved: request comment after analyst completes successfully
- Branch lookup moved before cmd construction for reuse
2026-05-31 20:15:01 +03:00
Dev Agent
81e0e383e0
feat(analysis): add check_analysis_approved QG with stakeholder approval requirement
...
- stages.py: QG renamed to check_analysis_approved (requires :approved: comment)
- qg/checks.py: new check_analysis_approved verifies files + Plane :approved: comment
- launcher.py: skip auto-advance for analysis stage (requires human approval)
- plane.py: route check_analysis_approved in _try_advance_stage
- docs/ARCHITECTURE.md: updated QG table and flow description
2026-05-31 15:19:03 +03:00
Dev Agent
0f0b984656
docs: add pipeline design backlog (audit + backlog mgmt)
2026-05-23 09:17:41 +03:00
Dev Agent
267bc58fb2
docs: update README, add ARCHITECTURE.md with full system documentation
2026-05-22 14:09:24 +03:00
Dev Agent
0ad56e1f0a
fix: tini entrypoint, event routing wildcard, orphan recovery
2026-05-22 13:52:46 +03:00
Dev Agent
c326ef0ac4
docs: lessons learned ET-006 — problems and solutions
2026-05-22 13:45:40 +03:00
Dev Agent
b545665e2d
feat: full pipeline fixes - CI status branch lookup, review webhook routing, auto-advance, plane sync
...
- handle_ci_status: fallback git branch -r --contains when branches[] empty
- webhook router: handle pull_request_approved event type
- handle_pr: map review.type to review.state for new Gitea format
- launcher: auto-advance stage after agent completion (_try_advance_stage)
- plane_sync: notify Plane on stage changes
- stages.py: stage machine with QG definitions
- notifications.py: stage change notifications
- safe.directory fix for container git operations
2026-05-22 01:57:02 +03:00
Dev Agent
b428163c32
docs: bugfixes 2026-05-21 (5 fixes for CI status, review webhook, auto-advance)
2026-05-22 01:56:47 +03:00
Dev Agent
3116ae67bb
chore: clean up .gitignore, remove cached files from tracking
2026-05-19 15:58:45 +03:00
Dev Agent
95072e000f
fix: tests — add setup_db fixture for init_db in test env
2026-05-19 15:58:37 +03:00
Dev Agent
8859c38a2a
chore: add .gitignore, remove .env from tracking
2026-05-19 15:57:13 +03:00
Dev Agent
daf8cdad9e
feat: orchestrator MVP — webhooks, agent launcher, QG checks
2026-05-19 15:57:00 +03:00