@bluewombat/runtime 0.9.0 → 0.10.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.
Files changed (69) hide show
  1. package/README.md +122 -52
  2. package/SPECS.md +36 -14
  3. package/dist/cli.js +4 -4
  4. package/dist/config/agent-shorthand.d.ts +24 -3
  5. package/dist/config/agent-shorthand.d.ts.map +1 -1
  6. package/dist/config/agent-shorthand.js +64 -19
  7. package/dist/config/agent-shorthand.js.map +1 -1
  8. package/dist/config/home.d.ts +2 -0
  9. package/dist/config/home.d.ts.map +1 -1
  10. package/dist/config/home.js +2 -0
  11. package/dist/config/home.js.map +1 -1
  12. package/dist/config/load-config.d.ts.map +1 -1
  13. package/dist/config/load-config.js +298 -46
  14. package/dist/config/load-config.js.map +1 -1
  15. package/dist/config/parse-args.d.ts +1 -1
  16. package/dist/config/parse-args.d.ts.map +1 -1
  17. package/dist/config/parse-args.js +83 -56
  18. package/dist/config/parse-args.js.map +1 -1
  19. package/dist/config/types.d.ts +104 -16
  20. package/dist/config/types.d.ts.map +1 -1
  21. package/dist/config/types.js +13 -1
  22. package/dist/config/types.js.map +1 -1
  23. package/dist/loop/authority.d.ts +38 -1
  24. package/dist/loop/authority.d.ts.map +1 -1
  25. package/dist/loop/authority.js +41 -2
  26. package/dist/loop/authority.js.map +1 -1
  27. package/dist/loop/context.d.ts +16 -1
  28. package/dist/loop/context.d.ts.map +1 -1
  29. package/dist/loop/drive.d.ts +9 -3
  30. package/dist/loop/drive.d.ts.map +1 -1
  31. package/dist/loop/drive.js +17 -7
  32. package/dist/loop/drive.js.map +1 -1
  33. package/dist/loop/features.d.ts.map +1 -1
  34. package/dist/loop/features.js +322 -59
  35. package/dist/loop/features.js.map +1 -1
  36. package/dist/loop/open-host.d.ts.map +1 -1
  37. package/dist/loop/open-host.js +109 -7
  38. package/dist/loop/open-host.js.map +1 -1
  39. package/dist/loop/report.d.ts.map +1 -1
  40. package/dist/loop/report.js +21 -9
  41. package/dist/loop/report.js.map +1 -1
  42. package/dist/loop/trace.js +1 -1
  43. package/dist/loop/trace.js.map +1 -1
  44. package/dist/loop/transformers.d.ts +16 -2
  45. package/dist/loop/transformers.d.ts.map +1 -1
  46. package/dist/loop/transformers.js +137 -22
  47. package/dist/loop/transformers.js.map +1 -1
  48. package/dist/loop/warm.js +1 -1
  49. package/dist/loop/warm.js.map +1 -1
  50. package/dist/operator/agent-plugins.d.ts.map +1 -1
  51. package/dist/operator/agent-plugins.js +14 -8
  52. package/dist/operator/agent-plugins.js.map +1 -1
  53. package/dist/operator/doctor.d.ts +1 -1
  54. package/dist/operator/doctor.d.ts.map +1 -1
  55. package/dist/operator/doctor.js +79 -29
  56. package/dist/operator/doctor.js.map +1 -1
  57. package/dist/operator/explain.d.ts.map +1 -1
  58. package/dist/operator/explain.js +37 -8
  59. package/dist/operator/explain.js.map +1 -1
  60. package/dist/operator/film.js +0 -3
  61. package/dist/operator/film.js.map +1 -1
  62. package/dist/operator/init.js +13 -8
  63. package/dist/operator/init.js.map +1 -1
  64. package/dist/operator/log.js +9 -2
  65. package/dist/operator/log.js.map +1 -1
  66. package/dist/operator/setup.d.ts.map +1 -1
  67. package/dist/operator/setup.js +2 -0
  68. package/dist/operator/setup.js.map +1 -1
  69. package/package.json +14 -14
@@ -1,4 +1,8 @@
1
- import { refreshWorkLine } from "./authority.js";
1
+ import { existsSync } from "node:fs";
2
+ import { rm } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ import { pathSegment } from "@bluewombat/conductor";
5
+ import { publish, refreshWorkLine } from "./authority.js";
2
6
  import { cancelTicket, handleCancel as cancelTicketByKey, handleResume as resumeTicketByKey, } from "./deliveries.js";
3
7
  import { driveUntilBlocked } from "./drive.js";
4
8
  import { pushReport } from "./report.js";
@@ -69,6 +73,19 @@ async function admitFeature(input, feature) {
69
73
  // about work already made: nothing here restarts it.
70
74
  const before = await input.ledger.getFeature(feature.key);
71
75
  if (before.ok && before.aggregate.state !== "waiting") {
76
+ // The label that leaves the e2e check out is the one thing a human can still change: it is
77
+ // honoured until the Feature is submitted, and read again by the check each time it runs.
78
+ if (before.aggregate.intention.skip_e2e !== feature.skip_e2e) {
79
+ const moved = await input.ledger.setFeatureSkipE2e({
80
+ key: feature.key,
81
+ skip: feature.skip_e2e,
82
+ });
83
+ if (moved.ok) {
84
+ input.journal.append({ event: "skip-e2e", key: feature.key, skip: feature.skip_e2e });
85
+ input.trace(`feature ${feature.key} ${feature.skip_e2e ? "now" : "no longer"} skips the e2e check`);
86
+ return;
87
+ }
88
+ }
72
89
  input.journal.append({ event: "skipped", key: feature.key, state: before.aggregate.state });
73
90
  return;
74
91
  }
@@ -82,6 +99,7 @@ async function admitFeature(input, feature) {
82
99
  external_id: feature.external_id,
83
100
  blocked_by: feature.blocked_by,
84
101
  merge_when_ready: feature.merge_when_ready,
102
+ ...(feature.skip_e2e ? { skip_e2e: true } : {}),
85
103
  ...(feature.title === undefined ? {} : { title: feature.title }),
86
104
  ...(feature.source === undefined ? {} : { source: feature.source }),
87
105
  };
@@ -131,6 +149,9 @@ export async function cancelFeatureFlow(input, key) {
131
149
  if (feature.line !== undefined) {
132
150
  await input.tickets.dropLine?.(feature.line);
133
151
  }
152
+ if (input.featureDelivery !== undefined) {
153
+ await rm(featureWorkspace(input.featureDelivery, key), { recursive: true, force: true });
154
+ }
134
155
  const cancelled = await input.ledger.cancelFeature(key);
135
156
  if (!cancelled.ok) {
136
157
  return;
@@ -174,6 +195,10 @@ export async function advanceProject(input, project) {
174
195
  return undefined;
175
196
  }
176
197
  }
198
+ /** What the tracker says of a Ticket beside its words. */
199
+ function marksOf(entry) {
200
+ return { noTests: entry.no_tests, e2e: entry.e2e === true };
201
+ }
177
202
  function refOf(feature) {
178
203
  const { intention } = feature;
179
204
  return {
@@ -188,7 +213,7 @@ function lineOf(feature) {
188
213
  const id = feature.intention.external_id ?? feature.intention.key;
189
214
  return `feature/${id.replace(/[^A-Za-z0-9._-]+/g, "-").replace(/^-+|-+$/g, "")}`;
190
215
  }
191
- function admissionOf(ticket, feature, among) {
216
+ function admissionOf(ticket, feature, among, marks) {
192
217
  return {
193
218
  key: ticket.key,
194
219
  project: ticket.project,
@@ -202,8 +227,46 @@ function admissionOf(ticket, feature, among) {
202
227
  ...(feature.line === undefined ? {} : { line: feature.line }),
203
228
  ...(ticket.title === undefined ? {} : { title: ticket.title }),
204
229
  ...(ticket.source === undefined ? {} : { source: ticket.source }),
230
+ // The Ticket that holds the acceptance suite writes the tests itself: none are written first.
231
+ ...(marks.noTests || marks.e2e ? { no_tests: true } : {}),
232
+ ...(marks.e2e ? { e2e: true } : {}),
205
233
  };
206
234
  }
235
+ /**
236
+ * What is wrong with a Feature of a Project that proves its Features by an e2e suite: it holds
237
+ * no e2e Ticket and is not marked to skip the check, holds several, or its e2e Ticket may start
238
+ * before the others have landed. Nothing: a Project without the check, or a Feature that skips it.
239
+ */
240
+ function e2eRefusal(input, feature, live) {
241
+ if (input.options.builder.e2e === undefined || feature.intention.skip_e2e === true) {
242
+ return undefined;
243
+ }
244
+ const holding = live.filter((entry) => entry.e2e);
245
+ const head = "This Project proves each Feature by an e2e acceptance suite, run once on the whole Feature.";
246
+ if (holding.length === 0) {
247
+ return `${head} The Feature has no e2e Ticket and is not marked skip-test-e2e: add the e2e Ticket (the scenarios agreed with the operator, blocked by every other Ticket), or mark the Feature to skip the check.`;
248
+ }
249
+ if (holding.length > 1) {
250
+ return `${head} The Feature holds ${holding.length} e2e Tickets: it holds one, with all its scenarios.`;
251
+ }
252
+ const only = holding[0];
253
+ const others = live.filter((entry) => !entry.e2e).map((entry) => entry.ticket.key);
254
+ const missing = others.filter((key) => !only?.ticket.blocked_by.includes(key));
255
+ if (only !== undefined && missing.length > 0) {
256
+ return `${head} The e2e Ticket ${only.ticket.key} must be blocked by every other Ticket of the Feature, so that it lands last. It is not blocked by: ${missing.join(", ")}.`;
257
+ }
258
+ return undefined;
259
+ }
260
+ /** Whether a Feature still holds an e2e Ticket that was not cancelled. */
261
+ async function holdsLiveE2eTicket(input, feature) {
262
+ for (const key of feature.tickets) {
263
+ const got = await input.ledger.get(key);
264
+ if (got.ok && got.aggregate.intention.e2e === true && got.aggregate.state !== "cancelled") {
265
+ return true;
266
+ }
267
+ }
268
+ return false;
269
+ }
207
270
  /**
208
271
  * Open the next Feature that may: waiting, nothing blocking it, and every one
209
272
  * of its Tickets written. Until then it waits and nothing is made.
@@ -232,6 +295,18 @@ async function openNextFeature(input, project) {
232
295
  });
233
296
  return;
234
297
  }
298
+ const refusal = e2eRefusal(input, feature, live);
299
+ if (refusal !== undefined) {
300
+ input.journal.append({ event: "invalid", key: feature.intention.key, reason: refusal });
301
+ await pushReport(input, {
302
+ event: "invalid",
303
+ key: feature.intention.key,
304
+ project,
305
+ eventId: `${feature.intention.key}:invalid:e2e:${refusal}`,
306
+ fields: { reason: refusal },
307
+ }, TO);
308
+ return;
309
+ }
235
310
  const target = input.workLine.target;
236
311
  let line;
237
312
  if (input.authority !== undefined &&
@@ -269,7 +344,7 @@ async function openNextFeature(input, project) {
269
344
  }
270
345
  const withLine = { ...feature, ...(line === undefined ? {} : { line }) };
271
346
  for (const entry of live) {
272
- await input.ledger.admit(admissionOf(entry.ticket, withLine, among));
347
+ await input.ledger.admit(admissionOf(entry.ticket, withLine, among, marksOf(entry)));
273
348
  }
274
349
  input.journal.append({
275
350
  event: "feature-opened",
@@ -306,6 +381,9 @@ async function refreshOnto(input, branch) {
306
381
  const refreshed = await refreshWorkLine({
307
382
  workLineStable: input.workLine.stable,
308
383
  workLineTarget: branch,
384
+ // A Feature's line that has not moved is brought up to the final branch
385
+ // first, so its Tickets read the code as it now is.
386
+ workLineBase: branch === input.workLine.target ? undefined : input.workLine.target,
309
387
  refreshArgv: input.options.authority?.refreshArgv ?? [],
310
388
  timeoutMs: input.options.timeoutMs,
311
389
  env: input.workLine.env,
@@ -356,8 +434,27 @@ async function syncTicket(input, feature, entry, known) {
356
434
  }
357
435
  // Only a Ticket that has not started takes the new words: the tracker's
358
436
  // fingerprint moves with every comment, and a unit in flight is not rewritten.
359
- if (state === "received" && current.aggregate.intention.fingerprint !== ticket.fingerprint) {
360
- await input.ledger.admit(admissionOf(ticket, feature, known));
437
+ // The label that says no tests are written first is not in the words, so it moves no
438
+ // fingerprint: it is compared on its own.
439
+ const marks = marksOf(entry);
440
+ const flagged = current.aggregate.intention.no_tests === true;
441
+ const holdsE2e = current.aggregate.intention.e2e === true;
442
+ if (state === "received" &&
443
+ (current.aggregate.intention.fingerprint !== ticket.fingerprint ||
444
+ flagged !== (marks.noTests || marks.e2e) ||
445
+ holdsE2e !== marks.e2e)) {
446
+ await input.ledger.admit(admissionOf(ticket, feature, known, marks));
447
+ }
448
+ // A Feature that is not put through the e2e check has no use of the Ticket that holds it.
449
+ if (feature.intention.skip_e2e === true && marks.e2e && LIVE.has(state)) {
450
+ input.journal.append({
451
+ event: "e2e-ticket-cancelled",
452
+ key: ticket.key,
453
+ feature: feature.intention.key,
454
+ });
455
+ input.trace(`feature ${feature.intention.key} skips the e2e check: ticket ${ticket.key} is cancelled`);
456
+ await cancelTicketByKey({ key: ticket.key, project: ticket.project }, input);
457
+ return;
361
458
  }
362
459
  if (entry.resume && state === "escalated") {
363
460
  await resumeTicketByKey({ key: ticket.key, project: ticket.project }, input);
@@ -366,31 +463,21 @@ async function syncTicket(input, feature, entry, known) {
366
463
  async function advanceOpenFeature(input, feature) {
367
464
  const project = feature.intention.project;
368
465
  await syncTickets(input, feature);
369
- const held = await input.ledger.activeOn(project);
370
- if (held?.state === "escalated") {
466
+ const limit = input.options.ticket.maxParallel ?? 1;
467
+ // A Ticket waiting for a person holds its place. When every place is held
468
+ // that way, nothing can move until someone answers.
469
+ const holding = await input.ledger.activeTickets(project);
470
+ if (holding.length >= limit && holding.every((summary) => summary.state === "escalated")) {
371
471
  return undefined;
372
472
  }
373
- const refreshed = await refreshOnto(input, feature.line ?? input.workLine.target);
374
- if (!refreshed) {
473
+ // Nothing is taken if the line cannot be reached. Conductor refreshes it again
474
+ // for each Ticket it cuts and aligns, which is what keeps a Ticket current
475
+ // while others land; this is the check that starts nothing at all.
476
+ if (!(await refreshOnto(input, feature.line ?? input.workLine.target))) {
375
477
  return undefined;
376
478
  }
377
- let tickets = await ticketsOf(input, feature);
378
- let run;
379
- let pending = tickets.find((summary) => LIVE.has(summary.state));
380
- // A Ticket that landed moved the line: the next one is cut from where it is
381
- // now, in this same pass, not a poll later.
382
- while (pending !== undefined) {
383
- run = await driveUntilBlocked(input, project, pending.key);
384
- tickets = await ticketsOf(input, feature);
385
- pending = tickets.find((summary) => LIVE.has(summary.state));
386
- const interrupted = input.options.interruptFlag?.interrupted === true;
387
- if (run.outcome !== "done" ||
388
- interrupted ||
389
- pending === undefined ||
390
- !(await refreshOnto(input, feature.line ?? input.workLine.target))) {
391
- break;
392
- }
393
- }
479
+ const run = await driveTickets(input, feature, project, limit);
480
+ const tickets = await ticketsOf(input, feature);
394
481
  await reportLanded(input, feature, tickets);
395
482
  const settled = tickets.every((summary) => summary.state === "done" || summary.state === "cancelled");
396
483
  if (settled && tickets.length > 0) {
@@ -402,6 +489,53 @@ async function advanceOpenFeature(input, feature) {
402
489
  }
403
490
  return run;
404
491
  }
492
+ /** Where a Ticket is while Host has something to drive it through. */
493
+ const DRIVEN = new Set([
494
+ "running",
495
+ "integrating",
496
+ "submitted",
497
+ "merging",
498
+ ]);
499
+ /**
500
+ * Work the Tickets of an open Feature, up to `limit` at a time.
501
+ *
502
+ * Each place is a worker: it drives a Ticket the Project already holds, else
503
+ * takes the next one that may start, and goes on to another when its own is
504
+ * done or is only waiting for the outside. A Ticket waiting on a check holds a
505
+ * place but not a worker, so the others do not wait with it. With a limit of 1
506
+ * this is one Ticket after the other.
507
+ */
508
+ async function driveTickets(input, feature, project, limit) {
509
+ // Once, before anything runs at the same time: it clears what a dead process
510
+ // left, which must not be done under a Ticket that is being driven.
511
+ await input.conductor.reconcile(project);
512
+ const interrupted = () => input.options.interruptFlag?.interrupted === true;
513
+ const queue = (await ticketsOf(input, feature))
514
+ .filter((summary) => DRIVEN.has(summary.state))
515
+ .map((summary) => summary.key);
516
+ let last;
517
+ const worker = async () => {
518
+ while (!interrupted()) {
519
+ const key = queue.shift() ?? (await input.conductor.claimNext(project))?.key;
520
+ if (key === undefined) {
521
+ return;
522
+ }
523
+ const run = await driveUntilBlocked(input, project, key, true);
524
+ last = run;
525
+ // A refusal is about the run, not the Ticket: the next one would meet it too.
526
+ if (run.outcome === "refused") {
527
+ return;
528
+ }
529
+ }
530
+ };
531
+ await Promise.all(Array.from({ length: Math.max(1, limit) }, worker));
532
+ if (last === undefined && (await input.ledger.activeTickets(project)).length === 0) {
533
+ const waiting = (await ticketsOf(input, feature)).some((s) => s.state === "received");
534
+ // Nothing held and nothing could start: what remains waits on what cannot finish.
535
+ return waiting ? { outcome: "idle" } : undefined;
536
+ }
537
+ return last;
538
+ }
405
539
  /** One `progress` per Ticket that landed, in the words the tracker already has. */
406
540
  async function reportLanded(input, feature, tickets) {
407
541
  const total = feature.tickets.length;
@@ -434,9 +568,83 @@ async function escalateFeature(input, feature, report) {
434
568
  fields: { reason: report, stage: "submitting" },
435
569
  }, TO);
436
570
  }
571
+ /** Where a Feature's own work is done: apart from every Ticket's workspace, which Host clears of strays. */
572
+ function featureWorkspace(delivery, key) {
573
+ return join(delivery.workspaces, pathSegment(key));
574
+ }
575
+ /** Where the Feature's work is, and where it goes: the Feature stands where a Ticket stood, the final line where the Feature's was. */
576
+ function featureUnit(input, delivery, feature) {
577
+ return {
578
+ key: feature.intention.key,
579
+ intention: feature.intention.intention,
580
+ title: feature.intention.title,
581
+ noun: "feature",
582
+ workspace: featureWorkspace(delivery, feature.intention.key),
583
+ // The Gates read the published branch, and the copy of the Feature's line is on it.
584
+ judgeWorkspace: input.workLine.stable,
585
+ target: input.workLine.target ?? "",
586
+ line: delivery.targetStable,
587
+ };
588
+ }
589
+ /** What a Feature's delivery reads of it, and how the Feature keeps what the delivery decides. */
590
+ function featureStore(input, feature) {
591
+ const key = feature.intention.key;
592
+ const failed = (result) => result.ok ? undefined : { outcome: "refused", code: "illegal-transition" };
593
+ return {
594
+ async read() {
595
+ const got = await input.ledger.getFeature(key);
596
+ if (!got.ok) {
597
+ return undefined;
598
+ }
599
+ const aggregate = got.aggregate;
600
+ const parked = aggregate.parked_refusal;
601
+ const report = parked?.report ?? aggregate.submission?.last_report;
602
+ const refusedBy = parked?.refused_by ?? aggregate.submission?.last_refused_by;
603
+ return {
604
+ sentBack: report === undefined ? undefined : { report, refusedBy },
605
+ spent: (aggregate.submission?.refusals ?? 0) +
606
+ (aggregate.parked_refusals ?? 0) +
607
+ (aggregate.submission?.realigns ?? 0),
608
+ submission: aggregate.submission === undefined
609
+ ? undefined
610
+ : { reference: aggregate.submission.reference },
611
+ };
612
+ },
613
+ async freeze(frozen) {
614
+ await escalateFeature(input, feature, frozen.report ?? "The line was stopped, with no reason given.");
615
+ return { outcome: "escalated", key };
616
+ },
617
+ async park(why) {
618
+ return failed(await input.ledger.recordFeatureParkedRefusal({
619
+ key,
620
+ report: why.report,
621
+ ...(why.refusedBy === undefined ? {} : { refusedBy: why.refusedBy }),
622
+ }));
623
+ },
624
+ async unpark() {
625
+ return failed(await input.ledger.clearFeatureParkedRefusal(key));
626
+ },
627
+ async refuse(why) {
628
+ return failed(await input.ledger.recordFeatureRefusal({
629
+ key,
630
+ report: why.report,
631
+ ...(why.refusedBy === undefined ? {} : { refusedBy: why.refusedBy }),
632
+ }));
633
+ },
634
+ async realign() {
635
+ return failed(await input.ledger.recordFeatureRealign(key));
636
+ },
637
+ };
638
+ }
437
639
  /**
438
- * Every Ticket has landed: the line goes to the Authority. With none, the work
640
+ * Every Ticket has landed: the line is brought up to date with the one it is
641
+ * folded into, checked, and put in front of the Authority. With none, the work
439
642
  * is already in the work line and the Feature is done.
643
+ *
644
+ * It is delivered the way a Ticket is — see `openDelivery` — with the final line
645
+ * merged into the Feature's work, its own checks run on the result, and a fix
646
+ * when something refuses it. Only where the work is offered differs: the line
647
+ * is pushed under its own name rather than a name made for it.
440
648
  */
441
649
  async function closeFeature(input, feature, tickets) {
442
650
  const key = feature.intention.key;
@@ -445,18 +653,90 @@ async function closeFeature(input, feature, tickets) {
445
653
  await escalateFeature(input, feature, "Every Ticket was abandoned, so nothing was made.");
446
654
  return;
447
655
  }
656
+ if (input.options.builder.e2e !== undefined &&
657
+ feature.intention.skip_e2e !== true &&
658
+ !(await holdsLiveE2eTicket(input, feature))) {
659
+ await escalateFeature(input, feature, "This Feature is not marked skip-test-e2e and holds no e2e Ticket: it was cancelled while the Feature skipped the check, and the mark was taken off since. Mark the Feature skip-test-e2e again to leave the check out.");
660
+ return;
661
+ }
448
662
  if (input.authority === undefined || feature.line === undefined) {
449
663
  await input.ledger.markFeatureSubmitted({ key, reference: "local" });
450
664
  await input.ledger.markFeatureDone(key);
451
665
  await reportDone(input, feature, undefined, undefined);
452
666
  return;
453
667
  }
454
- if (feature.submission !== undefined) {
455
- await input.ledger.markFeatureSubmitted({ key, reference: feature.submission.reference });
668
+ const delivery = input.featureDelivery;
669
+ const target = input.workLine.target;
670
+ const publishArgv = input.options.authority?.publishArgv;
671
+ if (delivery === undefined || target === undefined || publishArgv === undefined) {
456
672
  return;
457
673
  }
458
- const target = input.workLine.target;
459
- if (target === undefined) {
674
+ const unit = featureUnit(input, delivery, feature);
675
+ const clean = async () => {
676
+ await rm(unit.workspace, { recursive: true, force: true });
677
+ };
678
+ // The Feature's work is cut from its line the way a Ticket's is, once; a
679
+ // pass that sent it to the fix finds it where it was left.
680
+ if (!existsSync(unit.workspace)) {
681
+ if (!(await refreshOnto(input, feature.line))) {
682
+ return;
683
+ }
684
+ const isolated = await input.transformers.isolate({
685
+ id: `${key}:close`,
686
+ context: key,
687
+ parent: input.workLine.stable,
688
+ child: unit.workspace,
689
+ durationMs: input.options.timeoutMs,
690
+ });
691
+ if (isolated.outcome !== "isolated") {
692
+ // Nothing was spent: the next pass tries again.
693
+ await clean();
694
+ return;
695
+ }
696
+ // The checks run here, so it is prepared the way a Ticket's workspace is.
697
+ const warmed = await delivery.warm?.prepare({
698
+ workspace: unit.workspace,
699
+ durationMs: delivery.warm.durationMs,
700
+ });
701
+ if (warmed !== undefined && warmed.outcome !== "warmed") {
702
+ await clean();
703
+ return;
704
+ }
705
+ }
706
+ const prepared = await delivery.delivery.prepare(unit, featureStore(input, feature));
707
+ if (prepared !== "ready") {
708
+ return;
709
+ }
710
+ // Offer it. What was made in the workspace goes back into the Feature's line
711
+ // and the line is pushed under its own name, which is where the Authority
712
+ // reads it and where its Submission is.
713
+ const folded = await input.transformers.integrate({
714
+ id: `${key}:close`,
715
+ context: key,
716
+ parent: input.workLine.stable,
717
+ child: unit.workspace,
718
+ durationMs: input.options.timeoutMs,
719
+ subject: `Merge ${target} into ${feature.line}`,
720
+ mergeSubject: `Merge ${target} into ${feature.line}`,
721
+ });
722
+ if (folded.outcome === "interrupted") {
723
+ return;
724
+ }
725
+ if (folded.outcome !== "integrated") {
726
+ await escalateFeature(input, feature, "The Feature's work could not be folded into its line.");
727
+ return;
728
+ }
729
+ const published = await publish({
730
+ argv: publishArgv,
731
+ cwd: input.workLine.stable,
732
+ id: key,
733
+ ref: feature.line,
734
+ target,
735
+ timeoutMs: input.options.timeoutMs,
736
+ env: input.workLine.env,
737
+ });
738
+ if (!published.ok) {
739
+ await escalateFeature(input, feature, published.reason);
460
740
  return;
461
741
  }
462
742
  const submitted = await input.authority.submit({
@@ -477,6 +757,7 @@ async function closeFeature(input, feature, tickets) {
477
757
  return;
478
758
  }
479
759
  await input.ledger.markFeatureSubmitted({ key, reference: submitted.reference });
760
+ await clean();
480
761
  await pushReport(input, {
481
762
  event: "submitted",
482
763
  key,
@@ -486,8 +767,10 @@ async function closeFeature(input, feature, tickets) {
486
767
  }, TO);
487
768
  }
488
769
  /**
489
- * The line is with the Authority. If the Feature merges by itself, the checks
490
- * decide; otherwise a human folds it and the system waits, starting nothing.
770
+ * The line is with the Authority. If the Feature merges by itself, its gates
771
+ * decide, and a line the target moved on from goes back to be brought up to
772
+ * date, exactly as a Ticket does; otherwise a human folds it and the system
773
+ * waits, starting nothing.
491
774
  */
492
775
  async function settleFeature(input, feature) {
493
776
  const submission = feature.submission;
@@ -506,36 +789,16 @@ async function settleFeature(input, feature) {
506
789
  }
507
790
  return;
508
791
  }
509
- if (!(await refreshOnto(input, feature.line))) {
510
- return;
511
- }
512
- const judged = await input.transformers.implement({
513
- id: `${key}:judgement`,
514
- context: key,
515
- stage: "assembly",
516
- produce: false,
517
- intention: feature.intention.intention,
518
- workspace: input.workLine.stable,
519
- });
520
- if (judged.outcome === "interrupted" || judged.outcome === "invalid-invocation") {
521
- return;
522
- }
523
- if (judged.outcome === "escalated") {
524
- const last = judged.traces.at(-1);
525
- const why = last?.report ?? "The line was refused, with no reason given.";
526
- await escalateFeature(input, feature, last?.refusedBy === undefined ? why : `${last.refusedBy}: ${why}`);
527
- return;
528
- }
529
- const folded = await input.authority.fold({ reference: submission.reference });
530
- if (folded.outcome === "unavailable") {
792
+ const delivery = input.featureDelivery;
793
+ if (delivery === undefined || !(await refreshOnto(input, feature.line))) {
531
794
  return;
532
795
  }
533
- if (folded.outcome === "conflict") {
534
- await escalateFeature(input, feature, folded.reason);
796
+ const settled = await delivery.delivery.settle(featureUnit(input, delivery, feature), featureStore(input, feature));
797
+ if (!("folded" in settled)) {
535
798
  return;
536
799
  }
537
- await input.ledger.markFeatureDone(key, { reference: folded.reference });
538
- await reportDone(input, feature, submission.reference, folded.reference);
800
+ await input.ledger.markFeatureDone(key, { reference: settled.reference });
801
+ await reportDone(input, feature, submission.reference, settled.reference);
539
802
  }
540
803
  async function reportDone(input, feature, reference, integrationReference) {
541
804
  const key = feature.intention.key;
@@ -1 +1 @@
1
- {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/loop/features.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/loop/features.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"open-host.d.ts","sourceRoot":"","sources":["../../src/loop/open-host.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AActD,OAAO,EAAiB,KAAK,OAAO,EAAiC,MAAM,cAAc,CAAC;AAG1F,OAAO,EAAE,KAAK,IAAI,EAAgB,MAAM,WAAW,CAAC;AAMpD,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAqBtD,kFAAkF;AAClF,MAAM,MAAM,YAAY,GAAG;IACzB,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAsB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuO3F"}
1
+ {"version":3,"file":"open-host.d.ts","sourceRoot":"","sources":["../../src/loop/open-host.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAetD,OAAO,EAAiB,KAAK,OAAO,EAAiC,MAAM,cAAc,CAAC;AAG1F,OAAO,EAAE,KAAK,IAAI,EAAgB,MAAM,WAAW,CAAC;AAMpD,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAqBtD,kFAAkF;AAClF,MAAM,MAAM,YAAY,GAAG;IACzB,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAsB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkV3F"}