@catalyst-cloud/schema 0.1.36 → 0.1.37
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 +1 -1
- package/src/events/registry.ts +12 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@catalyst-cloud/schema",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.37",
|
|
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",
|
package/src/events/registry.ts
CHANGED
|
@@ -85,7 +85,18 @@ export const durableEventTypes = {
|
|
|
85
85
|
"ask.replied": {
|
|
86
86
|
rationale:
|
|
87
87
|
"A human answered — or tried to answer — an ask in its own thread, and the mirror's ask-decision trigger reached a named outcome. ADR-0039's own durable-fact example ('a human answer was received'), applied to the customer-facing ask loop (CTC-1326). Wake-eligible because the operator learning about it LATE is the defect CTC-1326 exists to close: before this, the only surface was a 15-minute Linear read poll.",
|
|
88
|
-
|
|
88
|
+
// ⛔ NOT `webhook.ingest`, THOUGH A COMMENT WEBHOOK IS WHAT SETS IT OFF (CTC-1049 review). That verb
|
|
89
|
+
// carries a hard invariant this fact cannot satisfy: `test/webhook-event-types.test.ts` asserts the
|
|
90
|
+
// mapping is SURJECTIVE over the webhook.ingest slice — every type in it must be reachable from a
|
|
91
|
+
// raw (source, eventType, action) tuple — and the CTC-1049 gate enforces the same coverage from the
|
|
92
|
+
// other side. This type is not a mapping of a delivery; it is MINTED INSIDE the mirror DO after the
|
|
93
|
+
// ask-decision trigger runs (which itself calls Linear), so no fixture could ever produce it and
|
|
94
|
+
// declaring it webhook.ingest silently broke both checks the moment it was added.
|
|
95
|
+
// ⚠️ `coordination.publish` is the closest TRUE verb, not a perfect one: the operator copy really
|
|
96
|
+
// does arrive over a cross-DO publish, but the origin copy is appended in place. The registry has
|
|
97
|
+
// no verb for "minted by the mirror itself", which is a real gap worth a follow-up rather than a
|
|
98
|
+
// reason to mislabel this one.
|
|
99
|
+
ingestVerb: "coordination.publish",
|
|
89
100
|
wakes: { consumerClass: "host-channel" },
|
|
90
101
|
entity: "ticket",
|
|
91
102
|
},
|