@ai-dossier/sched 0.46.1 → 0.48.0
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/README.md +102 -17
- package/dist/anchor-close.d.ts.map +1 -1
- package/dist/anchor-close.js +2 -1
- package/dist/anchor-close.js.map +1 -1
- package/dist/batch-dispatch.d.ts +23 -2
- package/dist/batch-dispatch.d.ts.map +1 -1
- package/dist/batch-dispatch.js +1057 -209
- package/dist/batch-dispatch.js.map +1 -1
- package/dist/dispatch.d.ts +17 -0
- package/dist/dispatch.d.ts.map +1 -1
- package/dist/dispatch.js +31 -0
- package/dist/dispatch.js.map +1 -1
- package/dist/engine.d.ts +3 -2
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +13 -4
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -4
- package/dist/index.js.map +1 -1
- package/dist/journal.d.ts +4 -1
- package/dist/journal.d.ts.map +1 -1
- package/dist/journal.js +5 -2
- package/dist/journal.js.map +1 -1
- package/dist/persist.d.ts.map +1 -1
- package/dist/persist.js +10 -1
- package/dist/persist.js.map +1 -1
- package/dist/recovery.d.ts +39 -3
- package/dist/recovery.d.ts.map +1 -1
- package/dist/recovery.js +206 -46
- package/dist/recovery.js.map +1 -1
- package/dist/scheduler.d.ts +15 -1
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +31 -5
- package/dist/scheduler.js.map +1 -1
- package/dist/state.d.ts +94 -8
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +332 -26
- package/dist/state.js.map +1 -1
- package/dist/status.d.ts +29 -1
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +63 -3
- package/dist/status.js.map +1 -1
- package/dist/types.d.ts +133 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +27 -2
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,9 +32,10 @@ ai-dossier sched status # queue (+pr/cleanup), engine lease, slots, ba
|
|
|
32
32
|
ai-dossier sched pause # prevent every new agent process; live units keep running
|
|
33
33
|
ai-dossier sched resume
|
|
34
34
|
ai-dossier sched stop --issue 42 # terminate one full-cycle agent and record it stopped (no recovery)
|
|
35
|
-
ai-dossier sched stop --batch b1 # terminate
|
|
35
|
+
ai-dossier sched stop --batch b1 # terminate every batch agent (incl. parallel members) and stop unfinished members
|
|
36
36
|
ai-dossier sched abandon --issue 42 --reason "operator abort"
|
|
37
|
-
ai-dossier sched abandon --batch b1 # dissolve;
|
|
37
|
+
ai-dossier sched abandon --batch b1 # dissolve; every unshipped member — parked and validated ones included — requeues as full-cycle
|
|
38
|
+
ai-dossier sched requeue --issue 42 # a PARKED batch member (evicted / handed-back) → full-cycle from its member branch, on the batch profile (#810)
|
|
38
39
|
ai-dossier sched stats --issues 4..9 # per-issue tokens/cost from ~/.dossier/runs.jsonl (#524)
|
|
39
40
|
ai-dossier sched stats --batch b1 --project owner-repo # batch member/tail/report/fix costs from raw dispatch logs (#564)
|
|
40
41
|
```
|
|
@@ -53,8 +54,8 @@ directory directly, reconstructing costs from the raw dispatch logs rather than
|
|
|
53
54
|
takeovers; it does not terminate agents that are already running. `stop --issue <n>` is the
|
|
54
55
|
single-command stop path: it PID-start-safely terminates that issue's live agent, releases its
|
|
55
56
|
slot, and records a terminal `stopped` outcome that will not recover or escalate. An active
|
|
56
|
-
slot-mode member must instead be stopped through `stop --batch <id>`, which terminates
|
|
57
|
-
|
|
57
|
+
slot-mode member must instead be stopped through `stop --batch <id>`, which terminates every agent
|
|
58
|
+
the batch holds (its own slot plus one per running parallel member, `batch:<id>#<issue>`) and atomically stops the batch and its unfinished members. `abandon` only records failure
|
|
58
59
|
and releases the slot; it intentionally does not terminate its process.
|
|
59
60
|
|
|
60
61
|
Since #507, `enqueue` additionally reads each candidate issue's live GitHub labels (one
|
|
@@ -520,7 +521,9 @@ against real scratch repos.
|
|
|
520
521
|
validating → attributing → fixing (ONE bounded attempt) → validating
|
|
521
522
|
→ evicting (revert the member's commits) → validating
|
|
522
523
|
evictions > max(ceil(N × fraction), min_evictions_before_dissolve), or a
|
|
523
|
-
revert conflict → dissolving → members requeued (`dissolve_policy`, #563
|
|
524
|
+
revert conflict → dissolving → members requeued (`dissolve_policy`, #563;
|
|
525
|
+
#810: in-flight members park, and with VALIDATED
|
|
526
|
+
members present → blocked `dissolve-refused:<why>`)
|
|
524
527
|
same threshold crossed, but the survivors' re-run suite came back green
|
|
525
528
|
→ reviewing (batch preserved; only the evicted
|
|
526
529
|
members requeue — strategy=partial, #563)
|
|
@@ -580,7 +583,9 @@ awaiting-merge (CONFLICTING | auto-merge-blocked)
|
|
|
580
583
|
`state.json` persisted before this fix shows one row per member in both `sched status`
|
|
581
584
|
and `sched status --json`; the stored array is left as written.
|
|
582
585
|
4. **Dissolve (AC3)** — `dissolveBatch` marks the batch `dissolved` and requeues every
|
|
583
|
-
UNSHIPPED member
|
|
586
|
+
UNSHIPPED member (#810 exceptions for `full`: already-parked members are left as they
|
|
587
|
+
are, in-flight members with a member branch are parked `evicted`, and validated members
|
|
588
|
+
make the batch BLOCK instead — see [Parked members](#parked-members-hand-back-vs-eviction-810)): `full` (each as its own full-cycle run), `halved` (one or two fresh
|
|
584
589
|
`forming` half-batches — a single remaining member yields one — entries retagged,
|
|
585
590
|
eviction groups inherited where they survive the split), or `partial` (#563 — never
|
|
586
591
|
marks the batch `dissolved` at all: drops the evicted members from `batch.members` and
|
|
@@ -686,7 +691,8 @@ member got the light, relevance-scoped review). `review=full` is how a risk-floo
|
|
|
686
691
|
tier moves: the batch's dispatch profile still resolves the executor for that tier, so the
|
|
687
692
|
batch stays one agent family. The member's `spawned` journal event carries `review: "full"`.
|
|
688
693
|
The floor follows the member: its bounded fix attempt dispatches at `strong` (not
|
|
689
|
-
`FIX_ATTEMPT_TIER`), and
|
|
694
|
+
`FIX_ATTEMPT_TIER`), and a requeue to full-cycle (abandon, or `sched requeue` of a parked
|
|
695
|
+
member, #810) rewrites its `tier` to the
|
|
690
696
|
floored value (and `review` back to `light`, a slot-only concept) so the full cycle keeps it.
|
|
691
697
|
- **Prompt** — `buildMemberPrompt` substitutes a `{review}` placeholder.
|
|
692
698
|
`DEFAULT_MEMBER_PROMPT_TEMPLATE` places `{review}` itself (#804), so both `light` and `full`
|
|
@@ -754,7 +760,7 @@ only when `batchExec`/`runBatchSuite` are both configured on `EngineDeps` — dr
|
|
|
754
760
|
`batch:<id>` unit through:
|
|
755
761
|
|
|
756
762
|
```
|
|
757
|
-
ready → executing(member i/N
|
|
763
|
+
ready → executing(serial: member i/N ⟲ | parallel: members ∥, ordered landing) → validating → reviewing → shipping
|
|
758
764
|
→ awaiting-merge → merged → deployed → reported → done
|
|
759
765
|
failure rails: executing → dissolving (a member self-reports blocked)
|
|
760
766
|
validating → attributing → (fixing | evicting) → validating → dissolving
|
|
@@ -774,7 +780,25 @@ failure rails: executing → dissolving (a member self-reports blocked)
|
|
|
774
780
|
`warm_commands` even in repos that never use the pool for anything else).
|
|
775
781
|
This shared tree is the batch's INTEGRATION branch: members branch off it, and
|
|
776
782
|
the tail work (aggregate suite, review, ship) runs in it (#677).
|
|
777
|
-
- **Members run
|
|
783
|
+
- **Members run in PARALLEL by default (#809)** — each member's `member-cycle` agent holds
|
|
784
|
+
its OWN slot (`batch:<id>#<issue>`, bounded by config `member_parallelism`, default
|
|
785
|
+
`max_slots`, and free capacity), in its own worktree cut off the integration branch, so
|
|
786
|
+
a batch's member phase costs ≈ max(member), not sum(member). Nothing lands until a
|
|
787
|
+
member-order prefix is verified: each verified member is rebased onto the integration
|
|
788
|
+
TIP in its own worktree, its pushed branch refreshed (`--force-with-lease`), then
|
|
789
|
+
`merge --ff-only`-landed — the same linear, `(#<issue>)`-trailed history (and
|
|
790
|
+
`memberRanges` attribution) as serial landing. A member whose diff no longer rebases
|
|
791
|
+
onto the members landed before it is evicted (`landing-conflict`; since #810 parked
|
|
792
|
+
`evicted` with its pushed branch recorded, never requeued automatically) — batch-integrate's eviction verdict; a parent repair agent (#813) for
|
|
793
|
+
that conflict is a follow-up. A gate-inconclusive member still lands and keeps its
|
|
794
|
+
tree; once every member resolves the batch blocks on it exactly as in serial mode
|
|
795
|
+
(`sched resume --batch` works unchanged). The mode is decided ONCE at the
|
|
796
|
+
`ready → executing` claim and persisted (`BatchEntry.member_dispatch`, `member_runs`
|
|
797
|
+
per member; schema 1.23.0): **serial** when `member_parallelism` is 1, the batch has
|
|
798
|
+
an eviction group, or a member `deps` on another member; a batch already past `ready`
|
|
799
|
+
with no recorded mode (claimed by a pre-1.23.0 engine) stays serial across the upgrade.
|
|
800
|
+
Dissolve, `sched stop --batch` and `abandon` stop/release every member slot.
|
|
801
|
+
- **Serial mode: members run `member-cycle` one fresh agent at a time — each in its OWN
|
|
778
802
|
worktree** on its OWN branch `batch/<id>-m<n>-<issue>` (#677, RFC-0001 §J.3), cut off
|
|
779
803
|
the integration branch, warmed, and pushed before the agent spawns; the agent never
|
|
780
804
|
creates either. When the member's incremental gate passes, the scheduler LANDS the
|
|
@@ -801,8 +825,9 @@ failure rails: executing → dissolving (a member self-reports blocked)
|
|
|
801
825
|
gate later to resolve the block once the capability is fixed, and applies the same
|
|
802
826
|
evidence bar on the recheck — a still-unevidenced `task-failed` stays blocked rather
|
|
803
827
|
than evicting on a resume.
|
|
804
|
-
- **The batch's
|
|
805
|
-
agent, the report agent, a bounded fix agent) — never held across a wait
|
|
828
|
+
- **The batch's own slot is claimed FRESH for each live step** (a serial member, the tail
|
|
829
|
+
agent, the report agent, a bounded fix agent) — never held across a wait; parallel
|
|
830
|
+
members hold their own member slots instead. The aggregate
|
|
806
831
|
suite itself runs with NO slot claimed at all (deterministic engine work, not an LLM
|
|
807
832
|
step).
|
|
808
833
|
- **Two failure rails.** A member that never went green evicts directly (nothing to
|
|
@@ -937,6 +962,55 @@ completion and park events reuse the existing unit-generic names (`assigned`/`sp
|
|
|
937
962
|
`teardown-failed`) with `unit = batch:<id>`; the member `spawned` event also carries
|
|
938
963
|
`worktree` (#677) naming the member worktree the prompt was built with.
|
|
939
964
|
|
|
965
|
+
### Parked members: hand-back vs eviction (#810)
|
|
966
|
+
|
|
967
|
+
A batch member that leaves its batch before landing is **parked**, never auto-requeued:
|
|
968
|
+
|
|
969
|
+
- **`handed-back`** — the member posted its own terminal hand-back (`status=blocked
|
|
970
|
+
reason=<x>` at any phase, or `review partial`). A hand-back is a valued outcome, not a
|
|
971
|
+
batch failure: its `evictions[]` record carries `kind: 'handed-back'` and it **never
|
|
972
|
+
counts toward the dissolve threshold**. Journals `member-handed-back`.
|
|
973
|
+
- **`evicted`** — an engine-decided failure (unverified exit, incremental-gate
|
|
974
|
+
`task-failed`, landing conflict, worktree prep). Counts toward the threshold. Journals
|
|
975
|
+
`unit-failed`.
|
|
976
|
+
|
|
977
|
+
Both keep `mode: slot` + `batch`, record the member branch (`evictions[].branch`,
|
|
978
|
+
`failure_evidence.branch` — the pushed remote copy survives the member teardown) and stamp
|
|
979
|
+
the batch's `dispatch_profile` onto the entry. Neither is runnable until an operator runs
|
|
980
|
+
`sched requeue --issue <n>` (full-cycle on that profile; the cycle prompt gains a
|
|
981
|
+
`PRIOR WORK` instruction to continue from the member branch) or `sched abandon --issue <n>`.
|
|
982
|
+
`sched status` lists them under `== Parked members ==` with reason, branch, profile and
|
|
983
|
+
those exact commands (`parked_members` in `--json`).
|
|
984
|
+
|
|
985
|
+
The pre-#810 rail requeued every eviction `mode: full, dispatch_profile: null` from the
|
|
986
|
+
base branch — discarding the member's commits and running it on the config-default
|
|
987
|
+
provider (imboard b-20260924-02/-04).
|
|
988
|
+
|
|
989
|
+
Dissolve never throws validated work away:
|
|
990
|
+
|
|
991
|
+
- On the executing rail, an eviction that crosses the threshold while members are already
|
|
992
|
+
`validated` (landed on the integration branch) does **not** dissolve: it journals
|
|
993
|
+
`dissolve-suppressed` and the batch continues with its remaining members.
|
|
994
|
+
- `dissolveBatch({ strategy: 'full' })` with validated members **blocks** the batch
|
|
995
|
+
(`blocked_reason: dissolve-refused:<reason>`, milestone `validated=`) instead of
|
|
996
|
+
requeueing them. Every other unshipped member is released as a dissolve would (in-flight
|
|
997
|
+
parked, the rest requeued on the batch profile), running member agents are stopped and
|
|
998
|
+
every slot is released, so the blocked batch holds only its validated work. `sched status`
|
|
999
|
+
names the members and the exits: for an unattributed failure or a missing profile,
|
|
1000
|
+
`gh pr create --head <integration branch> --base <base>` — once it merges,
|
|
1001
|
+
`reconcileStaleBlockedBatches` settles the validated members to shipped; for a red suite
|
|
1002
|
+
or a partial revert, inspect/fix the branch first; `sched abandon --batch` requeues them
|
|
1003
|
+
full-cycle instead. (A `sched resume --batch` arm for these blocks is a follow-up.) Without validated members it dissolves
|
|
1004
|
+
as before, except that in-flight members with a member branch are parked `evicted` and
|
|
1005
|
+
every requeue carries the batch's dispatch profile (`carryDispatchProfile: false` only
|
|
1006
|
+
for `dispatch-profile-missing:*`, where the profile itself is what broke).
|
|
1007
|
+
- Not changed: the `halved` PR-conflict split still re-batches its members, and
|
|
1008
|
+
aggregate-suite evictions (`evictMembers`, post-landing, member branch already deleted)
|
|
1009
|
+
still requeue full-cycle — now on the batch profile.
|
|
1010
|
+
|
|
1011
|
+
State schema 1.24.0: `IssueStatus` gains `handed-back`; `EvictionRecord` gains optional
|
|
1012
|
+
`kind`/`branch`, `FailureEvidence` optional `branch`.
|
|
1013
|
+
|
|
940
1014
|
## API surface
|
|
941
1015
|
|
|
942
1016
|
```ts
|
|
@@ -1021,13 +1095,22 @@ import {
|
|
|
1021
1095
|
handlePrConflict, // rebase + re-ship once, then dissolve into halves
|
|
1022
1096
|
createExecMilestonePoster, // batch milestones via `ai-dossier runstate post`
|
|
1023
1097
|
expandEvictionGroups, // members that must revert together (§E.4 eviction groups)
|
|
1024
|
-
requeueMember, // the one requeue path abandon
|
|
1098
|
+
requeueMember, // the one requeue path (abandon, aggregate eviction, dissolve, sched requeue)
|
|
1099
|
+
parkMember, // #810: park a member `evicted` / `handed-back` — never auto-dispatched
|
|
1100
|
+
requeueParkedMember, // #810: `sched requeue` — a parked member → full-cycle on its park-time profile
|
|
1101
|
+
PARKED_MEMBER_STATUSES, MEMBER_EXIT_KINDS, // #810: evicted | handed-back
|
|
1102
|
+
memberDispatchProfile, // #810: a member's profile (its own, else its batch's)
|
|
1103
|
+
recordedMemberBranch, // #810: where a member's un-landed work is
|
|
1104
|
+
validatedMembersOf, // #810: the work a dissolve must never throw away
|
|
1105
|
+
priorWorkInstruction, // #810: the PRIOR WORK prompt suffix for a requeued parked member
|
|
1025
1106
|
appendEvictions, // #595: the one evictions[] append — skips an issue already
|
|
1026
1107
|
// recorded, returns the duplicates so the caller can journal
|
|
1027
1108
|
distinctEvictions, // #595 read side: one record per member for a legacy state.json
|
|
1028
1109
|
duplicateEvictionDetail, // the one eviction-duplicate wording, shared by both rails
|
|
1029
1110
|
isPreservedMember, // the single definition of "already green"
|
|
1030
1111
|
createBatch, // the single BatchEntry constructor
|
|
1112
|
+
batchMemberUnit, // #809: a parallel member's slot unit, `batch:<id>#<issue>`
|
|
1113
|
+
slotsForBatch, // #809: every live slot a batch holds (its own + member slots)
|
|
1031
1114
|
type RecoveryDeps, // inject exec/repoDir/journal/milestone-poster/suite-runner/clock
|
|
1032
1115
|
type SuiteRunner, // re-runs the aggregate suite after a revert or rebase
|
|
1033
1116
|
type BatchMilestonePoster, // batch-milestone sink (createExecMilestonePoster is default)
|
|
@@ -1108,7 +1191,8 @@ telemetry" below.
|
|
|
1108
1191
|
│ # pr_poll_interval_ms, dispatch (incl. report_prompt,
|
|
1109
1192
|
│ # phase_stall_timeout_ms, fence_takeover_timeout_ms, tiers — #527,
|
|
1110
1193
|
│ # suite_command — #562, disallowed_tools — #591), auto_upgrade — #537,
|
|
1111
|
-
│ # dissolve_policy — #563
|
|
1194
|
+
│ # dissolve_policy — #563, default_batch_priority — #565,
|
|
1195
|
+
│ # max_full_review_members — #771, member_parallelism — #809
|
|
1112
1196
|
├── events.jsonl # append-only event journal (the operator's flight recorder)
|
|
1113
1197
|
├── runs/ # per-unit agent output logs (issue-<n>.log)
|
|
1114
1198
|
└── .sched-lock/ # cross-process directory mutex (pid; stolen from dead holders)
|
|
@@ -1215,8 +1299,8 @@ after-the-fact recovery, not a missing-data bug.
|
|
|
1215
1299
|
queue data.
|
|
1216
1300
|
- **Schema**: state/config files from #460 (schema 1.0.0), #464 (1.1.0), #468 (1.2.0),
|
|
1217
1301
|
#472 (1.3.0), #500 (1.4.0), #505 (1.5.0), #504 (1.6.0), #523 (1.7.0) and #524 (1.8.0)
|
|
1218
|
-
load and migrate to 1.
|
|
1219
|
-
|
|
1302
|
+
load and migrate to the current schema (1.24.0 — #810: no backfill, `kind`/`branch`
|
|
1303
|
+
optional, absent = an `evicted` record with no branch) automatically (slot `branch`/`last_head`/`pid_start`, slot `role` (inferred from the
|
|
1220
1304
|
unit's queue entry, with the persisted `phase` as a fallback — #500), entry
|
|
1221
1305
|
`pr`/`cleanup`/`failure_evidence`, batch `anchor`/`branch`/`run_id`/`eviction_groups`/
|
|
1222
1306
|
`evictions`/`fix_attempts`/`rebase_attempts`, state-level `last_pr_poll_at` backfill to
|
|
@@ -1228,7 +1312,8 @@ after-the-fact recovery, not a missing-data bug.
|
|
|
1228
1312
|
`stale_milestone_ignored_for` backfill to `null` — #610, and state-level
|
|
1229
1313
|
`consecutive_dispatch_api_errors`/`dispatch_pause_reset_at` backfill to `0`/`null` —
|
|
1230
1314
|
#629; batch `anchor_closed_at` and `anchor_close_failed_reason`/`_since`/`_ticks`
|
|
1231
|
-
backfill to `null`/`null`/`null`/`0` — #768, schema 1.22.0
|
|
1315
|
+
backfill to `null`/`null`/`null`/`0` — #768, schema 1.22.0; batch `member_dispatch`/`member_runs`
|
|
1316
|
+
backfill to `null`/`[]` — #809, schema 1.23.0 — a null mode past `ready` runs serially).
|
|
1232
1317
|
- **`max_slots`** bounds live units (`assigned | running | recovering`); dependency
|
|
1233
1318
|
edges gate readiness — an issue with an unmerged dependency, and a batch behind an
|
|
1234
1319
|
unmerged batch, are never runnable.
|
|
@@ -1279,7 +1364,7 @@ predicate in `anchor-close.ts`) over `blocked`/`done` batches touched within the
|
|
|
1279
1364
|
the imboard#4116 shape); that still needs a merge, i.e. write access. A member issue that no longer resolves
|
|
1280
1365
|
(deleted/transferred) reads `member-missing` — needs-operator, not an outage.
|
|
1281
1366
|
- **Never over a failure trail.** Any evicted member, any member in a failure status
|
|
1282
|
-
(`ISSUE_UNIVERSAL_FAILURE_EDGES` + `evicted`/`requeued`), any member requeued out of
|
|
1367
|
+
(`ISSUE_UNIVERSAL_FAILURE_EDGES` + `evicted`/`handed-back`/`requeued`), any member requeued out of
|
|
1283
1368
|
the batch, a dissolved/stopped batch, or a `decision-pending` label on the anchor or a
|
|
1284
1369
|
member (case-insensitive, `hasLabel`) leaves the anchor open. The ledger is re-checked
|
|
1285
1370
|
on a fresh load immediately before the close.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor-close.d.ts","sourceRoot":"","sources":["../src/anchor-close.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"anchor-close.d.ts","sourceRoot":"","sources":["../src/anchor-close.ts"],"names":[],"mappings":"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"}
|
package/dist/anchor-close.js
CHANGED
|
@@ -45,7 +45,8 @@ const state_1 = require("./state");
|
|
|
45
45
|
*/
|
|
46
46
|
const MEMBER_FAILURE_STATUSES = new Set([
|
|
47
47
|
...state_1.ISSUE_UNIVERSAL_FAILURE_EDGES,
|
|
48
|
-
|
|
48
|
+
// #810: both parked statuses — `evicted` and the member's own `handed-back`.
|
|
49
|
+
...state_1.PARKED_MEMBER_STATUSES,
|
|
49
50
|
'requeued',
|
|
50
51
|
]);
|
|
51
52
|
/**
|
package/dist/anchor-close.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor-close.js","sourceRoot":"","sources":["../src/anchor-close.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;
|
|
1
|
+
{"version":3,"file":"anchor-close.js","sourceRoot":"","sources":["../src/anchor-close.ts"],"names":[],"mappings":"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"}
|
package/dist/batch-dispatch.d.ts
CHANGED
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
* at batch-phase granularity instead of per-issue-phase granularity:
|
|
12
12
|
*
|
|
13
13
|
* ```
|
|
14
|
-
* ready → executing(member i/N
|
|
14
|
+
* ready → executing(serial: member i/N ⟲ | parallel: members ∥ + ordered landing)
|
|
15
|
+
* → validating → reviewing → shipping
|
|
15
16
|
* → awaiting-merge → merged → deployed → reported → done
|
|
16
17
|
* failure rails (RFC F.2/F.8/F.9):
|
|
17
18
|
* executing → dissolving (a member self-reports blocked, RFC F.1)
|
|
@@ -67,7 +68,7 @@ import type { SchedStore } from './persist';
|
|
|
67
68
|
import type { ExecFn } from './project';
|
|
68
69
|
import { type BatchSuiteContext, type SuiteResult } from './recovery';
|
|
69
70
|
import { type FsExists } from './teardown';
|
|
70
|
-
import type { BatchEntry, CapabilityGateResult, SchedConfig } from './types';
|
|
71
|
+
import type { BatchEntry, CapabilityGateResult, MemberDispatchMode, MemberExitKind, SchedConfig, SchedState } from './types';
|
|
71
72
|
export type { CapOutcome } from './types';
|
|
72
73
|
/** Everything batch dispatch needs from the outside world. */
|
|
73
74
|
export interface BatchDispatchDeps {
|
|
@@ -154,6 +155,12 @@ export interface MemberFailure {
|
|
|
154
155
|
reason: string;
|
|
155
156
|
detail: string;
|
|
156
157
|
extraKv?: Record<string, string>;
|
|
158
|
+
/**
|
|
159
|
+
* #810: `handed-back` when the member itself posted the terminal hand-back
|
|
160
|
+
* (`blocked` / `review partial` milestone) — parked, never counted toward
|
|
161
|
+
* the dissolve threshold. Absent = an engine-decided eviction.
|
|
162
|
+
*/
|
|
163
|
+
kind?: MemberExitKind;
|
|
157
164
|
}
|
|
158
165
|
/**
|
|
159
166
|
* The current member's own branch: `batch/<id>-m<n>-<issue>` (#677) — member
|
|
@@ -230,6 +237,20 @@ export declare function resumeBlockedGate(deps: BatchDispatchDeps, config: Sched
|
|
|
230
237
|
blockedBy?: 'inconclusive' | 'unevidenced-failure';
|
|
231
238
|
detail?: string;
|
|
232
239
|
};
|
|
240
|
+
/**
|
|
241
|
+
* How a batch should dispatch its members (#809) — decided once, at the
|
|
242
|
+
* `ready → executing` claim, and persisted on `BatchEntry.member_dispatch`.
|
|
243
|
+
*
|
|
244
|
+
* Serial when the operator set `member_parallelism: 1`, or the batch itself
|
|
245
|
+
* says its members are not independent: an eviction group (members that must
|
|
246
|
+
* revert together — e.g. one built on another's API) or a member whose `deps`
|
|
247
|
+
* names another member (it must see that member's landed work before it is
|
|
248
|
+
* cut). Parallel otherwise — the batch-cycle skill's and prep dossier's
|
|
249
|
+
* design (RFC-0001 §J.3: each member works off the integration branch and
|
|
250
|
+
* sees no one else's changes until the parent lands them).
|
|
251
|
+
*/
|
|
252
|
+
/** @internal exported for tests. */
|
|
253
|
+
export declare function memberDispatchModeFor(state: SchedState, batch: BatchEntry, config: SchedConfig): MemberDispatchMode;
|
|
233
254
|
/**
|
|
234
255
|
* One batch reconcile+refill pass. Called from `engine.ts`'s `tick()` after
|
|
235
256
|
* the issue-level pass — this pass never claims a slot the issue pass already
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-dispatch.d.ts","sourceRoot":"","sources":["../src/batch-dispatch.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"batch-dispatch.d.ts","sourceRoot":"","sources":["../src/batch-dispatch.ts"],"names":[],"mappings":"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"}
|