instar 1.3.892 → 1.3.893

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 (46) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +1 -0
  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 +5 -0
  6. package/dist/config/ConfigDefaults.js.map +1 -1
  7. package/dist/core/PostUpdateMigrator.js +1 -1
  8. package/dist/core/PostUpdateMigrator.js.map +1 -1
  9. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  10. package/dist/core/devGatedFeatures.js +6 -0
  11. package/dist/core/devGatedFeatures.js.map +1 -1
  12. package/dist/core/types.d.ts +8 -0
  13. package/dist/core/types.d.ts.map +1 -1
  14. package/dist/core/types.js.map +1 -1
  15. package/dist/monitoring/BlockerLifecycleLedger.d.ts +47 -0
  16. package/dist/monitoring/BlockerLifecycleLedger.d.ts.map +1 -0
  17. package/dist/monitoring/BlockerLifecycleLedger.js +164 -0
  18. package/dist/monitoring/BlockerLifecycleLedger.js.map +1 -0
  19. package/dist/monitoring/BlockerLifecycleService.d.ts +28 -0
  20. package/dist/monitoring/BlockerLifecycleService.d.ts.map +1 -0
  21. package/dist/monitoring/BlockerLifecycleService.js +211 -0
  22. package/dist/monitoring/BlockerLifecycleService.js.map +1 -0
  23. package/dist/monitoring/CommitmentTracker.d.ts +50 -0
  24. package/dist/monitoring/CommitmentTracker.d.ts.map +1 -1
  25. package/dist/monitoring/CommitmentTracker.js +235 -28
  26. package/dist/monitoring/CommitmentTracker.js.map +1 -1
  27. package/dist/monitoring/guardManifest.d.ts.map +1 -1
  28. package/dist/monitoring/guardManifest.js +10 -0
  29. package/dist/monitoring/guardManifest.js.map +1 -1
  30. package/dist/scaffold/templates.js +1 -1
  31. package/dist/server/AgentServer.d.ts +1 -0
  32. package/dist/server/AgentServer.d.ts.map +1 -1
  33. package/dist/server/AgentServer.js +23 -1
  34. package/dist/server/AgentServer.js.map +1 -1
  35. package/dist/server/CapabilityIndex.d.ts.map +1 -1
  36. package/dist/server/CapabilityIndex.js +3 -1
  37. package/dist/server/CapabilityIndex.js.map +1 -1
  38. package/dist/server/routes.d.ts +1 -0
  39. package/dist/server/routes.d.ts.map +1 -1
  40. package/dist/server/routes.js +189 -2
  41. package/dist/server/routes.js.map +1 -1
  42. package/package.json +1 -1
  43. package/src/data/builtin-manifest.json +64 -64
  44. package/src/scaffold/templates.ts +1 -1
  45. package/upgrades/1.3.893.md +27 -0
  46. package/upgrades/side-effects/throughput-metrics.md +86 -0
@@ -0,0 +1,86 @@
1
+ # Side-Effects Review — Worker blocker lifecycle metrics
2
+
3
+ **Version / slug:** `throughput-metrics`
4
+ **Date:** 2026-07-21
5
+ **Author:** Instar-codey
6
+ **Second-pass reviewer:** metrics_second_pass
7
+
8
+ ## Summary of the change
9
+
10
+ CommitmentTracker now acknowledges authoritative persistence and durably retains bounded blocker episodes. A non-authoritative SQLite service records two raw timing factors and exposes bounded local or proxied-per-origin reads. The feature is observe-only and development-agent gated.
11
+
12
+ ## Decision-point inventory
13
+
14
+ - Commitment persistence — modified — mutations succeed only after atomic rename; failed writes roll back memory and return a typed failure.
15
+ - Blocker declaration — pass-through — the existing explicit transition remains the only declaration authority.
16
+ - Pool read admission — added — existing credential-safe peer URL allowlisting, schema validation, response limits, and deadlines bound reads.
17
+
18
+ ## 1. Over-block
19
+
20
+ Persistence failure now rejects a transition that previously could appear successful despite not reaching disk. This is intentional verification of authoritative state. No user-message or work-selection block surface was added.
21
+
22
+ ## 2. Under-block
23
+
24
+ Best-effort request timing can be lost on process death after commitment persistence and before ledger insertion; coverage reports that absence. A totally unavailable local SQLite ledger degrades telemetry without blocking commitments, by design.
25
+
26
+ ## 3. Level-of-abstraction fit
27
+
28
+ CommitmentTracker owns authoritative mutation and episode state. The SQLite layer only derives measurements. It neither duplicates commitment authority nor feeds an action gate.
29
+
30
+ ## 4. Signal vs authority compliance
31
+
32
+ Reference: [docs/signal-vs-authority.md](../../docs/signal-vs-authority.md)
33
+
34
+ - [x] No — this change has no block/allow surface beyond truthful persistence acknowledgement.
35
+
36
+ The measurements are raw nullable signals with no score, ranking, notification, work selection, or autonomous consumer.
37
+
38
+ ## 4b. Judgment-point check
39
+
40
+ No new static heuristic at a competing-signals decision point. Persistence acknowledgement and response-size/schema bounds are enumerable invariants; trend summaries remain descriptive.
41
+
42
+ ## 5. Interactions
43
+
44
+ - Shadowing: the existing transition validation runs before persistence; storage failure is distinguished as 503.
45
+ - Double-fire: at-least-once delivery is deduped by `(origin,factor,sourceEventId)`.
46
+ - Races: mutation snapshots roll back complete in-memory state; batch effects emit only after the committed flush.
47
+ - Feedback loops: none; metrics have no behavioral consumer.
48
+
49
+ ## 6. External surfaces
50
+
51
+ Adds authenticated summary/trend routes and a machine-local SQLite file. Pool reads use credential-safe allowlisting, four-wide concurrency, per-peer and aggregate size caps, deadlines, a 60-second coalescing cache, and field allowlisting. No external service, notification, operator action, or URL is added.
52
+
53
+ ## 6b. Operator-surface quality
54
+
55
+ No operator surface — not applicable.
56
+
57
+ ## 7. Multi-machine posture
58
+
59
+ **Proxied-on-read:** each origin retains machine-local timing because clocks and persistence are origin-local; `scope=pool` returns bounded per-origin rows without inventing a fleet scalar. It emits no notices, strands no authoritative state, and generates no URLs.
60
+
61
+ ## 8. Rollback cost
62
+
63
+ Disable the dev-gated feature or revert and ship a patch. The derived SQLite database may remain harmlessly and can be deleted without commitment repair. Episode fields are forward-compatible optional data.
64
+
65
+ ## Conclusion
66
+
67
+ The review found and corrected persistence error classification, pool-response sanitization/capping/coalescing, and missing runtime guard registration. The feature is clear to ship after independent concurrence.
68
+
69
+ ## Second-pass review
70
+
71
+ **Reviewer:** metrics_second_pass
72
+ **Independent read of the artifact:** concur.
73
+
74
+ Concur with the review. The corrected implementation fail-closes unavailable metric reads, bounds and closed-schema sanitizes pool responses, exposes live guard health, and remains strictly measure-only.
75
+
76
+ ## Evidence pointers
77
+
78
+ - `tests/unit/CommitmentTracker-blocker-lifecycle.test.ts`
79
+ - `tests/unit/BlockerLifecycleLedger.test.ts`
80
+ - Build plus 192 targeted lifecycle/dev-gate wiring tests.
81
+ - The no-silent-fallback ratchet remains at its 494 baseline after explicit fail-soft annotations.
82
+ - Capability discoverability, dev-gate attribution, and SQLite registry wiring ratchets pass.
83
+
84
+ ## Class-Closure Declaration (display-only mirror)
85
+
86
+ No agent-authored-artifact defect and no self-triggered action controller — not applicable. The reconciliation timer repairs measure-only telemetry and cannot retry or alter external work.