@substrat-run/kernel 0.147.0 → 0.149.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 (108) hide show
  1. package/dist/attachment-sweep.d.ts +208 -0
  2. package/dist/attachment-sweep.d.ts.map +1 -0
  3. package/dist/attachment-sweep.js +318 -0
  4. package/dist/attachment-sweep.js.map +1 -0
  5. package/dist/audit-outcome.d.ts +1 -1
  6. package/dist/audit-outcome.d.ts.map +1 -1
  7. package/dist/audit-outcome.js +4 -2
  8. package/dist/audit-outcome.js.map +1 -1
  9. package/dist/export-break.d.ts +137 -0
  10. package/dist/export-break.d.ts.map +1 -0
  11. package/dist/export-break.js +219 -0
  12. package/dist/export-break.js.map +1 -0
  13. package/dist/index.d.ts +24 -10
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +16 -7
  16. package/dist/index.js.map +1 -1
  17. package/dist/install-receipts.d.ts +116 -0
  18. package/dist/install-receipts.d.ts.map +1 -0
  19. package/dist/install-receipts.js +162 -0
  20. package/dist/install-receipts.js.map +1 -0
  21. package/dist/invocation-line.d.ts +85 -0
  22. package/dist/invocation-line.d.ts.map +1 -1
  23. package/dist/invocation-line.js +43 -0
  24. package/dist/invocation-line.js.map +1 -1
  25. package/dist/map-bounded.d.ts +8 -0
  26. package/dist/map-bounded.d.ts.map +1 -0
  27. package/dist/map-bounded.js +16 -0
  28. package/dist/map-bounded.js.map +1 -0
  29. package/dist/migration-digest.d.ts +56 -0
  30. package/dist/migration-digest.d.ts.map +1 -1
  31. package/dist/migration-digest.js +92 -0
  32. package/dist/migration-digest.js.map +1 -1
  33. package/dist/migration-fence.d.ts +14 -0
  34. package/dist/migration-fence.d.ts.map +1 -0
  35. package/dist/migration-fence.js +515 -0
  36. package/dist/migration-fence.js.map +1 -0
  37. package/dist/migration-replay.d.ts +52 -0
  38. package/dist/migration-replay.d.ts.map +1 -0
  39. package/dist/migration-replay.js +140 -0
  40. package/dist/migration-replay.js.map +1 -0
  41. package/dist/module-migrations.d.ts +3 -3
  42. package/dist/module-migrations.js +3 -3
  43. package/dist/peer.d.ts +32 -2
  44. package/dist/peer.d.ts.map +1 -1
  45. package/dist/peer.js +100 -4
  46. package/dist/peer.js.map +1 -1
  47. package/dist/permission-eval.d.ts +8 -0
  48. package/dist/permission-eval.d.ts.map +1 -1
  49. package/dist/permission-eval.js +14 -0
  50. package/dist/permission-eval.js.map +1 -1
  51. package/dist/platform-sweep.d.ts +114 -361
  52. package/dist/platform-sweep.d.ts.map +1 -1
  53. package/dist/platform-sweep.js +134 -561
  54. package/dist/platform-sweep.js.map +1 -1
  55. package/dist/promote-review.d.ts +125 -0
  56. package/dist/promote-review.d.ts.map +1 -0
  57. package/dist/promote-review.js +181 -0
  58. package/dist/promote-review.js.map +1 -0
  59. package/dist/schedule-state.d.ts +91 -0
  60. package/dist/schedule-state.d.ts.map +1 -0
  61. package/dist/schedule-state.js +118 -0
  62. package/dist/schedule-state.js.map +1 -0
  63. package/dist/scope-copy-ledger.d.ts +29 -0
  64. package/dist/scope-copy-ledger.d.ts.map +1 -1
  65. package/dist/scope-copy-ledger.js +23 -0
  66. package/dist/scope-copy-ledger.js.map +1 -1
  67. package/dist/scope-copy.d.ts.map +1 -1
  68. package/dist/scope-copy.js +3 -2
  69. package/dist/scope-copy.js.map +1 -1
  70. package/dist/scope-host.d.ts +303 -11
  71. package/dist/scope-host.d.ts.map +1 -1
  72. package/dist/scope-host.js.map +1 -1
  73. package/dist/scope-identity.d.ts +68 -0
  74. package/dist/scope-identity.d.ts.map +1 -0
  75. package/dist/scope-identity.js +75 -0
  76. package/dist/scope-identity.js.map +1 -0
  77. package/dist/scope-store.d.ts +9 -6
  78. package/dist/scope-store.d.ts.map +1 -1
  79. package/dist/scope-store.js.map +1 -1
  80. package/dist/spine-restore.d.ts +2 -0
  81. package/dist/spine-restore.d.ts.map +1 -1
  82. package/dist/spine-restore.js +6 -1
  83. package/dist/spine-restore.js.map +1 -1
  84. package/dist/store-driver-releases.d.ts +306 -0
  85. package/dist/store-driver-releases.d.ts.map +1 -0
  86. package/dist/store-driver-releases.js +581 -0
  87. package/dist/store-driver-releases.js.map +1 -0
  88. package/dist/table-ownership.d.ts +5 -2
  89. package/dist/table-ownership.d.ts.map +1 -1
  90. package/dist/table-ownership.js +19 -10
  91. package/dist/table-ownership.js.map +1 -1
  92. package/dist/testing.d.ts +2 -0
  93. package/dist/testing.d.ts.map +1 -1
  94. package/dist/testing.js +2 -0
  95. package/dist/testing.js.map +1 -1
  96. package/dist/upload-link.d.ts +142 -0
  97. package/dist/upload-link.d.ts.map +1 -0
  98. package/dist/upload-link.js +441 -0
  99. package/dist/upload-link.js.map +1 -0
  100. package/dist/version-migrations.d.ts +63 -1
  101. package/dist/version-migrations.d.ts.map +1 -1
  102. package/dist/version-migrations.js +174 -8
  103. package/dist/version-migrations.js.map +1 -1
  104. package/dist/vertical-scope-stores.d.ts +43 -0
  105. package/dist/vertical-scope-stores.d.ts.map +1 -0
  106. package/dist/vertical-scope-stores.js +195 -0
  107. package/dist/vertical-scope-stores.js.map +1 -0
  108. package/package.json +2 -2
@@ -1,7 +1,9 @@
1
1
  import type { AccessLogEntry, ConnectionId, MigrationProgress, MigrationStraggler, PlatformActorId, Scope, ScopeId, TenantId, DrainedEvent } from '@substrat-run/contracts';
2
- import type { ExportBreak, ManifestExports, EdgeHealthReport, ExportReadInput, ExportedBatch, ImportBatch, ImportResult, ImportState, ManifestImports, WantedEvent } from '@substrat-run/contracts';
2
+ import type { EdgeHealthReport, ExportReadInput, ExportedBatch, ImportBatch, ImportResult, ImportState, ManifestImports, WantedEvent } from '@substrat-run/contracts';
3
3
  import type { ExecutorDrainReport, FetchLike, HostAdmin, ReconcileOutcome, ScopeHost, SweepRunInput, TelemetryPruneReport } from './scope-host.js';
4
4
  import type { FindingPruneReport } from './findings.js';
5
+ import type { ScheduleSweepReport } from './schedule-state.js';
6
+ import type { OrphanSweepReport } from './attachment-sweep.js';
5
7
  /**
6
8
  * A connector's reconcile sweep — the unit `runPlatformSweep` calls per live
7
9
  * connection of a given provider (`sweepScriveReconciliations` is one).
@@ -247,6 +249,12 @@ export interface PlatformSweepOptions {
247
249
  * lives in its vertical's deployment, and only the control plane can reach it there.
248
250
  */
249
251
  storageGauge?: StorageGaugeSweepOptions;
252
+ /**
253
+ * Collect attachment bytes no row names (#2314), a bounded window of scopes per pass. UNSET (the
254
+ * default) skips the phase: the sweep deletes tenant bytes, so a deployment opts in, and opts in
255
+ * to a dry run first. See {@link OrphanAttachmentSweepOptions}.
256
+ */
257
+ orphanAttachments?: OrphanAttachmentSweepOptions;
250
258
  /**
251
259
  * Also reap tenants past their grace window (control-plane.md §4.8): any tenant in
252
260
  * `deleting` whose `deletingAt` is older than this many days has every scope reaped
@@ -324,90 +332,6 @@ export interface MigrationSweepReport extends MigrationProgress {
324
332
  /** Attempts where this host had nothing pending — the scope's modules run in another deployment. */
325
333
  noops: number;
326
334
  }
327
- /**
328
- * Which family a `_substrat_schedule_state` row belongs to (#1288) — the two of
329
- * `sweepRunKind`'s three names that a SCOPE can hold gating state for. (`connector`
330
- * is the third and is deliberately absent: a connection is swept host-wide and its
331
- * state lives nowhere in a scope.)
332
- */
333
- export type ScheduleStateKind = 'schedule' | 'freshness';
334
- /**
335
- * The platform sweep's per-scope gating state (#383), as both adapters build it.
336
- *
337
- * Shared rather than spelled twice because `lint:spine-ddl` can compare the copies
338
- * only where they are DDL a `KERNEL_DDL` executes — and this table is also rebuilt
339
- * by `SCHEDULE_STATE_REBUILD` below, on a store that predates the key. One
340
- * definition is what keeps the rebuilt shape and the created shape the same shape;
341
- * the gate then holds each adapter to including it.
342
- */
343
- export declare const SCHEDULE_STATE_DDL = "\n CREATE TABLE IF NOT EXISTS _substrat_schedule_state (\n -- #1288: WHICH of the two families this row belongs to, named with the same two\n -- words _substrat_sweep_runs already records its entries under:\n -- * 'schedule' -- keyed by the operation (module/verb). last_run_at and\n -- last_status are when that operation RAN here and how it ended.\n -- * 'freshness' -- keyed freshness:<eventType> (#1232). last_run_at and\n -- last_status are when the evaluator last RECORDED a verdict for that event\n -- type and what it was. Nothing ran; the row gates what the sweep records.\n kind TEXT NOT NULL,\n schedule_op TEXT NOT NULL,\n last_run_at TEXT,\n last_status TEXT,\n -- #1525: the invocation this row's last run happened in, or null. Null is a fact\n -- here, not a gap: a 'freshness' row never invokes anything (the evaluator only\n -- records a verdict), a 'schedule' row a pass SKIPPED carries no fresh call to\n -- attribute and keeps whatever it already held, and a row written before this\n -- column existed predates the possibility. Only a due schedule's own invoke\n -- mints one and writes it here, in the same call that stamps it onto whatever\n -- the operation emits \u2014 see runDueSchedules in each adapter.\n invocation_id TEXT,\n -- #2096: a purge horizon's lap in progress (entity-trash.ts, PurgeLap) -- where its\n -- next pass resumes in the bin, and how many purges failed earlier in the lap. Only a\n -- 'schedule' row of a purge schedule holds one, and only mid-lap: NULL is the start\n -- of a lap, which is also the honest reading of every row written before the column.\n purge_cursor TEXT,\n -- The key LEADS with kind, and that is the point of #1288 rather than a tidy-up.\n -- Until it did, the two families were told apart by the spelling of one column:\n -- a freshness key could never LOOK like an operation (an event type has passed\n -- contracts' eventType regex -- lowercase ns.verb, no colon, no slash), but the\n -- other direction was convention only, because scheduleSpec.operation is\n -- z.string().min(1). A module declaring a schedule literally named\n -- \"freshness:orders.placed\" shared the evaluator's row and nothing refused it:\n -- each write clobbered the other's verdict, and the sweep read back whichever\n -- ran last. With kind in the key those are two rows that cannot meet.\n PRIMARY KEY (kind, schedule_op)\n );\n";
344
- /**
345
- * The `kind` a pre-#1288 row belongs to, derived from its `schedule_op` — the backfill's one
346
- * rule, shared by `SCHEDULE_STATE_REBUILD` below and by a restore of a dump taken before the
347
- * column (`spineRowsInsert`, #1883), so the two cannot file the same row differently.
348
- */
349
- export declare const SCHEDULE_STATE_KIND_OF_OP = "CASE WHEN substr(schedule_op, 1, 10) = 'freshness:' THEN 'freshness' ELSE 'schedule' END";
350
- /**
351
- * `_substrat_schedule_state`, rebuilt with its #1288 key on a store created before
352
- * it. Create-copy-drop-rename, because `kind` joins the PRIMARY KEY and SQLite
353
- * cannot widen a key in place — the same shape the directory's `ensureIdentityKey`
354
- * uses, and detected the same way (from `sqlite_master.sql`, which DO SQLite serves
355
- * and `PRAGMA` does not, so both adapters migrate by one strategy).
356
- *
357
- * The new table is `SCHEDULE_STATE_DDL` under a temporary name, so the rebuilt shape
358
- * cannot drift from the created one.
359
- *
360
- * The backfill derives `kind` from the `freshness:` prefix because that prefix IS how
361
- * the two families were told apart until now: every row the evaluator ever wrote
362
- * carries it, and no operation name in existence does. `substr(...) = 'freshness:'`
363
- * rather than `LIKE`, which is case-insensitive over ASCII in SQLite and would file a
364
- * schedule named `FRESHNESS:x` under the evaluator.
365
- *
366
- * Keys are copied VERBATIM, prefix included. What changes is which rows can coexist,
367
- * not what any row says — so a deployment rolled back to code that looks a freshness
368
- * key up under its old name still finds it.
369
- *
370
- * **Run these inside the adapter's transaction API**, which is what both callers do —
371
- * `db.transaction` on the pure side, `ctx.storage.transactionSync` on the DO side.
372
- * Un-wrapped, a stop between the CREATE and the DROP leaves the scratch table behind
373
- * and the NEXT wake dies on `table _substrat_schedule_state_new already exists`, which
374
- * is a scope that cannot open; a stop between the DROP and the RENAME is worse and
375
- * quieter, because the next wake's `CREATE TABLE IF NOT EXISTS` puts an EMPTY table
376
- * of the new shape in place, the detection below then reads it as already migrated,
377
- * and every copied row stays orphaned in the scratch table. Atomically, neither state
378
- * is reachable — which is why there is no recovery path here to go with them.
379
- *
380
- * The leading `DROP TABLE IF EXISTS` is belt to that braces, not the fix: it costs one
381
- * statement and makes the rebuild idempotent against a scratch table left by anything
382
- * below the transaction (a torn copy of the file). A restore cannot carry one in: since
383
- * #1883 it refuses a spine table the kernel does not build.
384
- *
385
- * A restore never reaches this rebuild either: it builds the table from the current DDL and
386
- * derives `kind` for a legacy dump's rows with `SCHEDULE_STATE_KIND_OF_OP`. This runs only
387
- * for a store that already holds the old table when it wakes.
388
- */
389
- export declare const SCHEDULE_STATE_REBUILD: string;
390
- /**
391
- * Whether a store's `_substrat_schedule_state` already carries the #1288 key, read
392
- * off the `sql` column of `sqlite_master`. `false` means the rebuild is due.
393
- */
394
- export declare function scheduleStateHasKind(tableSql: string): boolean;
395
- /**
396
- * What the recurring-schedule phase did in one pass (#383), summed across every
397
- * module's live scopes. `null` on `PlatformSweepReport` means the phase was
398
- * disabled or the host predates it — distinct from a report of all zeros, which is
399
- * "ran, nothing was due."
400
- */
401
- export interface ScheduleSweepReport {
402
- /** Scopes `runDueSchedules` ran on (had ≥1 declared schedule). */
403
- scopes: number;
404
- /** Due schedules whose operation ran successfully. */
405
- fired: number;
406
- /** Schedules skipped this pass — still inside their cadence window. */
407
- skipped: number;
408
- /** Due schedules whose operation failed — recorded, stepped over. */
409
- failed: number;
410
- }
411
335
  /** What the #1172 phase did — see `reconcileScopeFn`. */
412
336
  export interface ProvisionReconcileReport {
413
337
  /**
@@ -435,60 +359,6 @@ export interface ProvisionReconcileReport {
435
359
  export declare const PROVISION_RECONCILE_BATCH = 50;
436
360
  /** How many `unsupported` scope ids one report carries — the count stays exact. */
437
361
  export declare const PROVISION_RECONCILE_REPORTED_IDS = 50;
438
- /**
439
- * A scope the platform may treat as the REAL install, rather than a copy of one (#1172,
440
- * #1653). The directory is the only oracle for this, and it takes BOTH tests, not one.
441
- *
442
- * A fork is an archive or a preview of somebody else's data, and re-provisioning one
443
- * runs the vertical's install-side hook against a copy, minting a second set of whatever
444
- * it mints — or, since #1656, putting a copy of production on a sweeper that reaps and
445
- * assigns. But a CLEAN-ROOM preview (#509) is an empty scope with no source to copy, so
446
- * it carries `kind: 'preview'` and NO `forkedFrom` — the reap sweep keys on `kind` for
447
- * exactly that reason. Filtering on lineage alone would let those through, which is the
448
- * one shape of scope where the hook's effects are least wanted.
449
- */
450
- export declare function isPrimaryScope(scope: Pick<Scope, 'forkedFrom' | 'kind'>): boolean;
451
- /**
452
- * `isPrimaryScope` over a raw directory row, in the snake_case both adapters store (#2005) —
453
- * so a reader holding a row asks the same one rule rather than restating it. No row is not
454
- * primary: the answer that runs effects with platform authority is the one to be proven.
455
- */
456
- export declare function isPrimaryScopeRow(row: {
457
- kind: string | null;
458
- forked_from: string | null;
459
- } | undefined): boolean;
460
- /**
461
- * Why an effect a NON-primary scope asked for was settled without running (#2005). A fork,
462
- * a snapshot and a preview of either kind are inert: they cause no outbound effects, so
463
- * whatever they queue — a platform intent, an executor or connector delivery — is journaled
464
- * as not executed, with this reason, rather than left pending forever or run off a copy.
465
- * One string for every door, so a reader who has seen it once recognizes it everywhere.
466
- */
467
- export declare const INERT_SCOPE_REASON = "not executed: this scope is a preview or a fork, and those cause no outbound effects";
468
- /** What a vertical's stable serving script runs (#286) — `Vertical.servingRef`/`servingVersionId`. */
469
- export interface ServingPointer {
470
- ref: string;
471
- versionId: string;
472
- }
473
- /**
474
- * The version whose code actually executes for `scope` (#1653) — which is not always the
475
- * one it is bound to.
476
- *
477
- * A scope on its vertical's stable serving script (`servingRef`, #286) runs whatever that
478
- * script serves, and a promote re-uploads the script in place: the code changes under
479
- * the scope at that moment, whatever its version pointer says. For a PRIVATE vertical
480
- * the promote moves the pointer too, so the two agree. For a LISTED one it does not —
481
- * the pointer is the tenant's, and moves only on their Update — so an install can run
482
- * version N+1 with its provision state still at N. Measuring against the running version
483
- * is what lets the reconcile follow the code instead of the pointer.
484
- *
485
- * Falls back to the bound version whenever the serving script cannot be named: a scope
486
- * with no `servingRef` (legacy per-version dispatch, where the bound version's own
487
- * script IS what runs), a vertical with nothing served in place yet, or a `servingRef`
488
- * that is not the vertical's current one. The fallback is exactly the pre-#1653 answer,
489
- * so an unknown never manufactures a reconcile.
490
- */
491
- export declare function runningVersionOf(scope: Pick<Scope, 'verticalVersionId' | 'servingRef'>, serving: ServingPointer | null | undefined): string | null;
492
362
  export interface PlatformSweepReport {
493
363
  /** Active scopes `drainDue` ran on. */
494
364
  scopesDrained: number;
@@ -558,9 +428,11 @@ export interface PlatformSweepReport {
558
428
  findings?: FindingPruneReport | null;
559
429
  /** What the storage-gauge phase sampled and pruned (#1524). Null when the phase is off. */
560
430
  storage?: StorageGaugeSweepReport | null;
431
+ /** What the orphan-attachment phase did (#2314). Null when the phase is off. */
432
+ orphanAttachments?: OrphanAttachmentSweepReport | null;
561
433
  /** Per-unit failures; the pass records and steps over each rather than aborting. */
562
434
  errors: {
563
- kind: 'drain' | 'sweep' | 'gc' | 'reap' | 'reap-tenant' | 'migrate' | 'platform-request' | 'provision-reconcile' | 'schedule' | 'freshness' | 'access-log' | 'telemetry' | 'findings' | 'event-drain' | 'vertical-events' | 'storage';
435
+ kind: 'drain' | 'sweep' | 'gc' | 'reap' | 'reap-tenant' | 'migrate' | 'platform-request' | 'provision-reconcile' | 'schedule' | 'freshness' | 'access-log' | 'telemetry' | 'findings' | 'event-drain' | 'vertical-events' | 'storage' | 'attachment-sweep';
564
436
  id: string;
565
437
  error: string;
566
438
  }[];
@@ -665,6 +537,90 @@ export interface StorageGaugeSweepReport {
665
537
  /** Samples past retention deleted. */
666
538
  pruned: number;
667
539
  }
540
+ /**
541
+ * One scope's orphan-attachment pass as the platform's reach answers it (#2314):
542
+ * - `swept`: the deployment that serves the scope ran the pass, and this is its report;
543
+ * - `refused`: the scope is not one the pass may judge now (a copy, not active, an unsettled copy
544
+ * in another script, no deployment serves it). A standing condition, counted, never an error;
545
+ * - `unsupported`: the deployment serving the scope was built before the pass existed. Standing
546
+ * until it is redeployed, counted, never an error.
547
+ * A throw is a failure, and lands in `errors`.
548
+ */
549
+ export type OrphanAttachmentOutcome = {
550
+ swept: OrphanSweepReport;
551
+ } | {
552
+ refused: string;
553
+ } | {
554
+ unsupported: string;
555
+ };
556
+ /**
557
+ * How the orphan-attachment phase runs (#2314).
558
+ *
559
+ * It takes a window of at most `batch` active primary scopes per pass, starting at `rng()` of the
560
+ * way round the id order and wrapping (the provision reconcile's rule, #1653), so a scope that
561
+ * fails on every pass cannot hold a slot for good and every scope is reached over enough passes.
562
+ *
563
+ * `mode: 'delete'` is not enough on its own to delete a scope's bytes. A scope is swept for real
564
+ * only when the admin log holds a DRY-RUN row for it (`sweepOrphanAttachments`, `dryRun: true`)
565
+ * from within `dryRunWindowMs`, and such a row is written only by a dry run that found orphans.
566
+ * Any other scope gets a dry run instead, which writes that row when it finds anything. So every
567
+ * delete follows a recorded report of what the scope's orphans were, in that window.
568
+ */
569
+ export interface OrphanAttachmentSweepOptions {
570
+ /** `'dry-run'` reports and changes nothing; `'delete'` condemns and deletes, per the rule above. */
571
+ mode: 'dry-run' | 'delete';
572
+ /** One scope's pass, reached wherever the scope is served. */
573
+ sweepScopeFn: (tenantId: TenantId, scopeId: ScopeId, opts: {
574
+ dryRun: boolean;
575
+ }) => Promise<OrphanAttachmentOutcome>;
576
+ /** The most scopes one pass visits. Default {@link ORPHAN_ATTACHMENT_SWEEP_BATCH}. `0` pauses the phase. */
577
+ batch?: number;
578
+ /** Where the window starts, in [0, 1). `Math.random` unless given, and injectable to test reach. */
579
+ rng?: () => number;
580
+ /** How recent a scope's dry-run row must be for a delete. Default {@link ORPHAN_SWEEP_DRY_RUN_WINDOW_MS}. */
581
+ dryRunWindowMs?: number;
582
+ /** The instant the dry-run window is judged against. Default the wall clock. */
583
+ now?: () => string;
584
+ }
585
+ /** The orphan-attachment phase's per-pass bound when `batch` is unset (#2314). */
586
+ export declare const ORPHAN_ATTACHMENT_SWEEP_BATCH = 25;
587
+ /** How recent a scope's dry-run row must be before a pass deletes its bytes, by default (#2314). */
588
+ export declare const ORPHAN_SWEEP_DRY_RUN_WINDOW_MS: number;
589
+ /** What the orphan-attachment phase did in one pass (#2314). */
590
+ export interface OrphanAttachmentSweepReport {
591
+ mode: 'dry-run' | 'delete';
592
+ /** Active primary scopes the phase could visit. Always `visited + deferred`. */
593
+ eligible: number;
594
+ /** Of those, the ones in this pass's window. */
595
+ visited: number;
596
+ /** Of those, the ones past this pass's `batch`. */
597
+ deferred: number;
598
+ /** Passes run, by kind: a dry run, and a real one. */
599
+ dryRuns: number;
600
+ deletes: number;
601
+ /** Delete-mode scopes given a dry run because the log held no recent dry-run row for them. */
602
+ awaitingDryRun: number;
603
+ /** Passes whose deployment holds no attachment store for the tenant (`bucket: 'none'`). */
604
+ noStore: {
605
+ count: number;
606
+ scopeIds: string[];
607
+ };
608
+ /** Passes the restore fence held. */
609
+ fenced: number;
610
+ /** Orphans found, and objects deleted, summed over the passes. */
611
+ orphans: number;
612
+ deleted: number;
613
+ /** Scopes the pass may not judge now. Standing, never an error. */
614
+ refused: {
615
+ count: number;
616
+ scopeIds: string[];
617
+ };
618
+ /** Scopes whose deployment predates the pass. Standing, never an error. */
619
+ unsupported: {
620
+ count: number;
621
+ scopeIds: string[];
622
+ };
623
+ }
668
624
  /** One pass of the access-log drain (K-24, control-plane.md §4.4). */
669
625
  /** What one pass drained, across every scope it reached. */
670
626
  export interface EventDrainReport {
@@ -897,234 +853,31 @@ export declare function runCrossVerticalFrom(host: ScopeHost, options: Pick<Plat
897
853
  crossVertical: CrossVerticalReport;
898
854
  errors: PlatformSweepReport['errors'];
899
855
  }>;
900
- export declare function registryImportCandidates(input: {
901
- admin: Pick<HostAdmin, 'listVerticals'>;
902
- actor: PlatformActorId;
903
- readImports: (verticalSlug: string, versionId: string) => Promise<ManifestImports>;
904
- /** Registry reads in flight at once. Default 8, the phase's own concurrency. */
905
- concurrency?: number;
906
- }): NonNullable<CrossVerticalReach['candidates']>;
907
856
  /**
908
- * Who a promote breaks (#1705 PR 3): the installed consumers whose RUNNING code imports an
909
- * exported (type, schemaVersion) that the outgoing version promised and the incoming one drops
910
- * or exports at another version. The promote gate refuses on a non-empty answer unless it is
911
- * acknowledged (`exportBreak`), and the refusal lists them.
857
+ * The control plane's `CrossVerticalReach.candidates` (#1705 PR 2): narrow the listed scopes to
858
+ * those whose RUNNING version may import, read from the version registry and never from a scope.
912
859
  *
913
- * - **What changed** is outgoing versus incoming, from the two versions' registries. An outgoing
914
- * version whose registry states no exports (a first promote, or a push by a CLI older than
915
- * 0.34.0) promised nothing the registry can name, so nothing is judged broken. Nothing it
916
- * exported at run time could be listed either, which is what the permission-digest gate
917
- * beside this one is for.
918
- * - **Who is a consumer** is the edge's own rule: a primary, active scope of ANOTHER vertical, in
919
- * a tenant where the producer is installed (any primary, active install, so two installs still
920
- * count), whose running version (`runningVersionOf`) declares the import. That over-approximates
921
- * on purpose, for a listed vertical's tenants still pinned to an older producer version: a
922
- * refusal that names one tenant too many costs an acknowledgement, and one that names too few
923
- * costs a silent stall.
924
- * - **A consumer version whose manifest does not parse** is not judged. It cannot be said to
925
- * break, and refusing every promote over a manifest nobody can parse would make the gate one
926
- * nobody can pass. A read that THREW is different: the registry could not be asked, so whom the
927
- * promote breaks is unknown, and this throws. The gate then refuses rather than failing open.
928
- * A failed directory read throws the same way.
860
+ * Per pass: one `listVerticals` (the serving pointers, only when some scope is on a serving
861
+ * script), and one `readImports` per DISTINCT running version, at most `concurrency` in flight.
862
+ * The control plane's reader is an unaudited directory read behind a cache keyed (slug,
863
+ * version), since a pushed version's manifest never changes. So after the first pass it costs
864
+ * no read at all.
929
865
  *
930
- * Cost: nothing at all unless an export changed. Then one fleet `listScopes`, one
931
- * `listVerticals` when a scope is on a serving script, and one `readImports` per distinct
932
- * running consumer version, at most `concurrency` in flight.
866
+ * Only a version that says it imports nothing is dropped (`none`: no manifest, no registry, no
867
+ * `imports` key). A version the registry cannot answer for (`unreadable`: a manifest that does
868
+ * not parse, a malformed row, a version the registry does not know, a failed read) keeps its
869
+ * scopes as candidates, and the scope's own `importState` decides. Excluding a consumer wrongly
870
+ * loses its edge with no trace. Including one wrongly costs one call. Each such version is
871
+ * reported once per pass through `hint.doubt`, and a failure on one version never stops the
872
+ * others.
933
873
  */
934
- export declare function exportBreaksOf(input: {
935
- admin: Pick<HostAdmin, 'listScopes' | 'listVerticals'>;
874
+ export declare function registryImportCandidates(input: {
875
+ admin: Pick<HostAdmin, 'listVerticals'>;
936
876
  actor: PlatformActorId;
937
- producer: string;
938
- outgoing: ManifestExports;
939
- incoming: ManifestExports;
940
877
  readImports: (verticalSlug: string, versionId: string) => Promise<ManifestImports>;
878
+ /** Registry reads in flight at once. Default 8, the phase's own concurrency. */
941
879
  concurrency?: number;
942
- /**
943
- * #1756: judge ONE tenant's consumers only — a bind moves one install, and an edge never
944
- * crosses a tenant, so no other tenant's app can be broken by it. The tenant is taken to run
945
- * the producer (the scope being bound is that install), whatever its status.
946
- */
947
- tenantId?: TenantId;
948
- /** What is being judged, for the wording of a refusal to judge it. Default `'promotion'`. */
949
- act?: 'promotion' | 'bind';
950
- }): Promise<ExportBreak[]>;
951
- /** Whether a throw is the promote gate's export-break refusal (`exportBreakRefusal`). */
952
- export declare function isExportBreakRefusal(err: unknown): err is Error;
953
- /**
954
- * The refusal a promote gets for a non-empty `exportBreaksOf` (#1705 PR 3). Counts only: the
955
- * adapters do not know who is promoting, and a builder must not learn from an error which other
956
- * tenants import its events. The route that knows the caller lists what they may see.
957
- */
958
- export declare function exportBreakRefusal(breaks: readonly ExportBreak[]): string;
959
- /** How `bindExportBreakRefusal` begins: what lets the bind route recognise it (#1756). */
960
- export declare const BIND_EXPORT_BREAK_REFUSAL = "this bind drops or re-versions";
961
- /** Whether a throw is the bind gate's export-break refusal (`bindExportBreakRefusal`). */
962
- export declare function isBindExportBreakRefusal(err: unknown): err is Error;
963
- /**
964
- * The refusal a bind gets for a non-empty `bindExportBreaksOf` (#1756). Every break is in the
965
- * bound scope's own tenant, which the caller addressed, so it names no one else — but it stays in
966
- * counts, as the promote refusal does, and the route that knows the caller adds the listing.
967
- */
968
- export declare function bindExportBreakRefusal(breaks: readonly ExportBreak[]): string;
969
- /**
970
- * What a bind or a route change moves `scope` between (#1756, #2178): the version it runs before
971
- * and the one it runs after (`runningVersionOf` on both of its inputs), or null when the move
972
- * changes nothing it runs — a re-point that stays on the serving script — or it ran nothing before
973
- * (a first bind). `servingRef` omitted: the route is unchanged.
974
- */
975
- export declare function scopeMoveOf(scope: Pick<Scope, 'verticalVersionId' | 'servingRef'>, incomingVersionId: string, servingRef: string | null | undefined, serving: ServingPointer | null): {
976
- before: string;
977
- after: string;
978
- } | null;
979
- /**
980
- * #2178: the versions the active primary scopes of a vertical that a promote or a serve moves were
981
- * last provisioned against (`provisionedVersionId`, written only after a provision or reconcile
982
- * succeeds): those routed on a serving ref, and those of an owner tenant. A retirement reaches a
983
- * scope only at its reconcile, so a scope provisioned behind the retiring version still holds the
984
- * keys. #2185: and whether that reconcile FINISHED the version's retirements
985
- * (`retirementsFinishedVersionId` equal to the receipt), since one that left a retirement open still
986
- * writes the receipt. One row per (version, finished), with how many installs and one of them to
987
- * name, however many installs there are. Installs with NO receipt are a row too (`version_id` null):
988
- * a switch clears the receipt (#2045), a rewind and a restore do (#2185), and a new install has none until its first
989
- * reconcile. The sweep reconciles every unfinished or receiptless install on its next pass, so a
990
- * refusal they cause is transient unless that reconcile keeps failing, answers 'unsupported', or
991
- * cannot report its retirements (an `adapter-cloudflare` or `vertical-host` that predates the report). Binds
992
- * `(vertical, servingRef, ownerTenant)`; a null matches nothing. The directory has no index on
993
- * `vertical`, so this scans its scopes table: once per promote or serve.
994
- *
995
- * #2184: and which binding shapes the reconcile reported the installs have bound through a link
996
- * (`bound_shapes`, JSON `{version, types}`), counted only while its version is the receipt's, else
997
- * null (unknown). Grouped by it too: each set is a subset of one version's table-held bootstrap
998
- * shapes, sorted, so a fleet of one vertical has a handful.
999
- *
1000
- * Review of #2220: and by the version each install RUNS (`runningVersionOf`: the served version on
1001
- * the serving script, else its pointer), since a receipt behind it speaks for neither the bindings
1002
- * nor the retirements of what it runs now. Bind its parameters with {@link provisionedVersionsParams}.
1003
- *
1004
- * So the rows are at most (receipt versions × running versions × 2 × distinct type sets), still
1005
- * independent of how many installs there are.
1006
- */
1007
- export declare const PROVISIONED_VERSIONS_SQL = "SELECT provisioned_version_id AS version_id,\n CASE WHEN serving_ref = ? THEN ? ELSE vertical_version_id END AS running_version_id,\n COALESCE(retirements_finished_version_id = provisioned_version_id, 0) AS finished,\n CASE WHEN json_extract(bound_shapes, '$.version') = provisioned_version_id\n THEN json_extract(bound_shapes, '$.types') END AS bound_types,\n COUNT(*) AS installs, MIN(scope_id) AS example\n FROM scopes\n WHERE vertical = ? AND status = 'active' AND forked_from IS NULL AND COALESCE(kind, '') != 'preview'\n AND (serving_ref = ? OR tenant_id = ?)\n GROUP BY provisioned_version_id, running_version_id, finished, bound_types";
1008
- /**
1009
- * `PROVISIONED_VERSIONS_SQL`'s parameters: the installs of `vertical` on `serving`'s script (which
1010
- * run its version) or owned by `ownerTenant`. Null for either matches nothing.
1011
- */
1012
- export declare function provisionedVersionsParams(vertical: string, serving: ServingPointer | null, ownerTenant: string | null): (string | null)[];
1013
- /**
1014
- * #2184: the directory's `bound_shapes` value — the version the reconcile ran against and the types
1015
- * it reported bound, as one JSON value, so the pair is written and cleared together and a receipt
1016
- * rewritten without it (a control plane that predates the column) reads as unknown. Null when
1017
- * there is no receipt or the outcome does not say.
1018
- */
1019
- export declare function boundShapesColumn(versionId: string | null, types: readonly string[] | undefined): string | null;
1020
- /** #2184: `Scope.boundShapes` from the directory's `bound_shapes` value; null for null or anything unreadable. */
1021
- export declare function boundShapesOfColumn(raw: string | null | undefined): {
1022
- versionId: string;
1023
- types: string[];
1024
- } | null;
1025
- /** One row of `PROVISIONED_VERSIONS_SQL`: the installs that last reconciled one version. */
1026
- export interface InstallsReconciled {
1027
- /** Null: installs with no receipt, which may not have reconciled anything they run. */
1028
- versionId: string | null;
1029
- /**
1030
- * Review of #2220: the version they run now, when the caller knows it. One that differs from
1031
- * `versionId` is a receipt lagging what runs: judged as if nothing about it had been reported.
1032
- */
1033
- runningVersionId: string | null;
1034
- /**
1035
- * #2185: whether their reconcile of `versionId` finished every retirement it declares. False
1036
- * judges them as still holding the keys it retires. Meaningless when `versionId` is null.
1037
- */
1038
- retirementsFinished: boolean;
1039
- /**
1040
- * #2184: the types of `versionId`'s table-held bootstrap shapes their reconcile reported bound
1041
- * through a link, or null when it did not report (or `versionId` is null): the gate then counts
1042
- * every such shape as bound.
1043
- */
1044
- boundShapes: string[] | null;
1045
- installs: number;
1046
- /** One of them, so a refusal can say which install to look at. */
1047
- example: string;
1048
- }
1049
- /** `PROVISIONED_VERSIONS_SQL`'s rows, as either adapter's driver returns them. */
1050
- export declare function installsReconciledOf(rows: readonly Record<string, unknown>[]): InstallsReconciled[];
1051
- /**
1052
- * #2185: one install's own receipt as a {@link InstallsReconciled} group, for a bind or a route of
1053
- * that install, judged by the same rule as the promote's `PROVISIONED_VERSIONS_SQL` rows, with the
1054
- * version it runs before the move (`scopeMoveOf`'s `before`).
1055
- */
1056
- export declare function installReconciled(scope: Pick<Scope, 'id' | 'provisionedVersionId' | 'retirementsFinishedVersionId' | 'boundShapes'>, runningVersionId: string | null): InstallsReconciled;
1057
- /**
1058
- * #2184: what the gate counts as bound for a group: the types its reconcile reported, or every
1059
- * table-held bootstrap shape (`'unknown'`) when it did not, or when the group has no receipt.
1060
- */
1061
- export declare function boundEverOf(g: InstallsReconciled): readonly string[] | 'unknown';
1062
- /** One judgment of the binding-shape gate: a version to judge a move from, and how (`assertNoBindingShapeBreak`). */
1063
- export interface StrandJudgment {
1064
- from: string;
1065
- opts: {
1066
- judgedFrom: string;
1067
- retiredStillHeld: boolean;
1068
- boundEver: readonly string[] | 'unknown';
1069
- };
1070
- }
1071
- /**
1072
- * What the binding-shape gate judges a move onto `afterId` from, for one group of installs, given
1073
- * the versions the move leaves (`froms`). One rule for both adapters' doors:
1074
- *
1075
- * - no receipt: every one of `froms`, as if nothing about it had run or been reported (the installs
1076
- * run one of them; judging the others too can only over-refuse, and only while it lasts);
1077
- * - a receipt behind the version they run (review of #2220): that running version the same way,
1078
- * since whatever it bound or retired since the receipt is not in it — a version that added `bind`
1079
- * may have reconciled and been claimed through without its receipt landing;
1080
- * - a receipt: its own version, from its own report (#2185, #2184).
1081
- *
1082
- * Each is transient: the sweep reconciles every such install on its next pass.
1083
- */
1084
- export declare function strandJudgmentsOf(g: InstallsReconciled, froms: readonly string[], afterId: string): StrandJudgment[];
1085
- /** What a refusal judged from installs' receipts says it was judged from. */
1086
- export declare function installsReconciledNote(g: InstallsReconciled): string;
1087
- /**
1088
- * Whom moving `scope` breaks (#1756): the promote gate's question (`exportBreaksOf`), asked of
1089
- * ONE install in its own tenant, since an edge never crosses one.
1090
- *
1091
- * A scope's exports leave from the code it RUNS, and `runningVersionOf` names that code from two
1092
- * inputs: the version pointer and the serving ref. So a move is either or both of them changing —
1093
- * a bind (`next.versionId`), or a route onto or off a serving script (`next.servingRef`, which is
1094
- * how an adopt moves a scope before its pointer ever does). Both are judged by the same rule, on
1095
- * the running version before against the running version after, the rule the consumers are judged
1096
- * on too:
1097
- *
1098
- * - **Re-pointing a scope that stays on its vertical's serving script** changes nothing it runs,
1099
- * so it is never refused. The change reached it when the serving script was replaced — at a
1100
- * promote, which judged every tenant then. A route ONTO the serving script is not that case:
1101
- * the scope goes from its own version to whatever is served, and that is judged.
1102
- * - **A fork or a preview** is never an edge's producer (`resolveVerticalInstanceFrom` takes the
1103
- * primary install only), so nothing it runs can break an edge.
1104
- * - **A scope still provisioning** has never been active, so no edge has ever delivered from it.
1105
- * - **A first bind** runs nothing before it, so it promised nothing.
1106
- * - **A lineage crossing** (the version belongs to another vertical than the scope's, or the route
1107
- * goes onto a script that is not this vertical's serving script) is not judged here, and nothing
1108
- * else judges it either: every consumer importing `from` the old slug
1109
- * loses its producer, and `rebind-vertical`'s acknowledgements are about migrations, not about
1110
- * that. A known gap, older than this gate.
1111
- */
1112
- export declare function bindExportBreaksOf(input: {
1113
- admin: Pick<HostAdmin, 'listScopes' | 'listVerticals'>;
1114
- actor: PlatformActorId;
1115
- scope: Pick<Scope, 'tenantId' | 'forkedFrom' | 'kind' | 'status' | 'vertical' | 'verticalVersionId' | 'servingRef'>;
1116
- /** The version the scope is bound to after the move (its vertical's slug beside it). */
1117
- incoming: {
1118
- id: string;
1119
- verticalSlug: string;
1120
- };
1121
- /** The serving ref it routes by after the move. Omitted: unchanged. */
1122
- servingRef?: string | null;
1123
- /** The serving pointer of the scope's vertical, or null when nothing is served in place. */
1124
- serving: ServingPointer | null;
1125
- readExports: (versionId: string) => Promise<ManifestExports>;
1126
- readImports: (verticalSlug: string, versionId: string) => Promise<ManifestImports>;
1127
- }): Promise<ExportBreak[]>;
880
+ }): NonNullable<CrossVerticalReach['candidates']>;
1128
881
  /** Where a consumer's door stands for each peer, as `admin.peerGrantsStatus` answers it. */
1129
882
  type DoorRead = (tenantId: TenantId, scopeId: ScopeId) => Promise<readonly {
1130
883
  vertical: string;
@@ -1 +1 @@
1
- {"version":3,"file":"platform-sweep.d.ts","sourceRoot":"","sources":["../src/platform-sweep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform-sweep.d.ts","sourceRoot":"","sources":["../src/platform-sweep.ts"],"names":[],"mappings":"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"}