@telora/daemon 0.22.187 → 0.22.208
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/build-info.json +6 -3
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +2 -0
- package/dist/backends/index.js.map +1 -1
- package/dist/completion/completion-fact-readers.d.ts +35 -0
- package/dist/completion/completion-fact-readers.d.ts.map +1 -0
- package/dist/completion/completion-fact-readers.js +70 -0
- package/dist/completion/completion-fact-readers.js.map +1 -0
- package/dist/completion/escalations.d.ts.map +1 -1
- package/dist/completion/escalations.js +2 -1
- package/dist/completion/escalations.js.map +1 -1
- package/dist/completion/event-dep-defaults.d.ts +27 -0
- package/dist/completion/event-dep-defaults.d.ts.map +1 -0
- package/dist/completion/event-dep-defaults.js +30 -0
- package/dist/completion/event-dep-defaults.js.map +1 -0
- package/dist/completion/event-phases.d.ts.map +1 -1
- package/dist/completion/event-phases.js +5 -13
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/event.d.ts +32 -0
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +31 -25
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +11 -4
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/session-hold.d.ts +13 -1
- package/dist/completion/session-hold.d.ts.map +1 -1
- package/dist/completion/session-hold.js +18 -0
- package/dist/completion/session-hold.js.map +1 -1
- package/dist/completion/standing-approval-convergence.d.ts.map +1 -1
- package/dist/completion/standing-approval-convergence.js +2 -1
- package/dist/completion/standing-approval-convergence.js.map +1 -1
- package/dist/completion/team-phase.d.ts.map +1 -1
- package/dist/completion/team-phase.js +1 -0
- package/dist/completion/team-phase.js.map +1 -1
- package/dist/completion/unclaimed-migration-notice-phase.d.ts +97 -0
- package/dist/completion/unclaimed-migration-notice-phase.d.ts.map +1 -0
- package/dist/completion/unclaimed-migration-notice-phase.js +270 -0
- package/dist/completion/unclaimed-migration-notice-phase.js.map +1 -0
- package/dist/directive/directive-executor.d.ts.map +1 -1
- package/dist/directive/directive-executor.js +1 -20
- package/dist/directive/directive-executor.js.map +1 -1
- package/dist/focus/focus-executor.d.ts +1 -0
- package/dist/focus/focus-executor.d.ts.map +1 -1
- package/dist/focus/focus-executor.js +18 -17
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/focus-loop-registry.js +2 -2
- package/dist/focus/focus-loop-registry.js.map +1 -1
- package/dist/focus/focus-team-state.js +1 -1
- package/dist/focus/listener-spawn.d.ts.map +1 -1
- package/dist/focus/listener-spawn.js +5 -20
- package/dist/focus/listener-spawn.js.map +1 -1
- package/dist/focus/listener-state.d.ts.map +1 -1
- package/dist/focus/listener-state.js +1 -0
- package/dist/focus/listener-state.js.map +1 -1
- package/dist/focus/listener.d.ts +1 -0
- package/dist/focus/listener.d.ts.map +1 -1
- package/dist/focus/listener.js +9 -0
- package/dist/focus/listener.js.map +1 -1
- package/dist/focus/migration-claim-pass.d.ts +50 -0
- package/dist/focus/migration-claim-pass.d.ts.map +1 -0
- package/dist/focus/migration-claim-pass.js +234 -0
- package/dist/focus/migration-claim-pass.js.map +1 -0
- package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -1
- package/dist/focus/pending-spawn-pass-deps.js +2 -1
- package/dist/focus/pending-spawn-pass-deps.js.map +1 -1
- package/dist/focus/team-actionable-work.d.ts +21 -0
- package/dist/focus/team-actionable-work.d.ts.map +1 -1
- package/dist/focus/team-actionable-work.js +3 -0
- package/dist/focus/team-actionable-work.js.map +1 -1
- package/dist/git/types.d.ts.map +1 -1
- package/dist/git/types.js +2 -1
- package/dist/git/types.js.map +1 -1
- package/dist/loops/llm-client.d.ts +1 -1
- package/dist/loops/llm-client.d.ts.map +1 -1
- package/dist/loops/llm-client.js +29 -106
- package/dist/loops/llm-client.js.map +1 -1
- package/dist/migrations/migration-claim-lifecycle.d.ts +166 -0
- package/dist/migrations/migration-claim-lifecycle.d.ts.map +1 -0
- package/dist/migrations/migration-claim-lifecycle.js +198 -0
- package/dist/migrations/migration-claim-lifecycle.js.map +1 -0
- package/dist/migrations/migration-held-set.d.ts +171 -0
- package/dist/migrations/migration-held-set.d.ts.map +1 -0
- package/dist/migrations/migration-held-set.js +295 -0
- package/dist/migrations/migration-held-set.js.map +1 -0
- package/dist/migrations/migration-inventory.d.ts +187 -0
- package/dist/migrations/migration-inventory.d.ts.map +1 -0
- package/dist/migrations/migration-inventory.js +253 -0
- package/dist/migrations/migration-inventory.js.map +1 -0
- package/dist/migrations/migration-manifest.d.ts +114 -0
- package/dist/migrations/migration-manifest.d.ts.map +1 -0
- package/dist/migrations/migration-manifest.js +295 -0
- package/dist/migrations/migration-manifest.js.map +1 -0
- package/dist/prompt/team-prompt-base.js +1 -1
- package/dist/prompt-sections/migration-numbering-section.d.ts +58 -0
- package/dist/prompt-sections/migration-numbering-section.d.ts.map +1 -0
- package/dist/prompt-sections/migration-numbering-section.js +70 -0
- package/dist/prompt-sections/migration-numbering-section.js.map +1 -0
- package/dist/prompt-sections/migration-numbering-state.d.ts +30 -0
- package/dist/prompt-sections/migration-numbering-state.d.ts.map +1 -0
- package/dist/prompt-sections/migration-numbering-state.js +24 -0
- package/dist/prompt-sections/migration-numbering-state.js.map +1 -0
- package/dist/prompt-sections/unclaimed-migration-section.d.ts +38 -0
- package/dist/prompt-sections/unclaimed-migration-section.d.ts.map +1 -0
- package/dist/prompt-sections/unclaimed-migration-section.js +57 -0
- package/dist/prompt-sections/unclaimed-migration-section.js.map +1 -0
- package/dist/queries/agent-resolvable-promotion.d.ts +12 -0
- package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-promotion.js +17 -6
- package/dist/queries/agent-resolvable-promotion.js.map +1 -1
- package/dist/queries/claim-pass-focuses.d.ts +19 -0
- package/dist/queries/claim-pass-focuses.d.ts.map +1 -0
- package/dist/queries/claim-pass-focuses.js +72 -0
- package/dist/queries/claim-pass-focuses.js.map +1 -0
- package/dist/queries/daemon-connection.d.ts.map +1 -1
- package/dist/queries/daemon-connection.js +1 -0
- package/dist/queries/daemon-connection.js.map +1 -1
- package/dist/queries/delivery-gate-state.d.ts +3 -0
- package/dist/queries/delivery-gate-state.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state.js +1 -1
- package/dist/queries/delivery-gate-state.js.map +1 -1
- package/dist/queries/focus-discovery.d.ts +25 -2
- package/dist/queries/focus-discovery.d.ts.map +1 -1
- package/dist/queries/focus-discovery.js +16 -9
- package/dist/queries/focus-discovery.js.map +1 -1
- package/dist/queries/focus-unclaimed-migration.d.ts +146 -0
- package/dist/queries/focus-unclaimed-migration.d.ts.map +1 -0
- package/dist/queries/focus-unclaimed-migration.js +266 -0
- package/dist/queries/focus-unclaimed-migration.js.map +1 -0
- package/dist/queries/live-focus-branches.d.ts +32 -0
- package/dist/queries/live-focus-branches.d.ts.map +1 -0
- package/dist/queries/live-focus-branches.js +66 -0
- package/dist/queries/live-focus-branches.js.map +1 -0
- package/dist/queries/migration-claims.d.ts +25 -0
- package/dist/queries/migration-claims.d.ts.map +1 -0
- package/dist/queries/migration-claims.js +79 -0
- package/dist/queries/migration-claims.js.map +1 -0
- package/dist/queries/schemas.d.ts +2 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +6 -0
- package/dist/queries/schemas.js.map +1 -1
- package/dist/queries/shared.js +1 -1
- package/dist/queries/verify-own-holds.d.ts +89 -0
- package/dist/queries/verify-own-holds.d.ts.map +1 -0
- package/dist/queries/verify-own-holds.js +93 -0
- package/dist/queries/verify-own-holds.js.map +1 -0
- package/dist/session/session-lineage.d.ts.map +1 -1
- package/dist/session/session-lineage.js +3 -0
- package/dist/session/session-lineage.js.map +1 -1
- package/dist/shell/heartbeat-metadata.d.ts +48 -2
- package/dist/shell/heartbeat-metadata.d.ts.map +1 -1
- package/dist/shell/heartbeat-metadata.js +80 -3
- package/dist/shell/heartbeat-metadata.js.map +1 -1
- package/dist/shell/heartbeat.d.ts +13 -0
- package/dist/shell/heartbeat.d.ts.map +1 -1
- package/dist/shell/heartbeat.js +31 -10
- package/dist/shell/heartbeat.js.map +1 -1
- package/dist/shell/mcp-resolution.js +1 -1
- package/dist/shell/mcp-resolution.js.map +1 -1
- package/dist/shell/migration-held-set-publish.d.ts +170 -0
- package/dist/shell/migration-held-set-publish.d.ts.map +1 -0
- package/dist/shell/migration-held-set-publish.js +172 -0
- package/dist/shell/migration-held-set-publish.js.map +1 -0
- package/dist/shell/worker-pidfile.d.ts.map +1 -1
- package/dist/shell/worker-pidfile.js +1 -0
- package/dist/shell/worker-pidfile.js.map +1 -1
- package/dist/spawn/helpers.d.ts.map +1 -1
- package/dist/spawn/helpers.js +1 -0
- package/dist/spawn/helpers.js.map +1 -1
- package/dist/spawn/lead-launch.d.ts.map +1 -1
- package/dist/spawn/lead-launch.js +1 -0
- package/dist/spawn/lead-launch.js.map +1 -1
- package/dist/spawn/lead-process-ownership.d.ts.map +1 -1
- package/dist/spawn/lead-process-ownership.js +1 -0
- package/dist/spawn/lead-process-ownership.js.map +1 -1
- package/dist/spawn/one-shot-model.d.ts +145 -0
- package/dist/spawn/one-shot-model.d.ts.map +1 -0
- package/dist/spawn/one-shot-model.js +329 -0
- package/dist/spawn/one-shot-model.js.map +1 -0
- package/dist/spawn/process-group-kill.d.ts.map +1 -1
- package/dist/spawn/process-group-kill.js +1 -0
- package/dist/spawn/process-group-kill.js.map +1 -1
- package/dist/spawn/process-spawn.d.ts +18 -1
- package/dist/spawn/process-spawn.d.ts.map +1 -1
- package/dist/spawn/process-spawn.js +11 -6
- package/dist/spawn/process-spawn.js.map +1 -1
- package/dist/spawn/prompt-assembly.d.ts +115 -18
- package/dist/spawn/prompt-assembly.d.ts.map +1 -1
- package/dist/spawn/prompt-assembly.js +121 -2
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/spawn/review-hold-park.d.ts.map +1 -1
- package/dist/spawn/review-hold-park.js +7 -3
- package/dist/spawn/review-hold-park.js.map +1 -1
- package/dist/spawn/routing-decider-spawn.d.ts +30 -0
- package/dist/spawn/routing-decider-spawn.d.ts.map +1 -1
- package/dist/spawn/routing-decider-spawn.js +84 -2
- package/dist/spawn/routing-decider-spawn.js.map +1 -1
- package/dist/spawn/routing-decider.d.ts.map +1 -1
- package/dist/spawn/routing-decider.js +22 -0
- package/dist/spawn/routing-decider.js.map +1 -1
- package/dist/spawn/spawn-and-acknowledge.d.ts +61 -0
- package/dist/spawn/spawn-and-acknowledge.d.ts.map +1 -0
- package/dist/spawn/spawn-and-acknowledge.js +117 -0
- package/dist/spawn/spawn-and-acknowledge.js.map +1 -0
- package/dist/spawn/spawn-cooldown.d.ts +15 -1
- package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn/spawn-cooldown.js +67 -19
- package/dist/spawn/spawn-cooldown.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts +10 -10
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +33 -5
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/templates/claude-md.d.ts +1 -1
- package/dist/templates/claude-md.d.ts.map +1 -1
- package/dist/templates/claude-md.js +24 -0
- package/dist/templates/claude-md.js.map +1 -1
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/testing/fixtures/migration-namespace-repo.d.ts +63 -0
- package/dist/testing/fixtures/migration-namespace-repo.d.ts.map +1 -0
- package/dist/testing/fixtures/migration-namespace-repo.js +164 -0
- package/dist/testing/fixtures/migration-namespace-repo.js.map +1 -0
- package/dist/testing/fixtures/stubborn-lead-process.d.ts.map +1 -1
- package/dist/testing/fixtures/stubborn-lead-process.js +1 -0
- package/dist/testing/fixtures/stubborn-lead-process.js.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/verify/ai-inspection-runner.d.ts.map +1 -1
- package/dist/verify/ai-inspection-runner.js +26 -7
- package/dist/verify/ai-inspection-runner.js.map +1 -1
- package/dist/verify/de-restatement.d.ts +9 -2
- package/dist/verify/de-restatement.d.ts.map +1 -1
- package/dist/verify/de-restatement.js +14 -76
- package/dist/verify/de-restatement.js.map +1 -1
- package/dist/verify/default-on-guards.d.ts +5 -2
- package/dist/verify/default-on-guards.d.ts.map +1 -1
- package/dist/verify/default-on-guards.js +5 -3
- package/dist/verify/default-on-guards.js.map +1 -1
- package/dist/verify/no-own-delta-verdict.d.ts +16 -2
- package/dist/verify/no-own-delta-verdict.d.ts.map +1 -1
- package/dist/verify/no-own-delta-verdict.js +18 -2
- package/dist/verify/no-own-delta-verdict.js.map +1 -1
- package/dist/verify/verification-deps-default.d.ts.map +1 -1
- package/dist/verify/verification-deps-default.js +6 -0
- package/dist/verify/verification-deps-default.js.map +1 -1
- package/dist/verify/verification-deps.d.ts +10 -0
- package/dist/verify/verification-deps.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.d.ts +7 -0
- package/dist/verify/verification-deterministic.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.js.map +1 -1
- package/dist/verify/verification-engine.d.ts +1 -20
- package/dist/verify/verification-engine.d.ts.map +1 -1
- package/dist/verify/verification-engine.js +24 -55
- package/dist/verify/verification-engine.js.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.d.ts +3 -1
- package/dist/verify/verification-evidence-unavailable-feedback.d.ts.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.js +3 -1
- package/dist/verify/verification-evidence-unavailable-feedback.js.map +1 -1
- package/dist/verify/verification-feedback.d.ts +4 -12
- package/dist/verify/verification-feedback.d.ts.map +1 -1
- package/dist/verify/verification-feedback.js +7 -12
- package/dist/verify/verification-feedback.js.map +1 -1
- package/dist/verify/verification-history-reset.d.ts.map +1 -1
- package/dist/verify/verification-history-reset.js +11 -3
- package/dist/verify/verification-history-reset.js.map +1 -1
- package/dist/verify/verification-model-unavailable-hold.d.ts +92 -0
- package/dist/verify/verification-model-unavailable-hold.d.ts.map +1 -0
- package/dist/verify/verification-model-unavailable-hold.js +207 -0
- package/dist/verify/verification-model-unavailable-hold.js.map +1 -0
- package/dist/verify/verification-strategies.d.ts +32 -0
- package/dist/verify/verification-strategies.d.ts.map +1 -0
- package/dist/verify/verification-strategies.js +47 -0
- package/dist/verify/verification-strategies.js.map +1 -0
- package/dist/verify/verify-reconciliation.d.ts.map +1 -1
- package/dist/verify/verify-reconciliation.js +2 -1
- package/dist/verify/verify-reconciliation.js.map +1 -1
- package/dist/verify/verify-restatement.d.ts.map +1 -1
- package/dist/verify/verify-restatement.js +21 -8
- package/dist/verify/verify-restatement.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat-metadata.js","sourceRoot":"","sources":["../../src/shell/heartbeat-metadata.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"heartbeat-metadata.js","sourceRoot":"","sources":["../../src/shell/heartbeat-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,9 @@ import { type RetentionBeatObservation, type RetirementPreconditionVerdict } fro
|
|
|
4
4
|
import { recordSessionCompleted, recordActivity, getLastActivityAt } from './agent-state.js';
|
|
5
5
|
import type { ReadOnlyModeState } from '@telora/daemon-core';
|
|
6
6
|
import { type BranchStatusPayload } from './branch-status.js';
|
|
7
|
+
import { type PublishedMigrationHeldSet } from './migration-held-set-publish.js';
|
|
8
|
+
/** How often a beat is sent. Exported so the lease derived from it is assertable. */
|
|
9
|
+
export declare const HEARTBEAT_INTERVAL_MS = 60000;
|
|
7
10
|
/**
|
|
8
11
|
* Compute a stable, display-meaningful repo identity from a product set: the
|
|
9
12
|
* sorted, deduplicated basenames of each product's repo path, joined by ', '.
|
|
@@ -125,7 +128,17 @@ export interface DoHeartbeatDeps {
|
|
|
125
128
|
sendHeartbeat: typeof sendHeartbeat;
|
|
126
129
|
probeBackends: (config: DaemonConfig) => Promise<unknown>;
|
|
127
130
|
buildBranchStatus: (config: DaemonConfig) => Promise<Record<string, BranchStatusPayload>>;
|
|
131
|
+
buildMigrationHeldSets: (config: DaemonConfig) => Promise<Record<string, PublishedMigrationHeldSet>>;
|
|
128
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* The producers a real beat runs with.
|
|
135
|
+
*
|
|
136
|
+
* Named and exported rather than written inline at the call site so it can be
|
|
137
|
+
* DRIVEN: a test can call the very thing production calls -- including the
|
|
138
|
+
* migration held set, whose lease is derived from this module's own heartbeat
|
|
139
|
+
* interval and is otherwise a number no test could see.
|
|
140
|
+
*/
|
|
141
|
+
export declare function productionHeartbeatProducers(): DoHeartbeatDeps;
|
|
129
142
|
/**
|
|
130
143
|
* Gather current counters and send a heartbeat.
|
|
131
144
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/shell/heartbeat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/shell/heartbeat.ts"],"names":[],"mappings":"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"}
|
package/dist/shell/heartbeat.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by: packages/daemon/src/
|
|
2
|
+
// Pinned by: packages/daemon/src/migrations/claim-production-wiring.test.ts,
|
|
3
|
+
// packages/daemon/src/shell/activity-watchdog.test.ts,
|
|
3
4
|
// packages/daemon/src/shell/heartbeat-draining-status.test.ts,
|
|
4
|
-
// packages/daemon/src/shell/heartbeat-gap.test.ts,
|
|
5
|
+
// packages/daemon/src/shell/heartbeat-gap.test.ts,
|
|
6
|
+
// packages/daemon/src/shell/heartbeat-migration-held-set.test.ts,
|
|
7
|
+
// packages/daemon/src/shell/heartbeat-read-only.test.ts,
|
|
5
8
|
// packages/daemon/src/shell/heartbeat-shutdown-guard.test.ts,
|
|
6
9
|
// packages/daemon/src/shell/heartbeat-stable-identity.test.ts,
|
|
7
10
|
// packages/daemon/src/shell/heartbeat-team-phases.test.ts,
|
|
@@ -37,11 +40,13 @@ import { safeInterval, healthEvents, getReadOnlyModeState } from '@telora/daemon
|
|
|
37
40
|
import { isIntakeDraining } from './intake-control.js';
|
|
38
41
|
import { probeAllBackends } from '../backends/index.js';
|
|
39
42
|
import { buildBranchStatusByProduct, buildHeartbeatMetadata } from './heartbeat-metadata.js';
|
|
43
|
+
import { buildMigrationHeldSetsForHeartbeat } from './migration-held-set-publish.js';
|
|
40
44
|
import { sweepAgedFirings, FIRING_SETTLE_WINDOW_MS } from '../completion/supervision-firing-record.js';
|
|
41
45
|
import { resolveUpdateChannelUrl } from '../update/version-check.js';
|
|
42
46
|
import { createLogger } from './log.js';
|
|
43
47
|
const log = createLogger({ module: 'watchdog' });
|
|
44
|
-
|
|
48
|
+
/** How often a beat is sent. Exported so the lease derived from it is assertable. */
|
|
49
|
+
export const HEARTBEAT_INTERVAL_MS = 60_000; // 60 seconds
|
|
45
50
|
const INACTIVITY_THRESHOLD_MS = 600_000; // 10 minutes
|
|
46
51
|
const EVENT_LOOP_LAG_WARNING_MS = 30_000; // 30 seconds
|
|
47
52
|
// The lease horizon the daemon DECLARES on each beat: how long this beat should
|
|
@@ -354,6 +359,11 @@ function applyFocusScopedMetadata(metadata) {
|
|
|
354
359
|
* spans all products; not a defect
|
|
355
360
|
* metadata.verificationPostures SCOPED { [productId]: posture } map
|
|
356
361
|
* metadata.availableBackends invariant host-level engine install+auth probe
|
|
362
|
+
* metadata.mcpProductsVersion invariant the @telora/mcp-products version agents on
|
|
363
|
+
* this host EXECUTE (the daemon's own bundled
|
|
364
|
+
* copy, which every worktree .mcp.json points
|
|
365
|
+
* at) -- read by the product-api rollout
|
|
366
|
+
* barrier; omitted when none resolves
|
|
357
367
|
* metadata.productEngines SCOPED { [productId]: { defaultCodingEngine,
|
|
358
368
|
* localCodex, codexModel } } map
|
|
359
369
|
* metadata.branchStatus SCOPED { [productId]: BranchStatusPayload }
|
|
@@ -442,6 +452,22 @@ export function getRetirementPreconditionVerdict() {
|
|
|
442
452
|
export function resetRetentionObservationWindow() {
|
|
443
453
|
retentionObservationWindow = [];
|
|
444
454
|
}
|
|
455
|
+
/**
|
|
456
|
+
* The producers a real beat runs with.
|
|
457
|
+
*
|
|
458
|
+
* Named and exported rather than written inline at the call site so it can be
|
|
459
|
+
* DRIVEN: a test can call the very thing production calls -- including the
|
|
460
|
+
* migration held set, whose lease is derived from this module's own heartbeat
|
|
461
|
+
* interval and is otherwise a number no test could see.
|
|
462
|
+
*/
|
|
463
|
+
export function productionHeartbeatProducers() {
|
|
464
|
+
return {
|
|
465
|
+
sendHeartbeat,
|
|
466
|
+
probeBackends: probeAllBackends,
|
|
467
|
+
buildBranchStatus: buildBranchStatusByProduct,
|
|
468
|
+
buildMigrationHeldSets: (cfg) => buildMigrationHeldSetsForHeartbeat(cfg, HEARTBEAT_INTERVAL_MS),
|
|
469
|
+
};
|
|
470
|
+
}
|
|
445
471
|
/**
|
|
446
472
|
* Gather current counters and send a heartbeat.
|
|
447
473
|
*
|
|
@@ -453,11 +479,7 @@ export function resetRetentionObservationWindow() {
|
|
|
453
479
|
* (with the injectable deps seam) so a unit test can drive the real consumption
|
|
454
480
|
* path; production callers pass no args.
|
|
455
481
|
*/
|
|
456
|
-
export function doHeartbeat(deps = {
|
|
457
|
-
sendHeartbeat,
|
|
458
|
-
probeBackends: probeAllBackends,
|
|
459
|
-
buildBranchStatus: buildBranchStatusByProduct,
|
|
460
|
-
}) {
|
|
482
|
+
export function doHeartbeat(deps = productionHeartbeatProducers()) {
|
|
461
483
|
const beat = performHeartbeat(deps).finally(() => {
|
|
462
484
|
if (inFlightBeat === beat)
|
|
463
485
|
inFlightBeat = null;
|
|
@@ -503,8 +525,7 @@ async function performHeartbeat(deps) {
|
|
|
503
525
|
latestAvailableRegistry,
|
|
504
526
|
installRegistry: resolveUpdateChannelUrl(),
|
|
505
527
|
},
|
|
506
|
-
|
|
507
|
-
buildBranchStatus: deps.buildBranchStatus,
|
|
528
|
+
producers: deps,
|
|
508
529
|
applyFocusScopedMetadata,
|
|
509
530
|
readOnlyMetadataField,
|
|
510
531
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../src/shell/heartbeat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../src/shell/heartbeat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by:
|
|
2
|
+
// Pinned by: packages/daemon/src/shell/heartbeat-mcp-version.test.ts
|
|
3
3
|
// PINNED-BY-END
|
|
4
4
|
/**
|
|
5
5
|
* MCP server path resolution and config generation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-resolution.js","sourceRoot":"","sources":["../../src/shell/mcp-resolution.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"mcp-resolution.js","sourceRoot":"","sources":["../../src/shell/mcp-resolution.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,qEAAqE;AACrE,gBAAgB;AAEhB;;;;;;GAMG;AAEH,OAAO,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEpF,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Publishing each product's migration held set on the heartbeat, so the
|
|
3
|
+
* allocator can see what is already taken.
|
|
4
|
+
*
|
|
5
|
+
* WHY THE HEARTBEAT
|
|
6
|
+
* -----------------
|
|
7
|
+
* The grant happens at the edge function, because it has to be atomic at the
|
|
8
|
+
* database. The held set can only be computed here, because it is a git-tree
|
|
9
|
+
* read across integration and every live focus branch and only the daemon has
|
|
10
|
+
* the repositories. This is the same split `metadata.verificationPostures`
|
|
11
|
+
* already crosses -- "workstation-local state the API cannot itself derive; the
|
|
12
|
+
* daemon is the single source" -- so it crosses the same way.
|
|
13
|
+
*
|
|
14
|
+
* PRODUCT-SCOPED, THEREFORE A MAP
|
|
15
|
+
* -------------------------------
|
|
16
|
+
* `metadata.migrationHeldSets` is `{ [productId]: PublishedMigrationHeldSet }`,
|
|
17
|
+
* per the heartbeat metadata classification rule in `heartbeat.ts`: a daemon
|
|
18
|
+
* manages several products and the app matches a connection to a product by
|
|
19
|
+
* `productIds.includes(...)`, so a FLAT product-scoped value is served verbatim
|
|
20
|
+
* to every product the daemon manages. Here that would hand one product's
|
|
21
|
+
* migration numbers to another -- and since the numbers are what a claim is
|
|
22
|
+
* granted against, the misattribution would not merely display wrong, it would
|
|
23
|
+
* grant wrong.
|
|
24
|
+
*
|
|
25
|
+
* WHAT IS PUBLISHED, AND WHAT IS NOT
|
|
26
|
+
* ----------------------------------
|
|
27
|
+
* The ordinals, the scheme, whether the reading was COMPLETE, when it was taken
|
|
28
|
+
* and the per-ref tips. Not the tags, not the file paths: the grant needs to
|
|
29
|
+
* know which numbers are taken, and a payload that grows with the migration
|
|
30
|
+
* history is a payload that eventually stops being sent.
|
|
31
|
+
*
|
|
32
|
+
* THREE STATES ARE PUBLISHED, and ABSENCE IS A FOURTH. A product that declares
|
|
33
|
+
* no numbering publishes `undeclared` EXPLICITLY; one whose declaration is
|
|
34
|
+
* broken publishes `declarationUnreadable`; one that reads publishes `held`
|
|
35
|
+
* (whose list may legitimately be empty). NO ENTRY AT ALL means only that this
|
|
36
|
+
* daemon has not reported for the product -- a read that failed, or a product
|
|
37
|
+
* it does not manage.
|
|
38
|
+
*
|
|
39
|
+
* The handler must refuse the first and the last with DIFFERENT codes: an
|
|
40
|
+
* opted-out product needs a declaration added (`migration_numbering_unavailable`),
|
|
41
|
+
* while an unreported one needs another heartbeat (`migration_held_set_unavailable`,
|
|
42
|
+
* retryable). Publishing the opt-out as an omission made those two the same
|
|
43
|
+
* absence, so the caller was told to wait for something that was never coming.
|
|
44
|
+
*
|
|
45
|
+
* @module migration-held-set-publish
|
|
46
|
+
*/
|
|
47
|
+
import { computeMigrationHeldSet, type MigrationHeldSetDeps } from '../migrations/migration-held-set.js';
|
|
48
|
+
import type { MigrationScheme } from '../migrations/migration-manifest.js';
|
|
49
|
+
import type { DaemonConfig } from '../types/index.js';
|
|
50
|
+
/** One product's entry in `metadata.migrationHeldSets`. */
|
|
51
|
+
export type PublishedMigrationHeldSet = {
|
|
52
|
+
status: 'held';
|
|
53
|
+
scheme: MigrationScheme;
|
|
54
|
+
/** Every ordinal any readable ref holds, sorted (string order = ordinal order). */
|
|
55
|
+
held: string[];
|
|
56
|
+
/** False when a ref could not be read; the handler must refuse to grant. */
|
|
57
|
+
complete: boolean;
|
|
58
|
+
/** When the reading was taken (epoch ms) -- half of the staleness bound. */
|
|
59
|
+
readAt: number;
|
|
60
|
+
/** `{ [ref]: tip }` for every ref that resolved -- the other half. */
|
|
61
|
+
tips: Record<string, string>;
|
|
62
|
+
/** Refs that could not be read, with why. Empty when `complete`. */
|
|
63
|
+
unreadable: Array<{
|
|
64
|
+
ref: string;
|
|
65
|
+
reason: string;
|
|
66
|
+
}>;
|
|
67
|
+
/**
|
|
68
|
+
* THE LEASE: how long this reading may be granted against, from `readAt`.
|
|
69
|
+
*
|
|
70
|
+
* Stated HERE because only the publisher knows how often it re-reads. The
|
|
71
|
+
* handler has no git and cannot ask whether these tips are still current;
|
|
72
|
+
* what it can do is refuse a reading that has outlived the interval its
|
|
73
|
+
* publisher refreshes on, because past that, age stops meaning "nothing
|
|
74
|
+
* changed" and starts meaning NOBODY IS LOOKING. A fixed bound at the
|
|
75
|
+
* handler could only be set to the most pessimistic daemon, which is how it
|
|
76
|
+
* came to be fifteen minutes -- many beats of blind granting after a daemon
|
|
77
|
+
* died.
|
|
78
|
+
*/
|
|
79
|
+
staleAfterMs: number;
|
|
80
|
+
} | {
|
|
81
|
+
status: 'declarationUnreadable';
|
|
82
|
+
reason: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* The product declares no migration numbering. Published EXPLICITLY rather
|
|
86
|
+
* than omitted: an omitted entry and an opted-out product would otherwise be
|
|
87
|
+
* the same absence at the handler, which must refuse them with DIFFERENT
|
|
88
|
+
* codes -- `migration_numbering_unavailable` (fix the declaration) vs
|
|
89
|
+
* `migration_held_set_unavailable` (no daemon has reported yet; retry).
|
|
90
|
+
*/
|
|
91
|
+
| {
|
|
92
|
+
status: 'undeclared';
|
|
93
|
+
};
|
|
94
|
+
/** Which refs a product's held set is read from. */
|
|
95
|
+
export interface ProductMigrationRefs {
|
|
96
|
+
/** The product's integration branch. */
|
|
97
|
+
integrationBranch: string;
|
|
98
|
+
/** Every live focus branch on the product (`product_focuses.branch_name`). */
|
|
99
|
+
focusBranches: string[];
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* The default lease, in multiples of the heartbeat interval.
|
|
103
|
+
*
|
|
104
|
+
* Three beats: long enough that jitter, a slow tick or one missed beat never
|
|
105
|
+
* refuses a claim; short enough that a dead daemon stops serving grants in
|
|
106
|
+
* minutes. The interval itself comes from the caller (`heartbeat.ts` owns it),
|
|
107
|
+
* so there is one definition rather than a mirrored constant that can drift.
|
|
108
|
+
*/
|
|
109
|
+
export declare const HELD_SET_LEASE_BEATS = 3;
|
|
110
|
+
/** Injectable seam so the producer is testable without a daemon or a DB. */
|
|
111
|
+
export interface MigrationHeldSetProducerDeps {
|
|
112
|
+
computeHeldSet: typeof computeMigrationHeldSet;
|
|
113
|
+
/** Resolve the refs to read for one product. */
|
|
114
|
+
getRefs: (productId: string) => Promise<ProductMigrationRefs>;
|
|
115
|
+
heldSetDeps: () => MigrationHeldSetDeps;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Build `{ [productId]: PublishedMigrationHeldSet }` for every configured
|
|
119
|
+
* product.
|
|
120
|
+
*
|
|
121
|
+
* One product failing is non-fatal to the rest: its entry is omitted, which the
|
|
122
|
+
* handler reads as "no held set published" and refuses to grant against --
|
|
123
|
+
* never as "nothing is held". Omission must never look like emptiness, which is
|
|
124
|
+
* why the two are different absences at the handler.
|
|
125
|
+
*/
|
|
126
|
+
export declare function buildMigrationHeldSetsByProduct(config: DaemonConfig, deps: MigrationHeldSetProducerDeps,
|
|
127
|
+
/** The lease stamped on every `held` reading. See PublishedMigrationHeldSet.staleAfterMs. */
|
|
128
|
+
leaseMs: number): Promise<Record<string, PublishedMigrationHeldSet>>;
|
|
129
|
+
/**
|
|
130
|
+
* The refs one product's held set is read from: its integration branch plus
|
|
131
|
+
* every branch that HOLDS numbers.
|
|
132
|
+
*
|
|
133
|
+
* WHICH BRANCHES THOSE ARE is not this module's call -- it is the one rule in
|
|
134
|
+
* `queries/live-focus-branches.ts`, which the grant handler's coverage check
|
|
135
|
+
* applies to the same question on the other side of the boundary. This asked it
|
|
136
|
+
* differently once (`getActiveFocuses`, the ARMED spawn set) and the two
|
|
137
|
+
* answers disagreeing made the allocator refuse every claim on any product
|
|
138
|
+
* holding an un-armed active focus, with no way out but re-arming it.
|
|
139
|
+
*
|
|
140
|
+
* It has to include focuses with no team running: a focus that is un-armed, or
|
|
141
|
+
* between spawns, still HOLDS the numbers on its branch, and reading only
|
|
142
|
+
* branches with a live team would hand those numbers out again.
|
|
143
|
+
*
|
|
144
|
+
* Integration is in the union for the reason the 2026-09-22 P0 makes concrete:
|
|
145
|
+
* the number it named was held by INTEGRATION, after a sibling focus merged and
|
|
146
|
+
* stopped being live. A union scoped to focus branches alone would have missed it.
|
|
147
|
+
*/
|
|
148
|
+
export declare function makeActiveFocusRefsReader(config: DaemonConfig,
|
|
149
|
+
/**
|
|
150
|
+
* The branch source. Defaulted to the production reader and injectable ONLY
|
|
151
|
+
* so the mapping below can be driven without a database.
|
|
152
|
+
*/
|
|
153
|
+
listBranches?: (productId: string) => Promise<string[]>): (productId: string) => Promise<ProductMigrationRefs>;
|
|
154
|
+
/** Real git, real declaration reader, real clock. */
|
|
155
|
+
export declare function defaultMigrationHeldSetProducerDeps(getRefs: (productId: string) => Promise<ProductMigrationRefs>): MigrationHeldSetProducerDeps;
|
|
156
|
+
/**
|
|
157
|
+
* The producer the heartbeat calls: real git, real declaration reader, real
|
|
158
|
+
* clock, refs from the product's active focuses plus integration.
|
|
159
|
+
*/
|
|
160
|
+
export declare function buildMigrationHeldSetsForHeartbeat(config: DaemonConfig,
|
|
161
|
+
/** The daemon's heartbeat interval; the lease is a small multiple of it. */
|
|
162
|
+
heartbeatIntervalMs: number,
|
|
163
|
+
/**
|
|
164
|
+
* Where the branches come from. Defaulted to the production reader and
|
|
165
|
+
* injectable ONLY so a test can drive this exact function -- real git, real
|
|
166
|
+
* declaration, real lease arithmetic -- without an API behind the branch
|
|
167
|
+
* list. Which branches those are is pinned separately, on the reader itself.
|
|
168
|
+
*/
|
|
169
|
+
refsReader?: (productId: string) => Promise<ProductMigrationRefs>): Promise<Record<string, PublishedMigrationHeldSet>>;
|
|
170
|
+
//# sourceMappingURL=migration-held-set-publish.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-held-set-publish.d.ts","sourceRoot":"","sources":["../../src/shell/migration-held-set-publish.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,EACL,uBAAuB,EAEvB,KAAK,oBAAoB,EAC1B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,2DAA2D;AAC3D,MAAM,MAAM,yBAAyB,GACjC;IACA,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,eAAe,CAAC;IACxB,mFAAmF;IACnF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,4EAA4E;IAC5E,QAAQ,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,oEAAoE;IACpE,UAAU,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD;;;;;;;;;;;OAWG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB,GACC;IAAE,MAAM,EAAE,uBAAuB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACrD;;;;;;GAMG;GACD;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC;AAE7B,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACnC,wCAAwC;IACxC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,4EAA4E;AAC5E,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE,OAAO,uBAAuB,CAAC;IAC/C,gDAAgD;IAChD,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC9D,WAAW,EAAE,MAAM,oBAAoB,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,4BAA4B;AAClC,6FAA6F;AAC7F,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC,CAkDpD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,YAAY;AACpB;;;GAGG;AACH,YAAY,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAyB,GAC7E,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAKtD;AAED,qDAAqD;AACrD,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,GAC5D,4BAA4B,CAM9B;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,YAAY;AACpB,4EAA4E;AAC5E,mBAAmB,EAAE,MAAM;AAC3B;;;;;GAKG;AACH,UAAU,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAC1B,GACpC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC,CAMpD"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/migrations/claim-end-to-end.test.ts,
|
|
3
|
+
// packages/daemon/src/migrations/claim-production-wiring.test.ts,
|
|
4
|
+
// packages/daemon/src/shell/migration-held-set-publish.test.ts
|
|
5
|
+
// PINNED-BY-END
|
|
6
|
+
/**
|
|
7
|
+
* Publishing each product's migration held set on the heartbeat, so the
|
|
8
|
+
* allocator can see what is already taken.
|
|
9
|
+
*
|
|
10
|
+
* WHY THE HEARTBEAT
|
|
11
|
+
* -----------------
|
|
12
|
+
* The grant happens at the edge function, because it has to be atomic at the
|
|
13
|
+
* database. The held set can only be computed here, because it is a git-tree
|
|
14
|
+
* read across integration and every live focus branch and only the daemon has
|
|
15
|
+
* the repositories. This is the same split `metadata.verificationPostures`
|
|
16
|
+
* already crosses -- "workstation-local state the API cannot itself derive; the
|
|
17
|
+
* daemon is the single source" -- so it crosses the same way.
|
|
18
|
+
*
|
|
19
|
+
* PRODUCT-SCOPED, THEREFORE A MAP
|
|
20
|
+
* -------------------------------
|
|
21
|
+
* `metadata.migrationHeldSets` is `{ [productId]: PublishedMigrationHeldSet }`,
|
|
22
|
+
* per the heartbeat metadata classification rule in `heartbeat.ts`: a daemon
|
|
23
|
+
* manages several products and the app matches a connection to a product by
|
|
24
|
+
* `productIds.includes(...)`, so a FLAT product-scoped value is served verbatim
|
|
25
|
+
* to every product the daemon manages. Here that would hand one product's
|
|
26
|
+
* migration numbers to another -- and since the numbers are what a claim is
|
|
27
|
+
* granted against, the misattribution would not merely display wrong, it would
|
|
28
|
+
* grant wrong.
|
|
29
|
+
*
|
|
30
|
+
* WHAT IS PUBLISHED, AND WHAT IS NOT
|
|
31
|
+
* ----------------------------------
|
|
32
|
+
* The ordinals, the scheme, whether the reading was COMPLETE, when it was taken
|
|
33
|
+
* and the per-ref tips. Not the tags, not the file paths: the grant needs to
|
|
34
|
+
* know which numbers are taken, and a payload that grows with the migration
|
|
35
|
+
* history is a payload that eventually stops being sent.
|
|
36
|
+
*
|
|
37
|
+
* THREE STATES ARE PUBLISHED, and ABSENCE IS A FOURTH. A product that declares
|
|
38
|
+
* no numbering publishes `undeclared` EXPLICITLY; one whose declaration is
|
|
39
|
+
* broken publishes `declarationUnreadable`; one that reads publishes `held`
|
|
40
|
+
* (whose list may legitimately be empty). NO ENTRY AT ALL means only that this
|
|
41
|
+
* daemon has not reported for the product -- a read that failed, or a product
|
|
42
|
+
* it does not manage.
|
|
43
|
+
*
|
|
44
|
+
* The handler must refuse the first and the last with DIFFERENT codes: an
|
|
45
|
+
* opted-out product needs a declaration added (`migration_numbering_unavailable`),
|
|
46
|
+
* while an unreported one needs another heartbeat (`migration_held_set_unavailable`,
|
|
47
|
+
* retryable). Publishing the opt-out as an omission made those two the same
|
|
48
|
+
* absence, so the caller was told to wait for something that was never coming.
|
|
49
|
+
*
|
|
50
|
+
* @module migration-held-set-publish
|
|
51
|
+
*/
|
|
52
|
+
import { computeMigrationHeldSet, defaultMigrationHeldSetDeps, } from '../migrations/migration-held-set.js';
|
|
53
|
+
import { listLiveFocusBranches } from '../queries/live-focus-branches.js';
|
|
54
|
+
import { configForProduct } from './config.js';
|
|
55
|
+
/**
|
|
56
|
+
* The default lease, in multiples of the heartbeat interval.
|
|
57
|
+
*
|
|
58
|
+
* Three beats: long enough that jitter, a slow tick or one missed beat never
|
|
59
|
+
* refuses a claim; short enough that a dead daemon stops serving grants in
|
|
60
|
+
* minutes. The interval itself comes from the caller (`heartbeat.ts` owns it),
|
|
61
|
+
* so there is one definition rather than a mirrored constant that can drift.
|
|
62
|
+
*/
|
|
63
|
+
export const HELD_SET_LEASE_BEATS = 3;
|
|
64
|
+
/**
|
|
65
|
+
* Build `{ [productId]: PublishedMigrationHeldSet }` for every configured
|
|
66
|
+
* product.
|
|
67
|
+
*
|
|
68
|
+
* One product failing is non-fatal to the rest: its entry is omitted, which the
|
|
69
|
+
* handler reads as "no held set published" and refuses to grant against --
|
|
70
|
+
* never as "nothing is held". Omission must never look like emptiness, which is
|
|
71
|
+
* why the two are different absences at the handler.
|
|
72
|
+
*/
|
|
73
|
+
export async function buildMigrationHeldSetsByProduct(config, deps,
|
|
74
|
+
/** The lease stamped on every `held` reading. See PublishedMigrationHeldSet.staleAfterMs. */
|
|
75
|
+
leaseMs) {
|
|
76
|
+
const byProduct = {};
|
|
77
|
+
for (const product of config.products) {
|
|
78
|
+
try {
|
|
79
|
+
const productConfig = configForProduct(config, product);
|
|
80
|
+
const refs = await deps.getRefs(product.id);
|
|
81
|
+
const result = deps.computeHeldSet(productConfig.repoPath, [refs.integrationBranch, ...refs.focusBranches], deps.heldSetDeps());
|
|
82
|
+
if (result.kind === 'undeclared') {
|
|
83
|
+
// Said explicitly, not by omission: see PublishedMigrationHeldSet.
|
|
84
|
+
byProduct[product.id] = { status: 'undeclared' };
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
if (result.kind === 'declarationUnreadable') {
|
|
88
|
+
byProduct[product.id] = {
|
|
89
|
+
status: 'declarationUnreadable',
|
|
90
|
+
reason: result.reason,
|
|
91
|
+
};
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
const tips = {};
|
|
95
|
+
const unreadable = [];
|
|
96
|
+
for (const reading of result.heldSet.readings) {
|
|
97
|
+
if (reading.tip !== null)
|
|
98
|
+
tips[reading.ref] = reading.tip;
|
|
99
|
+
if (reading.outcome === 'unreadable') {
|
|
100
|
+
unreadable.push({ ref: reading.ref, reason: reading.reason ?? 'unreadable' });
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
byProduct[product.id] = {
|
|
104
|
+
status: 'held',
|
|
105
|
+
scheme: result.heldSet.scheme,
|
|
106
|
+
held: result.heldSet.held,
|
|
107
|
+
complete: result.heldSet.complete,
|
|
108
|
+
readAt: result.heldSet.readAt,
|
|
109
|
+
tips,
|
|
110
|
+
unreadable,
|
|
111
|
+
staleAfterMs: leaseMs,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
catch { /* non-fatal -- omit this product's entry */ }
|
|
115
|
+
}
|
|
116
|
+
return byProduct;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* The refs one product's held set is read from: its integration branch plus
|
|
120
|
+
* every branch that HOLDS numbers.
|
|
121
|
+
*
|
|
122
|
+
* WHICH BRANCHES THOSE ARE is not this module's call -- it is the one rule in
|
|
123
|
+
* `queries/live-focus-branches.ts`, which the grant handler's coverage check
|
|
124
|
+
* applies to the same question on the other side of the boundary. This asked it
|
|
125
|
+
* differently once (`getActiveFocuses`, the ARMED spawn set) and the two
|
|
126
|
+
* answers disagreeing made the allocator refuse every claim on any product
|
|
127
|
+
* holding an un-armed active focus, with no way out but re-arming it.
|
|
128
|
+
*
|
|
129
|
+
* It has to include focuses with no team running: a focus that is un-armed, or
|
|
130
|
+
* between spawns, still HOLDS the numbers on its branch, and reading only
|
|
131
|
+
* branches with a live team would hand those numbers out again.
|
|
132
|
+
*
|
|
133
|
+
* Integration is in the union for the reason the 2026-09-22 P0 makes concrete:
|
|
134
|
+
* the number it named was held by INTEGRATION, after a sibling focus merged and
|
|
135
|
+
* stopped being live. A union scoped to focus branches alone would have missed it.
|
|
136
|
+
*/
|
|
137
|
+
export function makeActiveFocusRefsReader(config,
|
|
138
|
+
/**
|
|
139
|
+
* The branch source. Defaulted to the production reader and injectable ONLY
|
|
140
|
+
* so the mapping below can be driven without a database.
|
|
141
|
+
*/
|
|
142
|
+
listBranches = listLiveFocusBranches) {
|
|
143
|
+
return async (productId) => ({
|
|
144
|
+
integrationBranch: config.integrationBranch,
|
|
145
|
+
focusBranches: await listBranches(productId),
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
/** Real git, real declaration reader, real clock. */
|
|
149
|
+
export function defaultMigrationHeldSetProducerDeps(getRefs) {
|
|
150
|
+
return {
|
|
151
|
+
computeHeldSet: computeMigrationHeldSet,
|
|
152
|
+
getRefs,
|
|
153
|
+
heldSetDeps: defaultMigrationHeldSetDeps,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* The producer the heartbeat calls: real git, real declaration reader, real
|
|
158
|
+
* clock, refs from the product's active focuses plus integration.
|
|
159
|
+
*/
|
|
160
|
+
export function buildMigrationHeldSetsForHeartbeat(config,
|
|
161
|
+
/** The daemon's heartbeat interval; the lease is a small multiple of it. */
|
|
162
|
+
heartbeatIntervalMs,
|
|
163
|
+
/**
|
|
164
|
+
* Where the branches come from. Defaulted to the production reader and
|
|
165
|
+
* injectable ONLY so a test can drive this exact function -- real git, real
|
|
166
|
+
* declaration, real lease arithmetic -- without an API behind the branch
|
|
167
|
+
* list. Which branches those are is pinned separately, on the reader itself.
|
|
168
|
+
*/
|
|
169
|
+
refsReader = makeActiveFocusRefsReader(config)) {
|
|
170
|
+
return buildMigrationHeldSetsByProduct(config, defaultMigrationHeldSetProducerDeps(refsReader), heartbeatIntervalMs * HELD_SET_LEASE_BEATS);
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=migration-held-set-publish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-held-set-publish.js","sourceRoot":"","sources":["../../src/shell/migration-held-set-publish.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-pidfile.d.ts","sourceRoot":"","sources":["../../src/shell/worker-pidfile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worker-pidfile.d.ts","sourceRoot":"","sources":["../../src/shell/worker-pidfile.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
// packages/daemon/src/spawn/lead-process-ownership.test.ts,
|
|
8
8
|
// packages/daemon/src/spawn/one-shot-process-ownership.test.ts,
|
|
9
9
|
// packages/daemon/src/spawn/resolution-agent-budget.test.ts,
|
|
10
|
+
// packages/daemon/src/spawn/spawn-and-acknowledge.test.ts,
|
|
10
11
|
// packages/daemon/src/spawn/spawn-team-process-ownership.test.ts,
|
|
11
12
|
// packages/daemon/src/spawn/untracked-lead-sweep.test.ts,
|
|
12
13
|
// packages/daemon/src/worktree/worktree-state.test.ts
|