refactor: split supervisor into infra + per-project, make poll scripts config-driven

Supervisor split (#26):
- Layer 1 (infra): P0 memory, P1 disk, P4 housekeeping — runs once, project-agnostic
- Layer 2 (per-project): P2 CI/dev-agent, P3 PRs/deps — iterates projects/*.toml
- Adding a new project requires only a new TOML file, no code changes

Poll scripts accept project TOML arg (#27):
- dev-poll.sh, review-poll.sh, gardener-poll.sh accept optional project TOML as $1
- env.sh loads PROJECT_TOML if set, overriding .env defaults
- Cron: `dev-poll.sh projects/versi.toml` targets that project

New files:
- lib/load-project.sh: TOML to env var loader (Python tomllib)
- projects/versi.toml: current project config extracted from .env

Backwards compatible: scripts without a TOML arg fall back to .env config.

Closes #26, Closes #27

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
johba 2026-03-17 08:57:18 +01:00
parent e503273fba
commit 9050413994
7 changed files with 438 additions and 297 deletions

21
projects/versi.toml Normal file
View file

@ -0,0 +1,21 @@
# projects/versi.toml — Project config for johba/versi
#
# This file defines project-specific settings for disinto agents.
# Drop a new TOML file here to add another project — no code changes needed.
name = "versi"
repo = "johba/versi"
repo_root = "/home/admin/versi"
primary_branch = "main"
[ci]
woodpecker_repo_id = 3
stale_minutes = 60
[services]
containers = []
[monitoring]
check_prs = true
check_dev_agent = true
check_pipeline_stall = true