instar 1.3.714 → 1.3.715

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 (87) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +599 -4
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  5. package/dist/config/ConfigDefaults.js +35 -0
  6. package/dist/config/ConfigDefaults.js.map +1 -1
  7. package/dist/core/CoherenceJournal.d.ts +1 -1
  8. package/dist/core/CoherenceJournal.d.ts.map +1 -1
  9. package/dist/core/CoherenceJournal.js +9 -2
  10. package/dist/core/CoherenceJournal.js.map +1 -1
  11. package/dist/core/FencedLease.d.ts +47 -1
  12. package/dist/core/FencedLease.d.ts.map +1 -1
  13. package/dist/core/FencedLease.js +58 -1
  14. package/dist/core/FencedLease.js.map +1 -1
  15. package/dist/core/LeaseCoordinator.d.ts +25 -1
  16. package/dist/core/LeaseCoordinator.d.ts.map +1 -1
  17. package/dist/core/LeaseCoordinator.js +66 -0
  18. package/dist/core/LeaseCoordinator.js.map +1 -1
  19. package/dist/core/LeaseHandbackReconciler.d.ts +212 -0
  20. package/dist/core/LeaseHandbackReconciler.d.ts.map +1 -0
  21. package/dist/core/LeaseHandbackReconciler.js +416 -0
  22. package/dist/core/LeaseHandbackReconciler.js.map +1 -0
  23. package/dist/core/MeshRpc.d.ts +6 -1
  24. package/dist/core/MeshRpc.d.ts.map +1 -1
  25. package/dist/core/MeshRpc.js +9 -0
  26. package/dist/core/MeshRpc.js.map +1 -1
  27. package/dist/core/MultiMachineCoordinator.d.ts +20 -0
  28. package/dist/core/MultiMachineCoordinator.d.ts.map +1 -1
  29. package/dist/core/MultiMachineCoordinator.js +30 -0
  30. package/dist/core/MultiMachineCoordinator.js.map +1 -1
  31. package/dist/core/OwnershipReconciler.d.ts +42 -2
  32. package/dist/core/OwnershipReconciler.d.ts.map +1 -1
  33. package/dist/core/OwnershipReconciler.js +100 -2
  34. package/dist/core/OwnershipReconciler.js.map +1 -1
  35. package/dist/core/PostUpdateMigrator.d.ts +1 -0
  36. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  37. package/dist/core/PostUpdateMigrator.js +31 -0
  38. package/dist/core/PostUpdateMigrator.js.map +1 -1
  39. package/dist/core/StaleOwnerReleaseEngine.d.ts +290 -0
  40. package/dist/core/StaleOwnerReleaseEngine.d.ts.map +1 -0
  41. package/dist/core/StaleOwnerReleaseEngine.js +645 -0
  42. package/dist/core/StaleOwnerReleaseEngine.js.map +1 -0
  43. package/dist/core/TopicClaimAnnotationStore.d.ts +121 -0
  44. package/dist/core/TopicClaimAnnotationStore.d.ts.map +1 -0
  45. package/dist/core/TopicClaimAnnotationStore.js +234 -0
  46. package/dist/core/TopicClaimAnnotationStore.js.map +1 -0
  47. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  48. package/dist/core/devGatedFeatures.js +11 -0
  49. package/dist/core/devGatedFeatures.js.map +1 -1
  50. package/dist/core/handbackLatch.d.ts +28 -0
  51. package/dist/core/handbackLatch.d.ts.map +1 -0
  52. package/dist/core/handbackLatch.js +73 -0
  53. package/dist/core/handbackLatch.js.map +1 -0
  54. package/dist/core/ropeHealth.d.ts +26 -0
  55. package/dist/core/ropeHealth.d.ts.map +1 -0
  56. package/dist/core/ropeHealth.js +32 -0
  57. package/dist/core/ropeHealth.js.map +1 -0
  58. package/dist/core/types.d.ts +51 -0
  59. package/dist/core/types.d.ts.map +1 -1
  60. package/dist/core/types.js.map +1 -1
  61. package/dist/monitoring/StrandedTopicSentinel.d.ts +5 -0
  62. package/dist/monitoring/StrandedTopicSentinel.d.ts.map +1 -1
  63. package/dist/monitoring/StrandedTopicSentinel.js +8 -0
  64. package/dist/monitoring/StrandedTopicSentinel.js.map +1 -1
  65. package/dist/monitoring/guardManifest.d.ts.map +1 -1
  66. package/dist/monitoring/guardManifest.js +45 -0
  67. package/dist/monitoring/guardManifest.js.map +1 -1
  68. package/dist/monitoring/strandedTopicDecision.d.ts +11 -0
  69. package/dist/monitoring/strandedTopicDecision.d.ts.map +1 -1
  70. package/dist/monitoring/strandedTopicDecision.js +12 -1
  71. package/dist/monitoring/strandedTopicDecision.js.map +1 -1
  72. package/dist/scaffold/templates.d.ts.map +1 -1
  73. package/dist/scaffold/templates.js +2 -1
  74. package/dist/scaffold/templates.js.map +1 -1
  75. package/dist/server/AgentServer.d.ts +9 -0
  76. package/dist/server/AgentServer.d.ts.map +1 -1
  77. package/dist/server/AgentServer.js +2 -0
  78. package/dist/server/AgentServer.js.map +1 -1
  79. package/dist/server/routes.d.ts +9 -0
  80. package/dist/server/routes.d.ts.map +1 -1
  81. package/dist/server/routes.js +76 -0
  82. package/dist/server/routes.js.map +1 -1
  83. package/package.json +1 -1
  84. package/src/data/builtin-manifest.json +65 -65
  85. package/src/scaffold/templates.ts +2 -1
  86. package/upgrades/1.3.715.md +92 -0
  87. package/upgrades/side-effects/u4-stale-owner-release-lease-handback.md +87 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaleOwnerReleaseEngine.js","sourceRoot":"","sources":["../../src/core/StaleOwnerReleaseEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * TopicClaimAnnotationStore — the NEW replicated record kind U4.2 introduces
3
+ * (`topic-claim-annotation`, spec docs/specs/u4-2-stale-owner-release.md §2.4,
4
+ * R-r3-1/R-r3-2). It carries the three pieces of stale-owner-release state that
5
+ * must SURVIVE the claimer role (the serving lease) moving between machines:
6
+ *
7
+ * 1. the claim-time PIN SUSPENSION (a stale-owner claim suspends the topic's
8
+ * pin rather than leaving pin↔owner divergence for the reconciler to
9
+ * fight — U4.1's `pinState` derives `suspended-pending-owner-return` from
10
+ * this at READ time; the pin record itself is NEVER written),
11
+ * 2. the per-topic CLAIM BUDGET + widening backoff (R-r2-4: a machine-local
12
+ * budget would reset to zero on every lease move — under exactly the
13
+ * flapping conditions the budget exists to bound),
14
+ * 3. the operator's DECLINED-DEMOTE pin ("A Refusal Stays a Refusal" must
15
+ * survive the refusal's audience changing machines).
16
+ *
17
+ * DESIGN INVARIANTS (both are the reason this kind exists — R-r3-1/R-r3-2):
18
+ * - It is deliberately NOT ownership state. It can never answer or fence
19
+ * ownership; the existing SessionOwnershipRecord stays SCHEMA-UNCHANGED.
20
+ * Riding the ownership record was grounded as unshippable: the
21
+ * topic-placement receive-validation strictly rejects unknown fields (a
22
+ * pre-U4.2 peer would suspect-halt the claimant's ENTIRE placement stream)
23
+ * and OwnershipApplier is a whitelist materializer that silently drops
24
+ * unknown fields. A new registered KIND is additive: peers that don't
25
+ * register it simply never sync it — no unknown-FIELD surface at all.
26
+ * - It is epoch-INDEPENDENT: ordered by its own HLC via the generic envelope
27
+ * (exactly like `topic-pin-record`), never an ownership CAS transition. A
28
+ * suspension/budget/refusal write MUST NOT bump `ownershipEpoch` — that
29
+ * would fence a live owner's sends the moment the §2.3 emission fence is
30
+ * wired, and contradicts §2.2.1's records-written-only-on-claim/release-
31
+ * transitions rule.
32
+ *
33
+ * recordKey = `${topic}:${episodeId}` (spec §2.4 — keyed topic + episodeId).
34
+ * The merged PER-TOPIC read picks the highest-HLC record across that topic's
35
+ * episode records (skew-proof; the same HLC-highest-wins discipline as pins).
36
+ *
37
+ * Rollback tolerance (spec §5): lingering records are INERT derived state —
38
+ * readers that don't consult them lose nothing; the suspension is cleared by
39
+ * the next operator re-pin (a fresher pin HLC wins at the effectivePins read).
40
+ */
41
+ import type { StoreFieldSchema } from './ReplicatedRecordEnvelope.js';
42
+ import type { HlcTimestamp } from './HybridLogicalClock.js';
43
+ /** The JournalKind string this store rides (dual-registry dynamic half; the
44
+ * static half is CoherenceJournal.JOURNAL_KINDS, which lists it too). */
45
+ export declare const TOPIC_CLAIM_ANNOTATION_KIND = "topic-claim-annotation";
46
+ /** The store key used by the emitter dark-gate + getByStore wiring. */
47
+ export declare const TOPIC_CLAIM_ANNOTATION_STORE_KEY = "topicClaimAnnotations";
48
+ /** recordKey = `${topic}:${episodeId}` — per-(topic, episode) identity. */
49
+ export declare function deriveClaimAnnotationRecordKey(topic: number | string, episodeId: string): string | null;
50
+ export declare const topicClaimAnnotationStoreSchema: StoreFieldSchema;
51
+ /** Dual-registry registration (mirrors TOPIC_PIN_KIND_REGISTRATION). Registration
52
+ * is INERT — emission stays gated behind the staleOwnerRelease feature flag. */
53
+ export declare const TOPIC_CLAIM_ANNOTATION_KIND_REGISTRATION: {
54
+ readonly kind: "topic-claim-annotation";
55
+ readonly store: "topicClaimAnnotations";
56
+ readonly schema: StoreFieldSchema;
57
+ };
58
+ export declare function topicClaimAnnotationContributingKinds(): string[];
59
+ /** The inputs a claim-annotation PUT carries. */
60
+ export interface ClaimAnnotationPutInput {
61
+ topic: number;
62
+ episodeId: string;
63
+ /** Pin suspension active for this claim episode (claim landed). */
64
+ suspended: boolean;
65
+ /** The claiming machine (for the returning owner's teardown disclosure). */
66
+ claimedBy?: string;
67
+ /** Per-topic cumulative claim-attempt count (the replicated budget). */
68
+ claimCount: number;
69
+ /** Widening-backoff floor: no further claim attempt before this epoch-ms. */
70
+ backoffUntilMs?: number;
71
+ /** The operator's durable "no" for this episode (declined demote). */
72
+ declinedDemote?: boolean;
73
+ }
74
+ /** Build a PUT record's data (the emitter-supplied envelope inputs pattern). */
75
+ export declare function buildClaimAnnotationPut(input: ClaimAnnotationPutInput): (hlc: HlcTimestamp, origin: string, observed?: HlcTimestamp) => Record<string, unknown> | null;
76
+ /** Build a TOMBSTONE (clear-annotation) record's data. */
77
+ export declare function buildClaimAnnotationTombstone(topic: number, episodeId: string, deletedAt: string): (hlc: HlcTimestamp, origin: string, observed?: HlcTimestamp) => Record<string, unknown> | null;
78
+ /** The merged per-topic view of the claim annotations (READ-ONLY, advisory-
79
+ * derived state — never ownership, never a fence). */
80
+ export interface MergedClaimAnnotation {
81
+ topic: number;
82
+ /** The winning (highest-HLC) episode for this topic. */
83
+ episodeId: string;
84
+ suspended: boolean;
85
+ claimedBy?: string;
86
+ claimCount: number;
87
+ backoffUntilMs?: number;
88
+ declinedDemote: boolean;
89
+ origin: string;
90
+ /** The winning HLC — effectivePins() orders the operator's re-pin against this
91
+ * (a fresher pin HLC clears the suspension: the operator's newer statement wins). */
92
+ hlc: HlcTimestamp;
93
+ }
94
+ /**
95
+ * Collapse replicated `topic-claim-annotation` entries to ONE merged annotation
96
+ * per topic: highest-HLC record per recordKey first (put OR delete), then the
97
+ * highest-HLC surviving PUT per TOPIC wins (an episode's tombstone removes that
98
+ * episode's record; a newer episode's record supersedes an older episode's).
99
+ * Input entries are already envelope-validated records.
100
+ */
101
+ export declare function mergeUnionToClaimAnnotations(entries: Array<{
102
+ data: Record<string, unknown>;
103
+ origin: string;
104
+ }>): Map<number, MergedClaimAnnotation>;
105
+ /**
106
+ * §2.4 — the ONE comparison authority for "does a live claim suspension exclude
107
+ * this pin?". A pin whose HLC is NOT strictly newer than the live suspension is
108
+ * `suspended-pending-owner-return`; a later operator re-pin carries a fresher
109
+ * HLC and WINS (the operator's newer statement clears the suspension).
110
+ *
111
+ * Shared by OwnershipReconciler.effectivePins() (the reconciler never fights the
112
+ * claim) AND the SessionReaper closeout's pin-conflict veto wiring (§2.3
113
+ * returning-owner teardown: a SUSPENDED pin is not "the reconciler bringing the
114
+ * topic back", so it must not veto the returned owner's closeout — otherwise a
115
+ * claimed pinned topic's session would linger on the returned owner forever).
116
+ */
117
+ export declare function claimSuspensionExcludesPin(pinHlc: HlcTimestamp, suspension: {
118
+ suspended: boolean;
119
+ hlc: HlcTimestamp;
120
+ } | null | undefined): boolean;
121
+ //# sourceMappingURL=TopicClaimAnnotationStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopicClaimAnnotationStore.d.ts","sourceRoot":"","sources":["../../src/core/TopicClaimAnnotationStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAsC,MAAM,+BAA+B,CAAC;AAC1G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D;0EAC0E;AAC1E,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AACpE,uEAAuE;AACvE,eAAO,MAAM,gCAAgC,0BAA0B,CAAC;AAmBxE,2EAA2E;AAC3E,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKvG;AAED,eAAO,MAAM,+BAA+B,EAAE,gBAqC7C,CAAC;AAEF;iFACiF;AACjF,eAAO,MAAM,wCAAwC;;;;CAI3C,CAAC;AAEX,wBAAgB,qCAAqC,IAAI,MAAM,EAAE,CAEhE;AAED,iDAAiD;AACjD,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,SAAS,EAAE,OAAO,CAAC;IACnB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,gFAAgF;AAChF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,uBAAuB,IAC5D,KAAK,YAAY,EAAE,QAAQ,MAAM,EAAE,WAAW,YAAY,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAoBpG;AAED,0DAA0D;AAC1D,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,IACvF,KAAK,YAAY,EAAE,QAAQ,MAAM,EAAE,WAAW,YAAY,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAYpG;AAED;uDACuD;AACvD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf;0FACsF;IACtF,GAAG,EAAE,YAAY,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAChE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAkCpC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,YAAY,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GACvE,OAAO,CAGT"}
@@ -0,0 +1,234 @@
1
+ /**
2
+ * TopicClaimAnnotationStore — the NEW replicated record kind U4.2 introduces
3
+ * (`topic-claim-annotation`, spec docs/specs/u4-2-stale-owner-release.md §2.4,
4
+ * R-r3-1/R-r3-2). It carries the three pieces of stale-owner-release state that
5
+ * must SURVIVE the claimer role (the serving lease) moving between machines:
6
+ *
7
+ * 1. the claim-time PIN SUSPENSION (a stale-owner claim suspends the topic's
8
+ * pin rather than leaving pin↔owner divergence for the reconciler to
9
+ * fight — U4.1's `pinState` derives `suspended-pending-owner-return` from
10
+ * this at READ time; the pin record itself is NEVER written),
11
+ * 2. the per-topic CLAIM BUDGET + widening backoff (R-r2-4: a machine-local
12
+ * budget would reset to zero on every lease move — under exactly the
13
+ * flapping conditions the budget exists to bound),
14
+ * 3. the operator's DECLINED-DEMOTE pin ("A Refusal Stays a Refusal" must
15
+ * survive the refusal's audience changing machines).
16
+ *
17
+ * DESIGN INVARIANTS (both are the reason this kind exists — R-r3-1/R-r3-2):
18
+ * - It is deliberately NOT ownership state. It can never answer or fence
19
+ * ownership; the existing SessionOwnershipRecord stays SCHEMA-UNCHANGED.
20
+ * Riding the ownership record was grounded as unshippable: the
21
+ * topic-placement receive-validation strictly rejects unknown fields (a
22
+ * pre-U4.2 peer would suspect-halt the claimant's ENTIRE placement stream)
23
+ * and OwnershipApplier is a whitelist materializer that silently drops
24
+ * unknown fields. A new registered KIND is additive: peers that don't
25
+ * register it simply never sync it — no unknown-FIELD surface at all.
26
+ * - It is epoch-INDEPENDENT: ordered by its own HLC via the generic envelope
27
+ * (exactly like `topic-pin-record`), never an ownership CAS transition. A
28
+ * suspension/budget/refusal write MUST NOT bump `ownershipEpoch` — that
29
+ * would fence a live owner's sends the moment the §2.3 emission fence is
30
+ * wired, and contradicts §2.2.1's records-written-only-on-claim/release-
31
+ * transitions rule.
32
+ *
33
+ * recordKey = `${topic}:${episodeId}` (spec §2.4 — keyed topic + episodeId).
34
+ * The merged PER-TOPIC read picks the highest-HLC record across that topic's
35
+ * episode records (skew-proof; the same HLC-highest-wins discipline as pins).
36
+ *
37
+ * Rollback tolerance (spec §5): lingering records are INERT derived state —
38
+ * readers that don't consult them lose nothing; the suspension is cleared by
39
+ * the next operator re-pin (a fresher pin HLC wins at the effectivePins read).
40
+ */
41
+ import { compareHlc } from './TopicPinReplicatedStore.js';
42
+ /** The JournalKind string this store rides (dual-registry dynamic half; the
43
+ * static half is CoherenceJournal.JOURNAL_KINDS, which lists it too). */
44
+ export const TOPIC_CLAIM_ANNOTATION_KIND = 'topic-claim-annotation';
45
+ /** The store key used by the emitter dark-gate + getByStore wiring. */
46
+ export const TOPIC_CLAIM_ANNOTATION_STORE_KEY = 'topicClaimAnnotations';
47
+ /** Machine-id charset clamp (consistent with topic-pin-record). */
48
+ const MACHINE_ID_RE = /^[\w-]{1,64}$/;
49
+ /** Episode-id charset clamp — plain token, never path-shaped (jail discipline). */
50
+ const EPISODE_ID_RE = /^[A-Za-z0-9._-]{1,64}$/;
51
+ /** The store-owned fields (for the registry's unknown-field counting). */
52
+ const CLAIM_ANNOTATION_KNOWN_FIELDS = [
53
+ 'topic',
54
+ 'episodeId',
55
+ 'suspended',
56
+ 'claimedBy',
57
+ 'claimCount',
58
+ 'backoffUntilMs',
59
+ 'declinedDemote',
60
+ 'deletedAt',
61
+ ];
62
+ /** recordKey = `${topic}:${episodeId}` — per-(topic, episode) identity. */
63
+ export function deriveClaimAnnotationRecordKey(topic, episodeId) {
64
+ const n = typeof topic === 'number' ? topic : Number(topic);
65
+ if (!Number.isFinite(n))
66
+ return null;
67
+ if (!EPISODE_ID_RE.test(episodeId))
68
+ return null;
69
+ return `${n}:${episodeId}`;
70
+ }
71
+ export const topicClaimAnnotationStoreSchema = {
72
+ knownFields: CLAIM_ANNOTATION_KNOWN_FIELDS,
73
+ pathSensitiveFields: ['claimedBy', 'episodeId'],
74
+ validate(raw, ctx) {
75
+ if (raw.op === 'delete') {
76
+ // Tombstone (e.g. an explicit annotation clear): only deletedAt is a legal
77
+ // store field; recordKey + hlc + op (envelope) carry the suppression.
78
+ const deletedAt = typeof raw.deletedAt === 'string' ? raw.deletedAt : undefined;
79
+ for (const k of Object.keys(raw)) {
80
+ if (k === 'op' || k === 'deletedAt')
81
+ continue;
82
+ if (CLAIM_ANNOTATION_KNOWN_FIELDS.includes(k))
83
+ ctx.countDroppedField();
84
+ }
85
+ return deletedAt !== undefined ? { deletedAt } : {};
86
+ }
87
+ // PUT — strict type clamps. A malformed field rejects the WHOLE record
88
+ // (quarantined by the envelope machinery, never a silent partial accept).
89
+ const topic = typeof raw.topic === 'number' && Number.isFinite(raw.topic) ? raw.topic : null;
90
+ if (topic === null)
91
+ return null;
92
+ if (typeof raw.episodeId !== 'string' || !EPISODE_ID_RE.test(raw.episodeId))
93
+ return null;
94
+ if (typeof raw.suspended !== 'boolean')
95
+ return null;
96
+ if (raw.claimedBy !== undefined && (typeof raw.claimedBy !== 'string' || !MACHINE_ID_RE.test(raw.claimedBy)))
97
+ return null;
98
+ const claimCount = typeof raw.claimCount === 'number' && Number.isFinite(raw.claimCount) && raw.claimCount >= 0
99
+ ? Math.floor(raw.claimCount)
100
+ : null;
101
+ if (claimCount === null)
102
+ return null;
103
+ if (raw.backoffUntilMs !== undefined && (typeof raw.backoffUntilMs !== 'number' || !Number.isFinite(raw.backoffUntilMs)))
104
+ return null;
105
+ if (raw.declinedDemote !== undefined && typeof raw.declinedDemote !== 'boolean')
106
+ return null;
107
+ return {
108
+ topic,
109
+ episodeId: raw.episodeId,
110
+ suspended: raw.suspended,
111
+ ...(raw.claimedBy !== undefined ? { claimedBy: raw.claimedBy } : {}),
112
+ claimCount,
113
+ ...(raw.backoffUntilMs !== undefined ? { backoffUntilMs: raw.backoffUntilMs } : {}),
114
+ ...(raw.declinedDemote !== undefined ? { declinedDemote: raw.declinedDemote } : {}),
115
+ };
116
+ },
117
+ };
118
+ /** Dual-registry registration (mirrors TOPIC_PIN_KIND_REGISTRATION). Registration
119
+ * is INERT — emission stays gated behind the staleOwnerRelease feature flag. */
120
+ export const TOPIC_CLAIM_ANNOTATION_KIND_REGISTRATION = {
121
+ kind: TOPIC_CLAIM_ANNOTATION_KIND,
122
+ store: TOPIC_CLAIM_ANNOTATION_STORE_KEY,
123
+ schema: topicClaimAnnotationStoreSchema,
124
+ };
125
+ export function topicClaimAnnotationContributingKinds() {
126
+ return [TOPIC_CLAIM_ANNOTATION_KIND];
127
+ }
128
+ /** Build a PUT record's data (the emitter-supplied envelope inputs pattern). */
129
+ export function buildClaimAnnotationPut(input) {
130
+ return (hlc, origin, observed) => {
131
+ const recordKey = deriveClaimAnnotationRecordKey(input.topic, input.episodeId);
132
+ if (recordKey === null)
133
+ return null;
134
+ if (input.claimedBy !== undefined && !MACHINE_ID_RE.test(input.claimedBy))
135
+ return null;
136
+ if (!Number.isFinite(input.claimCount) || input.claimCount < 0)
137
+ return null;
138
+ return {
139
+ topic: input.topic,
140
+ episodeId: input.episodeId,
141
+ suspended: input.suspended,
142
+ ...(input.claimedBy !== undefined ? { claimedBy: input.claimedBy } : {}),
143
+ claimCount: Math.floor(input.claimCount),
144
+ ...(input.backoffUntilMs !== undefined ? { backoffUntilMs: input.backoffUntilMs } : {}),
145
+ ...(input.declinedDemote !== undefined ? { declinedDemote: input.declinedDemote } : {}),
146
+ recordKey,
147
+ hlc,
148
+ op: 'put',
149
+ origin,
150
+ ...(observed !== undefined ? { observed } : {}),
151
+ };
152
+ };
153
+ }
154
+ /** Build a TOMBSTONE (clear-annotation) record's data. */
155
+ export function buildClaimAnnotationTombstone(topic, episodeId, deletedAt) {
156
+ return (hlc, origin, observed) => {
157
+ const recordKey = deriveClaimAnnotationRecordKey(topic, episodeId);
158
+ if (recordKey === null)
159
+ return null;
160
+ return {
161
+ deletedAt,
162
+ recordKey,
163
+ hlc,
164
+ op: 'delete',
165
+ origin,
166
+ ...(observed !== undefined ? { observed } : {}),
167
+ };
168
+ };
169
+ }
170
+ /**
171
+ * Collapse replicated `topic-claim-annotation` entries to ONE merged annotation
172
+ * per topic: highest-HLC record per recordKey first (put OR delete), then the
173
+ * highest-HLC surviving PUT per TOPIC wins (an episode's tombstone removes that
174
+ * episode's record; a newer episode's record supersedes an older episode's).
175
+ * Input entries are already envelope-validated records.
176
+ */
177
+ export function mergeUnionToClaimAnnotations(entries) {
178
+ // Pass 1: highest-HLC record per recordKey (per topic+episode).
179
+ const winnerByKey = new Map();
180
+ for (const e of entries) {
181
+ const hlc = e.data.hlc;
182
+ const recordKey = typeof e.data.recordKey === 'string' ? e.data.recordKey : null;
183
+ if (!hlc || recordKey === null)
184
+ continue;
185
+ const cur = winnerByKey.get(recordKey);
186
+ if (!cur || compareHlc(hlc, cur.hlc) > 0)
187
+ winnerByKey.set(recordKey, { data: e.data, origin: e.origin, hlc });
188
+ }
189
+ // Pass 2: per TOPIC, the highest-HLC surviving PUT wins.
190
+ const out = new Map();
191
+ for (const w of winnerByKey.values()) {
192
+ if (w.data.op === 'delete')
193
+ continue;
194
+ const topic = typeof w.data.topic === 'number' ? w.data.topic : NaN;
195
+ const episodeId = typeof w.data.episodeId === 'string' ? w.data.episodeId : '';
196
+ if (!Number.isFinite(topic) || !EPISODE_ID_RE.test(episodeId))
197
+ continue;
198
+ const cur = out.get(topic);
199
+ if (cur && compareHlc(w.hlc, cur.hlc) <= 0)
200
+ continue;
201
+ out.set(topic, {
202
+ topic,
203
+ episodeId,
204
+ suspended: w.data.suspended === true,
205
+ ...(typeof w.data.claimedBy === 'string' ? { claimedBy: w.data.claimedBy } : {}),
206
+ claimCount: typeof w.data.claimCount === 'number' && Number.isFinite(w.data.claimCount) ? w.data.claimCount : 0,
207
+ ...(typeof w.data.backoffUntilMs === 'number' && Number.isFinite(w.data.backoffUntilMs)
208
+ ? { backoffUntilMs: w.data.backoffUntilMs }
209
+ : {}),
210
+ declinedDemote: w.data.declinedDemote === true,
211
+ origin: w.origin,
212
+ hlc: w.hlc,
213
+ });
214
+ }
215
+ return out;
216
+ }
217
+ /**
218
+ * §2.4 — the ONE comparison authority for "does a live claim suspension exclude
219
+ * this pin?". A pin whose HLC is NOT strictly newer than the live suspension is
220
+ * `suspended-pending-owner-return`; a later operator re-pin carries a fresher
221
+ * HLC and WINS (the operator's newer statement clears the suspension).
222
+ *
223
+ * Shared by OwnershipReconciler.effectivePins() (the reconciler never fights the
224
+ * claim) AND the SessionReaper closeout's pin-conflict veto wiring (§2.3
225
+ * returning-owner teardown: a SUSPENDED pin is not "the reconciler bringing the
226
+ * topic back", so it must not veto the returned owner's closeout — otherwise a
227
+ * claimed pinned topic's session would linger on the returned owner forever).
228
+ */
229
+ export function claimSuspensionExcludesPin(pinHlc, suspension) {
230
+ if (!suspension || suspension.suspended !== true)
231
+ return false;
232
+ return compareHlc(pinHlc, suspension.hlc) <= 0;
233
+ }
234
+ //# sourceMappingURL=TopicClaimAnnotationStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopicClaimAnnotationStore.js","sourceRoot":"","sources":["../../src/core/TopicClaimAnnotationStore.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"devGatedFeatures.d.ts","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAsb/C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,sBAAsB,GACtB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,EAgJnD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAO5E"}
1
+ {"version":3,"file":"devGatedFeatures.d.ts","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,EA8b/C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,sBAAsB,GACtB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,EAsJnD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAO5E"}
@@ -282,6 +282,12 @@ export const DEV_GATED_FEATURES = [
282
282
  description: 'Silent-uncommitted-death backstop — flags agent worktrees with uncommitted work whose owning session died (/orphaned-work).',
283
283
  justification: 'Signal-only local recorder + ONE deduped attention item; reads git status/diff + lsof read-only; no egress, no spend, no destructive action. The optional preservation is a NON-destructive patch write (git diff → a state-dir file) behind an off-by-default preserveWork sub-flag — it never mutates the worktree, its index, or any ref.',
284
284
  },
285
+ {
286
+ name: 'staleOwnerRelease',
287
+ configPath: 'multiMachine.sessionPool.staleOwnerRelease.enabled',
288
+ description: 'U4.2 stale-owner release (docs/specs/u4-2-stale-owner-release.md) — the CMT-1786 auto-failover: the serving-lease holder force-claims a provably-dead owner\'s topics behind the §2.2 evidence bar (death + all-transport disproof + quorum + claimant self-proof + side-effect recency), with the replicated topic-claim-annotation carrying budgets/suspensions/refusals across lease movement.',
289
+ justification: 'Ships dryRun:true (the dry-run canary): on a dev agent the evidence pass, probes, decision trace (logs/stale-owner-release.jsonl) and GET /pool/stale-owner-release all run LIVE, but the engine logs would-claims and NEVER lands a force-claim CAS while dryRun holds — zero authority moves; graduation past dry-run is gated on the spec §5 quantified soak (≥5 operator-corroborated would-claims, zero wrong) PLUS the emission-fence + observer-staleness prerequisites. Additionally subordinate to multiMachine.sessionPool being live AND ≥2 registered machines (strict no-op otherwise). Probes are read-only authenticated handshakes to the operator\'s OWN machines — no external egress, no spend, no destructive action while the canary holds. Same dogfooding posture as topicProfiles / credentialRepointing.',
290
+ },
285
291
  {
286
292
  name: 'strandedTopicSentinel',
287
293
  configPath: 'monitoring.strandedTopicSentinel.enabled',
@@ -552,6 +558,11 @@ export const DARK_GATE_EXCLUSIONS = [
552
558
  category: 'action-bearing',
553
559
  reason: 'multi-transport-mesh-comms Layer 3 — when enabled, a preferred stationary captain RETAINS the awake lease (a live authority change) instead of self-suspending when its sole peer is presumed-gone by liveness-silence. Ships hard-dark on EVERY agent because it changes who-is-awake under partition; preferred-awake + liveness gated; MUST be live-verified on the real Mini+Laptop pair (physically sever the peer, then return it at a higher epoch and assert one-tick stand-down) before enablement. Off ⇒ renew() is byte-for-byte the legacy self-fence. Opt-in per agent after soak. Spec: docs/specs/multi-transport-mesh-comms.md.',
554
560
  },
561
+ {
562
+ configPath: 'multiMachine.leaseSelfHeal.preferredCaptainHandback.enabled',
563
+ category: 'action-bearing',
564
+ reason: 'U4.4 lease hand-back (docs/specs/u4-4-lease-handback.md, R-r2-4) — when enabled, the serving lease is HANDED BACK to the F4 preferred captain (a live authority change: claim-before-release via a holder-signed single-use consent token). Ships hard-dark on EVERY agent (dev included) like its F2/F3/L3 siblings because it moves who-is-awake; MUST be live-verified on the real Mini+Laptop pair (fail over, heal, watch the hand-back fire at a clean boundary, canary-verify ingress) before any enablement, then dev-dry-run → dev-live → fleet. dryRun:false is additionally boot-refused unless pollFollowsLease is live (the lease/ingress-split chokepoint). Documented Maturation-Path exception.',
565
+ },
555
566
  {
556
567
  configPath: 'threadline.a2aCheckIn.enabled',
557
568
  category: 'action-bearing',
@@ -1 +1 @@
1
- {"version":3,"file":"devGatedFeatures.js","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devGatedFeatures.js","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * handbackLatch — the U4.4 operator-flip latch marker (R-r2-5: "the human
3
+ * always wins", with a MECHANICAL attribution definition).
4
+ *
5
+ * The latch is WRITTEN BY the explicit flip action itself — the PIN-gated
6
+ * captain-flip lever / the manual playbook's POST step — NEVER inferred from a
7
+ * transfer's origin. A lease move WITHOUT the marker is just a lease move (the
8
+ * reconciler may hand it back); a move WITH the marker holds the reconciler
9
+ * fully inert until `suppressedUntil` (default 24h; clearable early).
10
+ *
11
+ * Machine-local by design (the latch suppresses THIS holder's reconciler);
12
+ * the marker is inert data under rollback.
13
+ */
14
+ export interface HandbackLatchRecord {
15
+ suppressedUntil: string;
16
+ reason?: string;
17
+ writtenAt: string;
18
+ }
19
+ /** Read the latch. Returns the suppressed-until epoch-ms, or null when absent /
20
+ * malformed / expired-file-still-present (an expired latch reads as none). */
21
+ export declare function readHandbackLatchUntilMs(stateDir: string, nowMs?: number): number | null;
22
+ /** Read the full record (for status surfaces). Null when absent/malformed. */
23
+ export declare function readHandbackLatchRecord(stateDir: string): HandbackLatchRecord | null;
24
+ /** Write the latch (called BY the flip action — route/playbook POST step). */
25
+ export declare function writeHandbackLatch(stateDir: string, latchMs: number, reason?: string, nowMs?: number): HandbackLatchRecord;
26
+ /** Clear the latch early (re-flip / config edit path). */
27
+ export declare function clearHandbackLatch(stateDir: string): void;
28
+ //# sourceMappingURL=handbackLatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handbackLatch.d.ts","sourceRoot":"","sources":["../../src/core/handbackLatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;+EAC+E;AAC/E,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAmB,GAAG,MAAM,GAAG,IAAI,CAYpG;AAED,8EAA8E;AAC9E,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CASpF;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAmB,GAAG,mBAAmB,CAYtI;AAED,0DAA0D;AAC1D,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMzD"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * handbackLatch — the U4.4 operator-flip latch marker (R-r2-5: "the human
3
+ * always wins", with a MECHANICAL attribution definition).
4
+ *
5
+ * The latch is WRITTEN BY the explicit flip action itself — the PIN-gated
6
+ * captain-flip lever / the manual playbook's POST step — NEVER inferred from a
7
+ * transfer's origin. A lease move WITHOUT the marker is just a lease move (the
8
+ * reconciler may hand it back); a move WITH the marker holds the reconciler
9
+ * fully inert until `suppressedUntil` (default 24h; clearable early).
10
+ *
11
+ * Machine-local by design (the latch suppresses THIS holder's reconciler);
12
+ * the marker is inert data under rollback.
13
+ */
14
+ import fs from 'node:fs';
15
+ import path from 'node:path';
16
+ import { SafeFsExecutor } from './SafeFsExecutor.js';
17
+ function latchPath(stateDir) {
18
+ return path.join(stateDir, 'state', 'handback-operator-latch.json');
19
+ }
20
+ /** Read the latch. Returns the suppressed-until epoch-ms, or null when absent /
21
+ * malformed / expired-file-still-present (an expired latch reads as none). */
22
+ export function readHandbackLatchUntilMs(stateDir, nowMs = Date.now()) {
23
+ try {
24
+ const raw = fs.readFileSync(latchPath(stateDir), 'utf-8');
25
+ const obj = JSON.parse(raw);
26
+ const until = Date.parse(obj?.suppressedUntil ?? '');
27
+ if (!Number.isFinite(until))
28
+ return null;
29
+ return until > nowMs ? until : null;
30
+ }
31
+ catch {
32
+ // @silent-fallback-ok — absent/malformed marker = no latch; the reconciler's
33
+ // other bounds (hysteresis, episode cap, churn breaker) still apply.
34
+ return null;
35
+ }
36
+ }
37
+ /** Read the full record (for status surfaces). Null when absent/malformed. */
38
+ export function readHandbackLatchRecord(stateDir) {
39
+ try {
40
+ const raw = fs.readFileSync(latchPath(stateDir), 'utf-8');
41
+ const obj = JSON.parse(raw);
42
+ if (typeof obj?.suppressedUntil !== 'string')
43
+ return null;
44
+ return obj;
45
+ }
46
+ catch {
47
+ return null; // @silent-fallback-ok — status-surface read; absent/malformed marker reads as no latch record
48
+ }
49
+ }
50
+ /** Write the latch (called BY the flip action — route/playbook POST step). */
51
+ export function writeHandbackLatch(stateDir, latchMs, reason, nowMs = Date.now()) {
52
+ const record = {
53
+ suppressedUntil: new Date(nowMs + Math.max(0, latchMs)).toISOString(),
54
+ ...(reason ? { reason } : {}),
55
+ writtenAt: new Date(nowMs).toISOString(),
56
+ };
57
+ const p = latchPath(stateDir);
58
+ fs.mkdirSync(path.dirname(p), { recursive: true });
59
+ const tmp = `${p}.tmp`;
60
+ fs.writeFileSync(tmp, JSON.stringify(record, null, 2));
61
+ fs.renameSync(tmp, p);
62
+ return record;
63
+ }
64
+ /** Clear the latch early (re-flip / config edit path). */
65
+ export function clearHandbackLatch(stateDir) {
66
+ try {
67
+ SafeFsExecutor.safeUnlinkSync(latchPath(stateDir), { operation: 'handback-latch-clear' });
68
+ }
69
+ catch {
70
+ // absent = already clear (idempotent)
71
+ }
72
+ }
73
+ //# sourceMappingURL=handbackLatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handbackLatch.js","sourceRoot":"","sources":["../../src/core/handbackLatch.ts"],"names":[],"mappings":"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"}