checkpoint: multi-repo Gitea ingestion, per-project repos, rotation anchor_sha fix
Pre-existing uncommitted work found at session start: rotation now emits anchor_sha on TaskReleased (previously silently dropped by store.Append validation), multi-repo Gitea provider support, per-project git worktree roots, and associated test coverage. Committing as a checkpoint before starting remediation work tracked in AUDIT.md.
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
// Annotated reference for config.example.json (registry.Config, internal/registry/registry.go).
|
||||
// This file is NOT valid JSON (it has comments) and is not loaded by orchestra —
|
||||
// it exists purely to document fields. Copy config.example.json, not this file.
|
||||
{
|
||||
// Static project topology. One entry per project the fleet routes tasks for.
|
||||
"projects": [
|
||||
{
|
||||
"id": "correx", // Project id; tasks/events are tagged with this.
|
||||
"machine_affinity": ["mainframe"], // Machine ids (below) this project may run on.
|
||||
// Required — a project with no affinity can't be routed.
|
||||
"repo": "/var/lib/orchestra/repos/correx.git", // Optional per-project git repo path.
|
||||
// Overrides the global ORCHESTRA_REPO default.
|
||||
"worktree_root": "/var/lib/orchestra/worktrees/correx" // Optional per-project worktree dir.
|
||||
// Overrides global ORCHESTRA_WORKTREE_ROOT.
|
||||
},
|
||||
{
|
||||
"id": "maven",
|
||||
"machine_affinity": ["mainframe", "satellite"] // Multiple affinities: routable to either machine.
|
||||
// repo/worktree_root omitted here: falls back to the deployment's global default.
|
||||
}
|
||||
],
|
||||
|
||||
// Physical/logical machines in the fleet. herdrs.machine_id below must reference one of these.
|
||||
"machines": [
|
||||
{ "id": "mainframe", "address": "10.0.0.10:9145" }, // address: host:port this machine's orchestra API listens on.
|
||||
{ "id": "satellite", "address": "10.0.0.11:9145" }
|
||||
],
|
||||
|
||||
// Herdrs: individual harness worker slots that execute tasks.
|
||||
"herdrs": [
|
||||
{
|
||||
"id": "mainframe-claude-1", // Unique herdr id.
|
||||
"machine_id": "mainframe", // Which machine (above) this herdr runs on.
|
||||
// "address" omitted: falls back to the parent machine's address (used here since
|
||||
// this herdr's harness listens on the machine's default port).
|
||||
"harness": "claude", // Harness adapter to use: "claude" | "codex" | "opencode".
|
||||
"protocol": "1", // Herdr wire protocol version. Falls back to
|
||||
// ORCHESTRA_HERDR_PROTOCOL if omitted.
|
||||
"capabilities": ["code", "review"], // Task capability tags this herdr can accept.
|
||||
"concurrency": 2, // Max simultaneous sessions this herdr will run.
|
||||
"quota_limit_5h": 50, // Rolling 5-hour usage quota (harness-specific units).
|
||||
"quota_limit_weekly": 500 // Rolling weekly usage quota.
|
||||
// "quota_limit" (deprecated): if set without quota_limit_5h, treated as weekly-only,
|
||||
// to preserve old configs' historical meaning without inventing a 5h cap.
|
||||
},
|
||||
{
|
||||
"id": "satellite-claude-1",
|
||||
"machine_id": "satellite",
|
||||
"address": "10.0.0.11:9245", // Explicit override: this herdr listens on a non-default
|
||||
// port on its machine (e.g. multiple herdrs per machine).
|
||||
"harness": "claude",
|
||||
"protocol": "1",
|
||||
"capabilities": ["code"],
|
||||
"concurrency": 1,
|
||||
"quota_limit_5h": 20,
|
||||
"quota_limit_weekly": 200
|
||||
},
|
||||
{
|
||||
"id": "mainframe-codex-1",
|
||||
"machine_id": "mainframe",
|
||||
"harness": "codex", // OpenAI Codex CLI harness adapter.
|
||||
"protocol": "1",
|
||||
"capabilities": ["code"],
|
||||
"concurrency": 1,
|
||||
"quota_limit_weekly": 300 // codex has no separate 5h window tracked here; weekly only.
|
||||
},
|
||||
{
|
||||
"id": "satellite-opencode-1",
|
||||
"machine_id": "satellite",
|
||||
"address": "10.0.0.11:9345",
|
||||
"harness": "opencode", // OpenCode CLI harness adapter.
|
||||
"protocol": "1",
|
||||
"capabilities": ["code", "review"],
|
||||
"concurrency": 1,
|
||||
"quota_limit_weekly": 300
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user