omp-conductor 0.3.20 → 0.3.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omp-conductor",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.21",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A 24/7 dispatcher that takes ready GitHub issues to green, mergeable PRs using omp coding sessions, with tiered escalation first to an orchestrator session and then to a human.",
|
|
@@ -121,24 +121,37 @@ any agent is: it is long-lived, it can see everything that merged since the last
|
|
|
121
121
|
release, and batching is exactly the judgement a per-issue session cannot make.
|
|
122
122
|
|
|
123
123
|
So frame it as **three** options, in this order, and name the default. Each one
|
|
124
|
-
maps to
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
124
|
+
maps to two independent wizard answers:
|
|
125
|
+
|
|
126
|
+
- `authority.release` says **who owns the release decision**;
|
|
127
|
+
- `releasePolicy` is the mechanical tool gate that says whether release-shaped
|
|
128
|
+
commands may run at all.
|
|
129
|
+
|
|
130
|
+
The interview decides both answers, and `/conductor setup` records them. Never
|
|
131
|
+
write either value into the brief or hand-edit `config.json`: config is the
|
|
132
|
+
single source, and the wizard's dry run is where the operator sees the combined
|
|
133
|
+
grant.
|
|
128
134
|
|
|
129
135
|
1. **Humans release.** *(default, and what the package ships)* Work ends at a
|
|
130
|
-
green PR. Merging is a separate
|
|
131
|
-
action
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
2. **The orchestrator releases up to a named boundary.**
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
136
|
+
green PR. Merging is a separate decision; releasing is a separate human
|
|
137
|
+
action. Neither a worker nor the orchestrator tags, pins, publishes, or
|
|
138
|
+
deploys. "This needs releasing" becomes something the orchestrator reports.
|
|
139
|
+
→ `authority.release=human`, `releasePolicy=none`; answer **no** to both
|
|
140
|
+
release confirms.
|
|
141
|
+
2. **The orchestrator releases up to a named boundary.** Delegate release
|
|
142
|
+
authority only when its leg includes the first release action (for example,
|
|
143
|
+
creating a tag or dispatching a release workflow). → usually
|
|
144
|
+
`authority.release=orchestrator`, `releasePolicy=operator-brief`, with the
|
|
145
|
+
boundary in the procedure rather than in the grant. If its leg ends before
|
|
146
|
+
that action, use `authority.release=human`, `releasePolicy=none`.
|
|
147
|
+
3. **The orchestrator releases fully.** →
|
|
148
|
+
`authority.release=orchestrator`, `releasePolicy=operator-brief`.
|
|
149
|
+
|
|
150
|
+
Merge authority is its own confirm in every option. Also say what opening the
|
|
151
|
+
tool gate means: it is project-wide and is passed to worker sessions as well as
|
|
152
|
+
the orchestrator. It does not grant workers release authority — their brief
|
|
153
|
+
still stops them at a green PR — but it removes the mechanical block. Never open
|
|
154
|
+
it until the operator has reviewed the release procedure and stopping boundary.
|
|
142
155
|
|
|
143
156
|
Then ask the question that makes option 2 real:
|
|
144
157
|
|
|
@@ -443,12 +456,15 @@ PR URL, an issue number, or a named check actually read.* "Should be fine",
|
|
|
443
456
|
"looks green" and "probably passing" are not evidence.
|
|
444
457
|
|
|
445
458
|
Know what is *not* up there, though, because operators expect it to be: the
|
|
446
|
-
orchestrator's
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
orchestrator
|
|
451
|
-
|
|
459
|
+
orchestrator's merge and release authority is **not** a hard boundary. It comes
|
|
460
|
+
from the two `authority` answers in config. Release execution has a second,
|
|
461
|
+
independent config control: `releasePolicy=none` mechanically blocks tags,
|
|
462
|
+
publishing, releases, and deploy commands even when
|
|
463
|
+
`authority.release=orchestrator`; `operator-brief` opens that gate for the
|
|
464
|
+
reviewed procedure. What is fixed above the banner is that a *worker* never
|
|
465
|
+
merges or releases, and that PRs land one at a time with a freshness re-check.
|
|
466
|
+
Changing either release control needs no negotiation with the shipped half, but
|
|
467
|
+
both must agree with the procedure below the banner.
|
|
452
468
|
|
|
453
469
|
**Below the banner — rewrite from the interview.**
|
|
454
470
|
|
|
@@ -552,9 +568,11 @@ label; whether to rename the state labels; routing label prefix; then per repo t
|
|
|
552
568
|
routing key, clone URL, default branch and **pre-push gates** (your Step 2
|
|
553
569
|
proposal, in `cmd @ cwd` form); whether to add another repo; whether to set up
|
|
554
570
|
**code-graph discovery** and the root its clones live under (Step 8); caps; the
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
571
|
+
merge and release authority confirms; the independent **Release tool gate**
|
|
572
|
+
confirm (`none` or `operator-brief`); the worker model; the Telegram chat id for
|
|
573
|
+
tier 2; the escalation fallback; whether an orchestrator session already runs
|
|
574
|
+
elsewhere; the report scope; and finally whether to write `ORCHESTRATOR.md` +
|
|
575
|
+
`POLICY.md`.
|
|
558
576
|
|
|
559
577
|
The end of the wizard is load-bearing:
|
|
560
578
|
|
|
@@ -565,6 +583,12 @@ The end of the wizard is load-bearing:
|
|
|
565
583
|
- **Nothing changes before consent.** Setup creates no label, file, database, or
|
|
566
584
|
arm marker before the operator agrees. Never answer that consent prompt for
|
|
567
585
|
the operator.
|
|
586
|
+
- **Review authority and gate together.** If the procedure assigns tags,
|
|
587
|
+
publishing, release creation, or deploy commands to the orchestrator, the dry
|
|
588
|
+
run must show both `release=orchestrator` and
|
|
589
|
+
`releasePolicy=operator-brief`. `release=orchestrator` with
|
|
590
|
+
`releasePolicy=none` assigns the job while mechanically preventing it. A
|
|
591
|
+
human-owned release should normally remain `releasePolicy=none`.
|
|
568
592
|
- **The host plan is part of consent.** For an external orchestrator, setup names
|
|
569
593
|
the heartbeat file and both safety gates. It also names the staged systemd
|
|
570
594
|
unit. An invalid existing heartbeat stops setup before any write.
|