@catalyst-cloud/schema 0.1.42 → 0.1.44
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/package.json +2 -2
- package/src/events/registry.ts +36 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@catalyst-cloud/schema",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.44",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Typed Drizzle schema = single source of truth for the per-tenant Mirror DO SQLite store (CTC-13 / ADR-0002). Shared by the mirror Worker, the host-sync replica, and the browser OPFS replica.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"scripts": {
|
|
22
22
|
"typecheck": "tsc --noEmit",
|
|
23
23
|
"test": "vitest run",
|
|
24
|
-
"test:coverage": "vitest run --coverage",
|
|
24
|
+
"test:coverage": "vitest run --coverage && bun ../../scripts/coverage-per-file.ts",
|
|
25
25
|
"generate": "drizzle-kit generate",
|
|
26
26
|
"build": "tsc -p tsconfig.build.json",
|
|
27
27
|
"build:bundle": "bun scripts/build-bundle.ts && prettier --write src/migrations.generated.ts"
|
package/src/events/registry.ts
CHANGED
|
@@ -1905,8 +1905,12 @@ export interface TelemetryEventSpec {
|
|
|
1905
1905
|
* telemetry-shaped in the plan's measurement) — ticks, gauges, process samples, read traces,
|
|
1906
1906
|
* forwarding lag, "would-*" dry-run counterfactuals, and retry-storm noise that collapses to a single
|
|
1907
1907
|
* durable boundary fact elsewhere in this registry (e.g. linear.write.proxy.failed's 140k+ lines/mo
|
|
1908
|
-
* collapses to the ONE durable linear.label.retry-exhausted terminal fact). CTC-962 (ADR-0048)
|
|
1909
|
-
*
|
|
1908
|
+
* collapses to the ONE durable linear.label.retry-exhausted terminal fact). CTC-962 (ADR-0048) started
|
|
1909
|
+
* the `mirror.*` family; it now carries 7 names (CTC-289's mirror.webhook.out-of-scope and CTC-1510's
|
|
1910
|
+
* mirror.dispatch-queue.derive-refused both rode the same sink after CTC-962 landed) — see those
|
|
1911
|
+
* entries below. ⚠️ The "70 fleet/orchestrator-origin types" figure above is this comment's OWN prior
|
|
1912
|
+
* measurement, already stale against the live count (Object.keys(telemetryEventTypes).length) by the
|
|
1913
|
+
* time CTC-1510 read it — re-measure before citing it, don't re-derive it from this text.
|
|
1910
1914
|
*/
|
|
1911
1915
|
export const telemetryEventTypes = {
|
|
1912
1916
|
"account.ratelimit.sampled": {
|
|
@@ -1926,6 +1930,31 @@ export const telemetryEventTypes = {
|
|
|
1926
1930
|
reason:
|
|
1927
1931
|
"The raw (pre-sampling) rate-limit reading behind account.ratelimit.sampled — same gauge family.",
|
|
1928
1932
|
},
|
|
1933
|
+
"board-health.action.applied": {
|
|
1934
|
+
reason:
|
|
1935
|
+
"CTC-1346 — one per remediation attempt the recurring board-health sweep makes, keyed (action, outcome), including every named refusal (rate floor, remediation cap, action failure). CTC-748's own lesson: an unlogged refusal is indistinguishable from a trigger that never ran.",
|
|
1936
|
+
sampling: { kind: "always" },
|
|
1937
|
+
},
|
|
1938
|
+
"board-health.sweep.completed": {
|
|
1939
|
+
reason:
|
|
1940
|
+
"CTC-1346 — the sweep's own per-pass heartbeat, carrying scanned/truncated/flagged/actioned/deferred. The signal whose ABSENCE is the alert (AC3, the CTC-748 lesson applied to the sweep's own liveness); sampling it away would make a real gap ambiguous with ordinary sampling loss.",
|
|
1941
|
+
sampling: { kind: "always" },
|
|
1942
|
+
},
|
|
1943
|
+
"board-health.sweep.gap": {
|
|
1944
|
+
reason:
|
|
1945
|
+
"CTC-1346 — the sweep's SELF-detected gap: this pass observed that the previous pass ran longer ago than the expected interval. Rare and high-value, never sampled away.",
|
|
1946
|
+
sampling: { kind: "always" },
|
|
1947
|
+
},
|
|
1948
|
+
"board-health.sweep.heartbeat-gap": {
|
|
1949
|
+
reason:
|
|
1950
|
+
"CTC-1346 AC3 — the INDEPENDENT fleet-wide observer's own verdict that one tenant's board-health sweep has gone quiet (or its probe failed outright — a failed probe is a gap, never a pass). Distinct from board-health.sweep.gap: that one is self-detected by the sweep itself; this one survives the sweep's OWN process/DO going fully unresponsive.",
|
|
1951
|
+
sampling: { kind: "always" },
|
|
1952
|
+
},
|
|
1953
|
+
"board-health.verdict.sampled": {
|
|
1954
|
+
reason:
|
|
1955
|
+
"CTC-1346 — a per-verdict count from the recurring board-health sweep (do/board-health-classify.ts). Gauge-shaped: only the collapsed count matters. Every verdict bucket is emitted every pass, zeros included, so a bucket falling to zero is distinguishable from the sweep having stopped.",
|
|
1956
|
+
sampling: { kind: "counted" },
|
|
1957
|
+
},
|
|
1929
1958
|
"catalyst.linear.read": {
|
|
1930
1959
|
reason:
|
|
1931
1960
|
"A Linear API read trace — ADR-0039's own telemetry example ('read traces'). By far the single largest type in the census (1.36M lines/mo); replaying every poll would archive the poll loop, not the coordination history.",
|
|
@@ -2050,6 +2079,11 @@ export const telemetryEventTypes = {
|
|
|
2050
2079
|
"CTC-289 — a verified, tenant-routable delivery whose repo/team is not a provisioned `projects` row. Carries the account, the scope key and the fence mode: the scope key is the entire diagnostic value (it answers 'why is repo Y in my mirror' and 'why is repo Y missing'), and the mode distinguishes an observed would-drop from an actual drop. Unsampled while the fence rolls out — the `observe` soak that gates enforcement reads exactly this signal, and a sampled soak cannot support a data-discarding flip. Revisit the class once enforce has been stable.",
|
|
2051
2080
|
sampling: { kind: "always" },
|
|
2052
2081
|
},
|
|
2082
|
+
"mirror.dispatch-queue.derive-refused": {
|
|
2083
|
+
reason:
|
|
2084
|
+
"CTC-1510 — one point per fail-closed `deriveDispatchQueue` refusal (an unresolved, missing or ambiguous team_workflow_mapping), carrying the team and WHICH resolution failed. Not durable: the refusal is a description of a configuration state, not a state transition, and it repeats every pass until the mapping is fixed — the durable fact is the mapping row itself. `always`-sampled: rare by design (a healthy tenant never emits it) and it is the ONLY machine-readable signal that a team's queue stopped advancing on purpose, which is exactly what a sampled-away point would hide. Repeats inside the DO's announce window are folded into `count`, never dropped.",
|
|
2085
|
+
sampling: { kind: "always" },
|
|
2086
|
+
},
|
|
2053
2087
|
"orphans.reap-requested": {
|
|
2054
2088
|
reason:
|
|
2055
2089
|
"Phase-agent worker-directory garbage collection. phase.terminal.reap-requested alone is 10,015 lines/mo — a periodic sweep re-requesting cleanup of already-terminal workers, not a discrete coordination fact worth replay.",
|