instar 1.3.783 → 1.3.784

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 (41) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +41 -15
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/MachineIdentity.d.ts +13 -0
  5. package/dist/core/MachineIdentity.d.ts.map +1 -1
  6. package/dist/core/MachineIdentity.js +31 -0
  7. package/dist/core/MachineIdentity.js.map +1 -1
  8. package/dist/core/MeteredSpendGate.d.ts +8 -0
  9. package/dist/core/MeteredSpendGate.d.ts.map +1 -1
  10. package/dist/core/MeteredSpendGate.js +20 -0
  11. package/dist/core/MeteredSpendGate.js.map +1 -1
  12. package/dist/core/SpendAlertDispatcher.d.ts +94 -0
  13. package/dist/core/SpendAlertDispatcher.d.ts.map +1 -0
  14. package/dist/core/SpendAlertDispatcher.js +168 -0
  15. package/dist/core/SpendAlertDispatcher.js.map +1 -0
  16. package/dist/core/SpendAlertEmitters.d.ts +118 -0
  17. package/dist/core/SpendAlertEmitters.d.ts.map +1 -0
  18. package/dist/core/SpendAlertEmitters.js +220 -0
  19. package/dist/core/SpendAlertEmitters.js.map +1 -0
  20. package/dist/core/SpendAlertResolver.d.ts +12 -0
  21. package/dist/core/SpendAlertResolver.d.ts.map +1 -1
  22. package/dist/core/SpendAlertResolver.js +34 -0
  23. package/dist/core/SpendAlertResolver.js.map +1 -1
  24. package/dist/core/TelegramSpendTopicChannel.d.ts +50 -0
  25. package/dist/core/TelegramSpendTopicChannel.d.ts.map +1 -0
  26. package/dist/core/TelegramSpendTopicChannel.js +106 -0
  27. package/dist/core/TelegramSpendTopicChannel.js.map +1 -0
  28. package/dist/core/types.d.ts +22 -2
  29. package/dist/core/types.d.ts.map +1 -1
  30. package/dist/core/types.js.map +1 -1
  31. package/dist/server/AgentServer.d.ts +16 -0
  32. package/dist/server/AgentServer.d.ts.map +1 -1
  33. package/dist/server/AgentServer.js +173 -46
  34. package/dist/server/AgentServer.js.map +1 -1
  35. package/dist/testing/selfActionRegistry.d.ts.map +1 -1
  36. package/dist/testing/selfActionRegistry.js +128 -0
  37. package/dist/testing/selfActionRegistry.js.map +1 -1
  38. package/package.json +1 -1
  39. package/src/data/builtin-manifest.json +3 -3
  40. package/upgrades/1.3.784.md +59 -0
  41. package/upgrades/side-effects/routing-spend-increment-c.md +44 -0
@@ -1 +1 @@
1
- {"version":3,"file":"selfActionRegistry.d.ts","sourceRoot":"","sources":["../../src/testing/selfActionRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,uFAAuF;AACvF,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,wEAAwE;IACxE,eAAe,IAAI,OAAO,CAAC;IAC3B,8EAA8E;IAC9E,gBAAgB,IAAI,OAAO,CAAC;IAC5B,qFAAqF;IACrF,mBAAmB,IAAI,OAAO,CAAC;IAC/B,uGAAuG;IACvG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9C;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,4FAA4F;IAC5F,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,2BAA2B;AAC3B,wBAAgB,cAAc,IAAI,UAAU,CAY3C;AAED,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,iBAAiB,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,GAAG;QAAE,IAAI,IAAI,IAAI,CAAA;KAAE,CAAC;IAC1E,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,sGAAsG;IACtG,eAAe,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3D;AA6RD,eAAO,MAAM,uBAAuB,EAAE,oBAAoB,EAQzD,CAAC"}
1
+ {"version":3,"file":"selfActionRegistry.d.ts","sourceRoot":"","sources":["../../src/testing/selfActionRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,uFAAuF;AACvF,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,wEAAwE;IACxE,eAAe,IAAI,OAAO,CAAC;IAC3B,8EAA8E;IAC9E,gBAAgB,IAAI,OAAO,CAAC;IAC5B,qFAAqF;IACrF,mBAAmB,IAAI,OAAO,CAAC;IAC/B,uGAAuG;IACvG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9C;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,4FAA4F;IAC5F,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,2BAA2B;AAC3B,wBAAgB,cAAc,IAAI,UAAU,CAY3C;AAED,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,iBAAiB,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,GAAG;QAAE,IAAI,IAAI,IAAI,CAAA;KAAE,CAAC;IAC1E,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,sGAAsG;IACtG,eAAe,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3D;AA4ZD,eAAO,MAAM,uBAAuB,EAAE,oBAAoB,EAWzD,CAAC"}
@@ -319,7 +319,135 @@ const spendStalePriceAlert = {
319
319
  };
320
320
  },
321
321
  };
322
+ /**
323
+ * Routing-spend door-dark escalation (routing-control-room-spend Increment C,
324
+ * src/core/SpendAlertEmitters.ts onChainExhausted). Convergence shape: a
325
+ * per-episode-bucket attempt budget (= chain length) + widening backoff + the
326
+ * dispatcher's edge latch downstream. Under a PERMANENTLY dark chain (the
327
+ * pressure that never clears) emissions converge to the episode budget per
328
+ * bucket — never a per-exhaustion flood.
329
+ */
330
+ const spendDoorDarkBrakes = {
331
+ id: 'spend-door-dark-brakes',
332
+ actionVerb: 'door-dark-notify',
333
+ models: 'src/core/SpendAlertEmitters.ts (onChainExhausted — episode budget = chain length, widening backoff, flapping wording)',
334
+ boundK: 6, // 2 episode buckets × chain length 3 over the horizon
335
+ perTargetBoundK: 6, // same chain each time — bounded by the episode budgets, not a ping-pong
336
+ ticks: 145, // 145 × 5min ≈ 12.1h — crosses one 6h episode-bucket boundary
337
+ tickMs: 5 * 60_000,
338
+ eternalSentinel: {
339
+ reason: 'A permanently dark chain must keep surfacing at a bounded rate while it persists (whole-chain exhaustion is gated work failing closed); the episode-bucket budget is the rate floor.',
340
+ rateFloorMs: 2 * 60 * 60_000, // ≥3 emissions per 6h bucket ⇒ one per ≤2h worst case
341
+ },
342
+ makeUnderPressure(f, sink) {
343
+ const CHAIN_LENGTH = 3;
344
+ const BACKOFF_BASE_MS = 5 * 60_000;
345
+ const BUCKET_MS = 6 * 60 * 60_000;
346
+ let bucket = -1;
347
+ let attempts = 0;
348
+ let nextAllowedAtMs = 0;
349
+ return {
350
+ tick() {
351
+ sink.considered += 1;
352
+ // The pressure: EVERY tick is a whole-chain exhaustion that never heals.
353
+ const nowMs = f.clock.nowMs();
354
+ const b = Math.floor(nowMs / BUCKET_MS);
355
+ if (b !== bucket) {
356
+ bucket = b;
357
+ attempts = 0;
358
+ nextAllowedAtMs = 0;
359
+ }
360
+ if (attempts >= CHAIN_LENGTH)
361
+ return; // episode budget spent — the brake
362
+ if (nowMs < nextAllowedAtMs)
363
+ return; // widening backoff — the spacing brake
364
+ attempts += 1;
365
+ nextAllowedAtMs = nowMs + BACKOFF_BASE_MS * Math.pow(2, attempts - 1);
366
+ sink.emit({ verb: 'door-dark-notify', target: 'chain-JUDGE' });
367
+ },
368
+ };
369
+ },
370
+ };
371
+ /**
372
+ * Routing-spend fallback-spike digest (Increment C, SpendAlertEmitters
373
+ * onFallbackServed). Convergence shape: steady-state fallback churn is
374
+ * jsonl-only; ONE digest line fires exactly at the hourly ceiling crossing —
375
+ * the hour bucket is the latch, so sustained churn converges to one emission
376
+ * per hour (eternal-sentinel rate floor), never per-fallback noise.
377
+ */
378
+ const spendFallbackSpike = {
379
+ id: 'spend-fallback-spike',
380
+ actionVerb: 'fallback-spike-notify',
381
+ models: 'src/core/SpendAlertEmitters.ts (onFallbackServed — hourly ceiling edge, one per hour bucket)',
382
+ boundK: 3, // 3 hour-buckets over the horizon → at most one each
383
+ perTargetBoundK: 3,
384
+ ticks: 180, // 180 × 1min = 3h of sustained churn
385
+ tickMs: 60_000,
386
+ eternalSentinel: {
387
+ reason: 'Sustained fallback churn above the ceiling keeps surfacing once per hour bucket while it persists (primaries degrading is operator-relevant); the bucket edge is the rate floor.',
388
+ rateFloorMs: 60 * 60_000,
389
+ },
390
+ makeUnderPressure(f, sink) {
391
+ const CEILING = 60;
392
+ let hour = -1;
393
+ let count = 0;
394
+ return {
395
+ tick() {
396
+ sink.considered += 1;
397
+ // The pressure: a fallback serves EVERY MINUTE, forever (rate ≥ ceiling).
398
+ const h = Math.floor(f.clock.nowMs() / 3_600_000);
399
+ if (h !== hour) {
400
+ hour = h;
401
+ count = 0;
402
+ }
403
+ count += 1;
404
+ if (count === CEILING)
405
+ sink.emit({ verb: 'fallback-spike-notify', target: `hour-${h}` });
406
+ },
407
+ };
408
+ },
409
+ };
410
+ /**
411
+ * Routing-spend cap-approach thresholds (Increment C, SpendAlertEmitters
412
+ * checkCapApproach). Convergence shape: edge-triggered per (capKind,
413
+ * threshold, window) with the dispatcher latch — a key parked at 90% of both
414
+ * caps emits AT MOST 4 notices per window (2 kinds × 2 thresholds), re-armed
415
+ * only by the window rolling (daily) — never per-admit noise.
416
+ */
417
+ const spendCapApproach = {
418
+ id: 'spend-cap-approach',
419
+ actionVerb: 'cap-approach-notify',
420
+ models: 'src/core/SpendAlertEmitters.ts (checkCapApproach — 50/80 on both caps, per-window dedupe via the dispatcher latch). ' +
421
+ 'The FEEDBACK-driven surface is the edge latch (modeled here, horizon-independent); the daily window additionally ' +
422
+ 're-arms on the CALENDAR day boundary — clock-driven, not feedback-driven, bounded at 2 notices/key/day by construction.',
423
+ boundK: 4, // 2 kinds × 2 thresholds — the latch bound, horizon-independent
424
+ perTargetBoundK: 1, // each (kind, threshold, window) key emits ONCE, ever
425
+ ticks: 96, // 96 × 5min = 8h of admits with committed parked ≥80% (inside one window)
426
+ tickMs: 5 * 60_000,
427
+ makeUnderPressure(f, sink) {
428
+ const latched = new Set();
429
+ return {
430
+ tick() {
431
+ sink.considered += 1;
432
+ // The pressure: every admit lands with committed at 90% of BOTH caps,
433
+ // inside one window (the calendar re-arm is out of feedback scope).
434
+ for (const capKind of ['daily', 'lifetime']) {
435
+ for (const threshold of [0.5, 0.8]) {
436
+ const key = `spend-approach:k1:${capKind}:${threshold}:w1`;
437
+ if (latched.has(key))
438
+ continue; // the dispatcher's edge latch — the brake
439
+ latched.add(key);
440
+ sink.emit({ verb: 'cap-approach-notify', target: key });
441
+ }
442
+ }
443
+ },
444
+ };
445
+ },
446
+ };
322
447
  export const SELF_ACTION_CONTROLLERS = [
448
+ spendDoorDarkBrakes,
449
+ spendFallbackSpike,
450
+ spendCapApproach,
323
451
  proactiveSwapMonitor,
324
452
  ageKillBackoff,
325
453
  promiseBeaconNotify,
@@ -1 +1 @@
1
- {"version":3,"file":"selfActionRegistry.js","sourceRoot":"","sources":["../../src/testing/selfActionRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selfActionRegistry.js","sourceRoot":"","sources":["../../src/testing/selfActionRegistry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.783",
3
+ "version": "1.3.784",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-07-08T16:34:41.613Z",
5
- "instarVersion": "1.3.783",
4
+ "generatedAt": "2026-07-08T17:34:10.294Z",
5
+ "instarVersion": "1.3.784",
6
6
  "entryCount": 202,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -1530,7 +1530,7 @@
1530
1530
  "type": "subsystem",
1531
1531
  "domain": "server",
1532
1532
  "sourcePath": "src/server/AgentServer.ts",
1533
- "contentHash": "af9351d56d0e70e0ee2d58399a96fe3d67d1bb6c84a0b34e199b3c01d693c143",
1533
+ "contentHash": "129c6b0b0f624f93e2d2e50aa0e8c91d1ecf4cd9e21bf121637283d9f40c314f",
1534
1534
  "since": "2025-01-01"
1535
1535
  },
1536
1536
  "subsystem:session-manager": {
@@ -0,0 +1,59 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ - **`SpendAlertDispatcher`** (`src/core/SpendAlertDispatcher.ts`): lane-scoped dedup (money-critical
9
+ cap-hit/holder-dead vs informational — S-F8) + informational coalescing into ONE digest per window
10
+ + edge latch on CONFIRMED delivery only + dryRun-first + the scrubbed
11
+ `logs/routing-spend-alerts.jsonl` audit (metadata only — S-F7).
12
+ - **`TelegramSpendTopicChannel`** (`src/core/TelegramSpendTopicChannel.ts`): message-INTO the ONE
13
+ "💰 Routing & Spend Alerts" topic; money-critical kinds prefer the DURABLE relay
14
+ (`PendingRelayStore` → `DeliveryFailureSentinel`, retry-until-delivered); lifeline fallback on ANY
15
+ failure; a repoint of `alerts.telegramTopicId` is audible in BOTH topics (G5).
16
+ - **`SpendAlertEmitters`** (`src/core/SpendAlertEmitters.ts`): cap-approach 50/80% on BOTH caps (G4),
17
+ cap-hit on gate refusal (A-Min13 wording), door-dark with P19 brakes (episode budget = chain
18
+ length, widening backoff, flapping escalation), fallback-spike only at the hourly ceiling crossing
19
+ (Near-Silent), holder-dead surviving-voice (A2-2, stable pool-wide key), recon-drift surface
20
+ (fed by the Layer-1c sweep, next PR).
21
+ - **Resolver rung 2 pool half (FD-6):** the created topic id is published as a content-free
22
+ `routingSpendAlertTopicId` field on the replicated machine registry
23
+ (`MachineIdentityManager.updateRoutingSpendAlertTopic` / `readAnyRoutingSpendAlertTopic`) — a
24
+ future serving-lease holder INHERITS the id instead of re-creating; a degraded registry read
25
+ falls through the lease-fenced ladder (never a duplicate mint).
26
+ - **Router fan-out (I-9):** `onNatureRoutePlan` now fans to the env-gated console breadcrumb + the
27
+ emitters with per-subscriber throw-swallow; served fallbacks are counted from the existing
28
+ `onDegrade` seam.
29
+ - **Gate observer:** `MeteredSpendGate` gains an OPTIONAL signal-only `onGateEvent` (admit +
30
+ cap-exceeded refusal), throw-swallowed — the admit/refuse path is unchanged (unit-pinned).
31
+ - Self-action convergence models for the three new notifiers; config keys
32
+ `routingSpend.alerts.enabled` / `alerts.dryRun`.
33
+
34
+ ## What to Tell Your User
35
+
36
+ Nothing yet — the alert layer ships in dry-run soak: it decides and audits but delivers nothing.
37
+ Once flipped live (after the soak), every routing/spend notice — cap warnings at 50/80%, cap hits,
38
+ a routing chain going fully dark, fallback-rate spikes — will land in exactly ONE "💰 Routing &
39
+ Spend Alerts" Telegram topic (never a new topic per event), with only genuinely money-critical
40
+ items escalating immediately and everything else coalesced into a quiet digest.
41
+
42
+ ## Summary of New Capabilities
43
+
44
+ - (⚗️ Experimental, dryRun soak) The one-topic spend/routing alert layer: lane-deduped, digest-
45
+ coalesced, durable-delivery for money-critical kinds, pool-durable topic identity. Layer 1c
46
+ provider reconciliation (which feeds the drift alert) and the operator's amortized-subscription
47
+ display land next in this train (tracked: CMT-1929).
48
+
49
+ ## Evidence
50
+
51
+ - `tests/unit/spend-alert-dispatcher.test.ts` — lanes, dryRun default, coalescing, edge latch
52
+ (confirmed-only), digest-failure un-latch, channel isolation, durable-relay preference, lifeline
53
+ fallback, G5 repoint, rung-2 pool inherit/publish/degraded-read.
54
+ - `tests/unit/spend-alert-emitters.test.ts` — the full trigger matrix + P19 brakes + observer isolation.
55
+ - `tests/integration/spend-alert-pipeline.test.ts` — the assembled pipeline: dryRun soak, durable
56
+ relay into the resolver-created topic, digest delivery, lifeline degradation.
57
+ - `tests/e2e/routing-spend-lifecycle.test.ts` — the alert layer constructs on the REAL AgentServer
58
+ boot path on a dev agent (dryRun-first pinned) and stays DARK on the fleet.
59
+ - `tests/unit/self-action-convergence.test.ts` — 47/47 with the three new models.
@@ -0,0 +1,44 @@
1
+ # Side-Effects Review — Routing Control Room Increment C (alerts)
2
+
3
+ **Spec:** `docs/specs/routing-control-room-spend-alerts.md` (review-convergence r7, approved, parent-principle: Token-Audit Completeness)
4
+ **Worktree:** `echo/money-increment-c` off `JKHeadley/main` @ `220ebeb0b` (v1.3.783 — contains the merged Increment B) — remotes + version verified per Phase 2.
5
+ **Scope of this PR:** Increment C — the channel-abstracted alert layer: `SpendAlertDispatcher` (lane-scoped dedup + coalescing BEFORE any channel send, edge latch on CONFIRMED delivery, dryRun-first, scrubbed jsonl audit), `TelegramSpendTopicChannel` (message-INTO the ONE dedicated topic; durable-relay path for money-critical kinds; lifeline fallback on ANY failure; audible repoint), the emitter set (cap-approach 50/80% on BOTH caps, cap-hit, door-dark with P19 brakes, fallback-spike rate detection, recon-drift surface, holder-dead surviving-voice), the router-signal fan-out (I-9, observer isolation), the gate event hook, and the POOL-PUBLISHED rung-2 topic record on the machine registry (FD-6). Layer 1c reconciliation (which feeds recon-drift) and the operator additions are the NEXT PRs (tracked: CMT-1929).
6
+
7
+ ## Phase 1 — Principle check (signal-vs-authority)
8
+
9
+ **Does this change involve a decision point?** The alert layer decides WHETHER TO NOTIFY, never whether to act: it blocks no call, gates no money, and constrains no agent behavior. The only authority-shaped logic is the dispatcher's dedup/coalescing (bounded-notification-surface protection) — deterministic counters and latches whose worst failure is a suppressed or extra NOTIFICATION, never a suppressed action. The gate hook is signal-only (throw-swallowed; the gate's admit/refuse path is unchanged — unit-pinned). Compliant: signals feeding a notification surface, no brittle logic holding blocking authority.
10
+
11
+ ## Phase 2 — Plan
12
+
13
+ - **Decision points touched:** none with blocking authority. The dispatcher's lanes (money-critical vs informational) govern coalescing only — both lanes land in the SAME dedicated topic (Amendment 2).
14
+ - **Existing detectors/authorities interacted with:** `SpendAlertResolver` (extended with the pool-published rung-2 read/publish — creation stays serving-lease-fenced); `MeteredSpendGate` (gains an OPTIONAL `onGateEvent` observer — throw-swallowed, never on the refusal path); `onNatureRoutePlan` (single callback → small fan-out preserving observer isolation, I-9); `PendingRelayStore` (money-critical alerts ride the existing durable relay via injected enqueue); `MachineIdentity` registry (a content-free numeric `routingSpendAlertTopicId` field riding the SAME authenticated registry-sync path as `lastKnownUrl`/`endpoints`).
15
+ - **Rollout (FD-16):** Increment C ships **dryRun-first live-on-dev** — `routingSpend.alerts.enabled` rides `resolveDevAgentGate` (dark on the fleet), and `alerts.dryRun` defaults TRUE even on dev (would-send lines to the scrubbed jsonl, nothing delivered) until a deliberate flip.
16
+ - **Rollback path:** additive + dev-gated; disabling `alerts.enabled` (or leaving dryRun) reverts to Increment-B behavior byte-for-byte (the B stale-price cadence keeps its direct resolver path when the dispatcher is absent). No state migration; the registry field is inert data.
17
+
18
+ ## Phase 4 — Side-effects review
19
+
20
+ 1. **Over-block:** N/A for actions. For notifications: the per-kind edge latch + coalescing can suppress a repeat alert while a condition persists — by design (Bounded Notification Surface / Near-Silent Notifications); money-critical kinds ride a DISTINCT dedupe lane so a flapping door's volume can never coalesce a cap-hit into a digest (S-F8).
21
+ 2. **Under-block (missed notifications):** a transient send failure does NOT latch (stays eligible); money-critical kinds additionally fall back to the lifeline on ANY failure and ride the durable relay when wired — the failure mode is a DELAYED alert, never a silent drop. dryRun is the deliberate exception: it delivers nothing and says so in the jsonl (the FD-16 soak posture).
22
+ 3. **Level-of-abstraction fit:** dispatcher/channel/emitters live beside the B modules in `src/core/`; the fan-out lives at the single existing `onNatureRoutePlan` wiring point; NO new routes (the read surface is the jsonl + existing /guards posture). The `/attention` queue is deliberately NOT used (Amendment 2 — topic-per-item is the flood the operator forbids).
23
+ 4. **Signal vs authority:** compliant (Phase 1) — everything here is a signal consumer/notifier.
24
+ 5. **Interactions:** the dispatcher subsumes B's resolver-direct emission for stale-price/observed-drift (single voice — no double-fire: the cadence now emits THROUGH the dispatcher when present); the fan-out preserves the env-gated console breadcrumb; the gate hook never fires on the ledger path (only post-verdict); holder-dead is the ONE named exception to holder-single-voice (A2-2) and is keyed `spend-holder-dead:<keyEpoch>` pool-wide so two survivors dedupe.
25
+ 6. **External surfaces:** Telegram messages into the ONE dedicated topic (or lifeline). The registry field is content-free (a topic id number). No other egress.
26
+ 7. **Multi-machine posture:** topic identity becomes genuinely pool-durable this increment (FD-6 rung 2): the auto-created id is persisted machine-locally AND published as a content-free field on the replicated machine registry, so a future serving-lease holder INHERITS the id instead of re-creating; creation stays serving-lease-holder-only + single-flight + fenced. holder-dead emission is explicitly a surviving-machine act (single-machine: strict no-op). Emitter state (latches, backoff, spike baselines) is machine-local BY DESIGN — each machine notifies for its own observations; the dedupe keys carry machineId where cross-machine duplication is possible (door-dark), and pool-wide keys where it is not acceptable (holder-dead).
27
+ 8. **Rollback cost:** config-flag revert; no data migration; the jsonl and registry field are inert at rest.
28
+
29
+ ## Phase 5 — Second-pass review
30
+
31
+ Required (touches messaging decisions — the dispatcher decides notification delivery). Cross-model independent audit; verdict appended below.
32
+
33
+ **Reviewer verdict:** `VERDICT: Concur with the review. The provided artifact and code demonstrate robust mechanisms against blocking actions, silent drops of money-critical alerts, and notification floods, while adhering to signal-vs-authority principles.` (gemini cross-model, 2026-07-08 — scope: this artifact + SpendAlertDispatcher + TelegramSpendTopicChannel in full; questions: blocking-vs-notify, silent-drop of money-critical, flood protection, signal-vs-authority)
34
+
35
+ ## Self-action convergence (unbounded-self-action — closure: guard)
36
+
37
+ New self-triggered notifiers are registered as convergence models in `src/testing/selfActionRegistry.ts` and proven to settle by `tests/unit/self-action-convergence.test.ts` (enforcement: ratchet):
38
+ - **door-dark episode brakes** (`spend-door-dark-brakes`): max-attempts = chain length per episode bucket, widening backoff, flapping breaker → converges to the breaker bound under a permanently-dark chain.
39
+ - **fallback-spike digest** (`spend-fallback-spike`): steady-state fallback churn is jsonl-only; a digest line fires only on a rate-spike edge with a per-window latch → ≤1 digest per window under sustained churn (eternal-sentinel rate floor).
40
+ - **cap-approach thresholds** (`spend-cap-approach`): edge-triggered per (capKind, threshold, window) — at most 4 emissions per key per window (2 kinds × 2 thresholds), re-armed only by the window rolling.
41
+
42
+ ## No-deferrals accounting
43
+
44
+ Layer 1c reconciliation (feeds recon-drift), the amortized-subscription display, and the web-research price checks are the next PRs of this increment train, tracked under CMT-1929 <!-- tracked: CMT-1929 --> and enumerated in `.instar/plans/money-increment-b-brief.md`; nothing in THIS PR's claimed scope is partial.