@relaycast/engine 5.0.11 → 5.1.0

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 (45) hide show
  1. package/dist/adapters/node/index.d.ts.map +1 -1
  2. package/dist/adapters/node/index.js +1 -0
  3. package/dist/adapters/node/index.js.map +1 -1
  4. package/dist/adapters/node/presence.d.ts +7 -0
  5. package/dist/adapters/node/presence.d.ts.map +1 -1
  6. package/dist/adapters/node/presence.js +14 -1
  7. package/dist/adapters/node/presence.js.map +1 -1
  8. package/dist/db/migrations/0027_workspace_event_log.sql +13 -0
  9. package/dist/db/schema.d.ts +126 -0
  10. package/dist/db/schema.d.ts.map +1 -1
  11. package/dist/db/schema.js +22 -0
  12. package/dist/db/schema.js.map +1 -1
  13. package/dist/engine/invocationCompletion.d.ts.map +1 -1
  14. package/dist/engine/invocationCompletion.js +3 -1
  15. package/dist/engine/invocationCompletion.js.map +1 -1
  16. package/dist/engine/observerToken.conflictDetection.test.d.ts +2 -0
  17. package/dist/engine/observerToken.conflictDetection.test.d.ts.map +1 -0
  18. package/dist/engine/observerToken.conflictDetection.test.js +106 -0
  19. package/dist/engine/observerToken.conflictDetection.test.js.map +1 -0
  20. package/dist/engine/observerToken.d.ts +45 -0
  21. package/dist/engine/observerToken.d.ts.map +1 -1
  22. package/dist/engine/observerToken.js +64 -7
  23. package/dist/engine/observerToken.js.map +1 -1
  24. package/dist/engine/retention.d.ts +5 -0
  25. package/dist/engine/retention.d.ts.map +1 -1
  26. package/dist/engine/retention.js +29 -2
  27. package/dist/engine/retention.js.map +1 -1
  28. package/dist/engine/workspaceEvents.d.ts +61 -0
  29. package/dist/engine/workspaceEvents.d.ts.map +1 -0
  30. package/dist/engine/workspaceEvents.js +108 -0
  31. package/dist/engine/workspaceEvents.js.map +1 -0
  32. package/dist/index.d.ts +3 -1
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +5 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/routes/deliveryRouting.d.ts.map +1 -1
  37. package/dist/routes/deliveryRouting.js +2 -1
  38. package/dist/routes/deliveryRouting.js.map +1 -1
  39. package/dist/routes/fanout.d.ts.map +1 -1
  40. package/dist/routes/fanout.js +7 -9
  41. package/dist/routes/fanout.js.map +1 -1
  42. package/dist/routes/workspace.d.ts.map +1 -1
  43. package/dist/routes/workspace.js +96 -1
  44. package/dist/routes/workspace.js.map +1 -1
  45. package/package.json +3 -3
@@ -0,0 +1,106 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { isObserverTokenNameConflict } from './observerToken.js';
3
+ /**
4
+ * Regression coverage for the D1-vs-better-sqlite3 driver mismatch: a name-collision
5
+ * insert into `observer_tokens` must be recognized as a conflict (and converted to a
6
+ * clean 409) no matter which driver threw it, or which shape that driver used.
7
+ *
8
+ * The better-sqlite3 shape is exercised end-to-end (through the real HTTP route, against
9
+ * a real better-sqlite3-backed db) by
10
+ * `src/__tests__/conformance/observerToken.test.ts` — "returns a conflict for duplicate
11
+ * observer token names in one workspace". This file instead unit-tests the pure detection
12
+ * function directly against driver error shapes that can't be produced by the
13
+ * better-sqlite3 test harness at all, most importantly Cloudflare D1's, since we can't
14
+ * spin up a real D1 binding in this package's test suite.
15
+ *
16
+ * The D1 shape below (`.code === 'SQLITE_CONSTRAINT_UNIQUE'`, `.message` prefixed
17
+ * `D1_ERROR: UNIQUE constraint failed: ...`, and drizzle-orm's `.cause` wrapping) is not
18
+ * speculative — it mirrors the shape this engine already confirmed and handles in
19
+ * `engine/agent.ts`'s `isUniqueConstraintError` (added in PR #193 for the identical class
20
+ * of bug: a 409 unique-name conflict silently regressing to an uncaught 500 against D1).
21
+ */
22
+ describe('isObserverTokenNameConflict', () => {
23
+ it('recognizes the better-sqlite3 shape (code + raw message)', () => {
24
+ expect(isObserverTokenNameConflict({
25
+ code: 'SQLITE_CONSTRAINT_UNIQUE',
26
+ message: 'UNIQUE constraint failed: observer_tokens.workspace_id, observer_tokens.name',
27
+ })).toBe(true);
28
+ });
29
+ it('recognizes the legacy better-sqlite3 code without SQLITE_CONSTRAINT_UNIQUE', () => {
30
+ expect(isObserverTokenNameConflict({
31
+ code: 'SQLITE_CONSTRAINT',
32
+ message: 'SQLITE_CONSTRAINT: UNIQUE constraint failed: observer_tokens.workspace_id, observer_tokens.name',
33
+ })).toBe(true);
34
+ });
35
+ it('recognizes the Cloudflare D1 shape (D1_ERROR-prefixed message, top level)', () => {
36
+ expect(isObserverTokenNameConflict({
37
+ code: 'SQLITE_CONSTRAINT_UNIQUE',
38
+ message: 'D1_ERROR: UNIQUE constraint failed: observer_tokens.workspace_id, observer_tokens.name: SQLITE_CONSTRAINT',
39
+ })).toBe(true);
40
+ });
41
+ it('recognizes D1 errors that drizzle-orm re-wraps under .cause', () => {
42
+ const d1Error = {
43
+ code: 'SQLITE_CONSTRAINT_UNIQUE',
44
+ message: 'D1_ERROR: UNIQUE constraint failed: observer_tokens.workspace_id, observer_tokens.name: SQLITE_CONSTRAINT',
45
+ };
46
+ const wrapped = {
47
+ message: 'Failed query: insert into "observer_tokens" ...',
48
+ cause: d1Error,
49
+ };
50
+ expect(isObserverTokenNameConflict(wrapped)).toBe(true);
51
+ });
52
+ it('recognizes a generic case-insensitive "unique constraint" message with no recognizable code', () => {
53
+ expect(isObserverTokenNameConflict({
54
+ message: 'Unique Constraint Failed on observer_tokens',
55
+ })).toBe(true);
56
+ });
57
+ it('does not falsely match unrelated errors', () => {
58
+ expect(isObserverTokenNameConflict({ code: 'SQLITE_BUSY', message: 'database is locked' })).toBe(false);
59
+ expect(isObserverTokenNameConflict(new Error('workspace not found'))).toBe(false);
60
+ expect(isObserverTokenNameConflict({ message: 'Failed query', cause: { message: 'connection reset' } })).toBe(false);
61
+ });
62
+ it('does not recurse infinitely or throw on a self-referential .cause', () => {
63
+ const circular = { message: 'wrapped' };
64
+ circular.cause = circular;
65
+ expect(() => isObserverTokenNameConflict(circular)).not.toThrow();
66
+ expect(isObserverTokenNameConflict(circular)).toBe(false);
67
+ });
68
+ it('does not stack-overflow on a multi-step .cause cycle (A -> B -> A)', () => {
69
+ const a = { message: 'A' };
70
+ const b = { message: 'B' };
71
+ a.cause = b;
72
+ b.cause = a;
73
+ expect(() => isObserverTokenNameConflict(a)).not.toThrow();
74
+ // Neither message mentions a unique-constraint violation anywhere in the cycle, so
75
+ // walking the whole chain (without looping forever) must still land on `false` —
76
+ // not merely terminate.
77
+ expect(isObserverTokenNameConflict(a)).toBe(false);
78
+ expect(isObserverTokenNameConflict(b)).toBe(false);
79
+ });
80
+ it('still finds a real conflict when it precedes a multi-step .cause cycle', () => {
81
+ const tail = { message: 'tail' };
82
+ const conflict = {
83
+ code: 'SQLITE_CONSTRAINT_UNIQUE',
84
+ message: 'UNIQUE constraint failed: observer_tokens.workspace_id, observer_tokens.name',
85
+ cause: tail,
86
+ };
87
+ tail.cause = conflict;
88
+ expect(isObserverTokenNameConflict(conflict)).toBe(true);
89
+ });
90
+ it('does not misreport a non-unique constraint violation carrying the bare SQLITE_CONSTRAINT code', () => {
91
+ expect(isObserverTokenNameConflict({
92
+ code: 'SQLITE_CONSTRAINT',
93
+ message: 'FOREIGN KEY constraint failed',
94
+ })).toBe(false);
95
+ expect(isObserverTokenNameConflict({
96
+ code: 'SQLITE_CONSTRAINT',
97
+ message: 'NOT NULL constraint failed: observer_tokens.workspace_id',
98
+ })).toBe(false);
99
+ });
100
+ it('handles non-object and null inputs safely', () => {
101
+ expect(isObserverTokenNameConflict(null)).toBe(false);
102
+ expect(isObserverTokenNameConflict(undefined)).toBe(false);
103
+ expect(isObserverTokenNameConflict('some string error')).toBe(false);
104
+ });
105
+ });
106
+ //# sourceMappingURL=observerToken.conflictDetection.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observerToken.conflictDetection.test.js","sourceRoot":"","sources":["../../src/engine/observerToken.conflictDetection.test.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,51 @@ export interface UpdateObserverTokenInput {
37
37
  expires_at?: string | null;
38
38
  }
39
39
  export declare function normalizeObserverFilters(filters?: ObserverTokenFilters | null): ObserverTokenFilters;
40
+ /**
41
+ * Recognize a unique-constraint violation on the `observer_tokens` table (either the
42
+ * `observer_tokens_workspace_name_unique` index on (workspace_id, name), or the
43
+ * `observer_tokens_token_hash_unique` index) regardless of the underlying SQLite driver.
44
+ *
45
+ * Self-hosted engine deployments run on `better-sqlite3`, whose errors carry
46
+ * `.code === 'SQLITE_CONSTRAINT'` / `'SQLITE_CONSTRAINT_UNIQUE'` and a `.message` like
47
+ * `UNIQUE constraint failed: observer_tokens.workspace_id, observer_tokens.name`.
48
+ *
49
+ * The hosted engine (relaycast-cloud) runs on Cloudflare D1 via `drizzle-orm/d1`. D1
50
+ * throws the same `.code` values, but its `.message` is prefixed
51
+ * `D1_ERROR: UNIQUE constraint failed: ...`, and drizzle-orm may additionally re-wrap the
52
+ * original driver error underneath `.cause` instead of surfacing it at the top level. This
53
+ * is confirmed by this engine's own `engine/agent.ts` `isUniqueConstraintError`, added in
54
+ * PR #193 after the exact same class of bug: clean 409 "already exists" handling silently
55
+ * regressing to an uncaught 500 against D1 because the detection only matched
56
+ * better-sqlite3's shape.
57
+ *
58
+ * This walks the `.cause` chain and falls back to a broad, case-insensitive "unique
59
+ * constraint" message match — not just the exact index/column substrings — so a future
60
+ * shift in a driver's error format doesn't silently reopen this bug again. The walk is
61
+ * iterative (not recursive) and tracks every error object visited so far in a `WeakSet`,
62
+ * breaking on *any* revisit rather than only a direct `cause === self` self-reference —
63
+ * a multi-step cycle (`A -> B -> A`) would bypass a direct-reference-only guard and blow
64
+ * the call stack, turning the very check meant to prevent a 500 into one itself.
65
+ *
66
+ * `candidate.code === 'SQLITE_CONSTRAINT'` alone (the bare, non-extended SQLite result
67
+ * code, as opposed to `'SQLITE_CONSTRAINT_UNIQUE'`) is only treated as a match when the
68
+ * message also mentions "unique" — otherwise an unrelated constraint violation on this
69
+ * insert (e.g. a `FOREIGN KEY`/`NOT NULL` failure on `workspace_id`) could be misreported
70
+ * as a name conflict. In practice better-sqlite3 always throws the extended
71
+ * `SQLITE_CONSTRAINT_UNIQUE`/`_FOREIGNKEY`/`_NOTNULL`/`_CHECK` codes (verified locally
72
+ * against the installed better-sqlite3 version — FK, NOT NULL, and CHECK violations each
73
+ * throw their own distinct extended code, never the bare `SQLITE_CONSTRAINT`), and the D1
74
+ * shape confirmed via `engine/agent.ts` also uses the extended `_UNIQUE` code, so the bare
75
+ * code is not known to occur for any of these in the drivers this engine actually runs on
76
+ * today — this check is a defense-in-depth guard, not a fix for an observed false positive.
77
+ *
78
+ * The `observer_tokens` table does have a second unique index (`token_hash`), but a
79
+ * token-hash collision is a collision of a random 192-bit hex token's SHA-256 —
80
+ * astronomically unlikely — so treating any *unique*-constraint violation from this insert
81
+ * as a name conflict (as opposed to disambiguating which of the two unique indexes fired)
82
+ * is an acceptable, deliberately-broad trade-off against risking a silent 500.
83
+ */
84
+ export declare function isObserverTokenNameConflict(err: unknown): boolean;
40
85
  export declare function createObserverToken(db: Db, workspaceId: string, input: CreateObserverTokenInput): Promise<PublicObserverToken>;
41
86
  export declare function listObserverTokens(db: Db, workspaceId: string): Promise<PublicObserverToken[]>;
42
87
  export declare function getObserverToken(db: Db, workspaceId: string, id: string): Promise<PublicObserverToken | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"observerToken.d.ts","sourceRoot":"","sources":["../../src/engine/observerToken.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observerToken.d.ts","sourceRoot":"","sources":["../../src/engine/observerToken.ts"],"names":[],"mappings":"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"}
@@ -61,13 +61,70 @@ function publicObserverToken(row, token) {
61
61
  ...(token ? { token } : {}),
62
62
  };
63
63
  }
64
- function isObserverTokenNameConflict(err) {
65
- const candidate = err;
66
- const message = candidate.message ?? '';
67
- return (candidate.code === 'SQLITE_CONSTRAINT'
68
- || candidate.code === 'SQLITE_CONSTRAINT_UNIQUE'
69
- || message.includes('observer_tokens_workspace_name_unique')
70
- || message.includes('observer_tokens.workspace_id, observer_tokens.name'));
64
+ /**
65
+ * Recognize a unique-constraint violation on the `observer_tokens` table (either the
66
+ * `observer_tokens_workspace_name_unique` index on (workspace_id, name), or the
67
+ * `observer_tokens_token_hash_unique` index) regardless of the underlying SQLite driver.
68
+ *
69
+ * Self-hosted engine deployments run on `better-sqlite3`, whose errors carry
70
+ * `.code === 'SQLITE_CONSTRAINT'` / `'SQLITE_CONSTRAINT_UNIQUE'` and a `.message` like
71
+ * `UNIQUE constraint failed: observer_tokens.workspace_id, observer_tokens.name`.
72
+ *
73
+ * The hosted engine (relaycast-cloud) runs on Cloudflare D1 via `drizzle-orm/d1`. D1
74
+ * throws the same `.code` values, but its `.message` is prefixed
75
+ * `D1_ERROR: UNIQUE constraint failed: ...`, and drizzle-orm may additionally re-wrap the
76
+ * original driver error underneath `.cause` instead of surfacing it at the top level. This
77
+ * is confirmed by this engine's own `engine/agent.ts` `isUniqueConstraintError`, added in
78
+ * PR #193 after the exact same class of bug: clean 409 "already exists" handling silently
79
+ * regressing to an uncaught 500 against D1 because the detection only matched
80
+ * better-sqlite3's shape.
81
+ *
82
+ * This walks the `.cause` chain and falls back to a broad, case-insensitive "unique
83
+ * constraint" message match — not just the exact index/column substrings — so a future
84
+ * shift in a driver's error format doesn't silently reopen this bug again. The walk is
85
+ * iterative (not recursive) and tracks every error object visited so far in a `WeakSet`,
86
+ * breaking on *any* revisit rather than only a direct `cause === self` self-reference —
87
+ * a multi-step cycle (`A -> B -> A`) would bypass a direct-reference-only guard and blow
88
+ * the call stack, turning the very check meant to prevent a 500 into one itself.
89
+ *
90
+ * `candidate.code === 'SQLITE_CONSTRAINT'` alone (the bare, non-extended SQLite result
91
+ * code, as opposed to `'SQLITE_CONSTRAINT_UNIQUE'`) is only treated as a match when the
92
+ * message also mentions "unique" — otherwise an unrelated constraint violation on this
93
+ * insert (e.g. a `FOREIGN KEY`/`NOT NULL` failure on `workspace_id`) could be misreported
94
+ * as a name conflict. In practice better-sqlite3 always throws the extended
95
+ * `SQLITE_CONSTRAINT_UNIQUE`/`_FOREIGNKEY`/`_NOTNULL`/`_CHECK` codes (verified locally
96
+ * against the installed better-sqlite3 version — FK, NOT NULL, and CHECK violations each
97
+ * throw their own distinct extended code, never the bare `SQLITE_CONSTRAINT`), and the D1
98
+ * shape confirmed via `engine/agent.ts` also uses the extended `_UNIQUE` code, so the bare
99
+ * code is not known to occur for any of these in the drivers this engine actually runs on
100
+ * today — this check is a defense-in-depth guard, not a fix for an observed false positive.
101
+ *
102
+ * The `observer_tokens` table does have a second unique index (`token_hash`), but a
103
+ * token-hash collision is a collision of a random 192-bit hex token's SHA-256 —
104
+ * astronomically unlikely — so treating any *unique*-constraint violation from this insert
105
+ * as a name conflict (as opposed to disambiguating which of the two unique indexes fired)
106
+ * is an acceptable, deliberately-broad trade-off against risking a silent 500.
107
+ */
108
+ export function isObserverTokenNameConflict(err) {
109
+ const visited = new WeakSet();
110
+ let current = err;
111
+ while (current && typeof current === 'object') {
112
+ if (visited.has(current))
113
+ return false;
114
+ visited.add(current);
115
+ const candidate = current;
116
+ const message = candidate.message ?? '';
117
+ const lowerMessage = message.toLowerCase();
118
+ const isNameIndexMessage = (message.includes('observer_tokens_workspace_name_unique')
119
+ || message.includes('observer_tokens.workspace_id, observer_tokens.name'));
120
+ const isGenericUniqueViolation = (candidate.code === 'SQLITE_CONSTRAINT_UNIQUE'
121
+ || lowerMessage.includes('unique constraint failed')
122
+ || (candidate.code === 'SQLITE_CONSTRAINT' && lowerMessage.includes('unique')));
123
+ if (isNameIndexMessage || isGenericUniqueViolation)
124
+ return true;
125
+ current = candidate.cause;
126
+ }
127
+ return false;
71
128
  }
72
129
  function observerTokenNameConflict() {
73
130
  throw codedError('Observer token name already exists in this workspace', 'observer_token_name_conflict', 409);
@@ -1 +1 @@
1
- {"version":3,"file":"observerToken.js","sourceRoot":"","sources":["../../src/engine/observerToken.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observerToken.js","sourceRoot":"","sources":["../../src/engine/observerToken.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ type Db = ReturnType<typeof getDb>;
4
4
  export declare const DEFAULT_DELIVERY_TTL_DAYS = 90;
5
5
  /** Message logs are operational telemetry (duplicate bodies), pruned after 90 days by default. */
6
6
  export declare const DEFAULT_MESSAGE_LOG_TTL_DAYS = 90;
7
+ /** Workspace event log rows are a reconciliation window, pruned after 30 days by default. */
8
+ export declare const DEFAULT_WORKSPACE_EVENT_TTL_DAYS = 30;
7
9
  /**
8
10
  * Deployment-wide TTL fallbacks, applied to workspaces without their own
9
11
  * `workspaces.retention` settings. `null` disables pruning for that table.
@@ -15,6 +17,8 @@ export interface RetentionDefaults {
15
17
  deliveryTtlDays?: number | null;
16
18
  /** Default {@link DEFAULT_MESSAGE_LOG_TTL_DAYS}. */
17
19
  messageLogTtlDays?: number | null;
20
+ /** Default {@link DEFAULT_WORKSPACE_EVENT_TTL_DAYS}. */
21
+ workspaceEventTtlDays?: number | null;
18
22
  }
19
23
  export interface PruneOptions {
20
24
  /** Max rows deleted per table per batch (the SQL LIMIT). Default 200. */
@@ -32,6 +36,7 @@ export interface PruneResult {
32
36
  deliveries: number;
33
37
  messageLogs: number;
34
38
  readReceipts: number;
39
+ workspaceEvents: number;
35
40
  }
36
41
  /**
37
42
  * Delete expired rows in bounded batches.
@@ -1 +1 @@
1
- {"version":3,"file":"retention.d.ts","sourceRoot":"","sources":["../../src/engine/retention.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAW5C,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AAInC,yFAAyF;AACzF,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,kGAAkG;AAClG,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAe/C;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,oEAAoE;IACpE,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAED,4DAA4D;AAC5D,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CA0IxF"}
1
+ {"version":3,"file":"retention.d.ts","sourceRoot":"","sources":["../../src/engine/retention.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAY5C,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AAInC,yFAAyF;AACzF,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,kGAAkG;AAClG,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAC/C,6FAA6F;AAC7F,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAenD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,wDAAwD;IACxD,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,oEAAoE;IACpE,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAED,4DAA4D;AAC5D,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAyKxF"}
@@ -1,11 +1,13 @@
1
1
  import { and, eq, inArray, isNotNull, isNull, lt, notInArray, sql } from 'drizzle-orm';
2
- import { deliveries, messageLogs, messages, readReceipts, workspaces, } from '../db/schema.js';
2
+ import { deliveries, messageLogs, messages, readReceipts, workspaceEvents, workspaces, } from '../db/schema.js';
3
3
  import { snowflakeIdLowerBound } from './snowflake.js';
4
4
  const DAY_MS = 24 * 60 * 60 * 1000;
5
5
  /** Settled deliveries are operational tracking rows, pruned after 90 days by default. */
6
6
  export const DEFAULT_DELIVERY_TTL_DAYS = 90;
7
7
  /** Message logs are operational telemetry (duplicate bodies), pruned after 90 days by default. */
8
8
  export const DEFAULT_MESSAGE_LOG_TTL_DAYS = 90;
9
+ /** Workspace event log rows are a reconciliation window, pruned after 30 days by default. */
10
+ export const DEFAULT_WORKSPACE_EVENT_TTL_DAYS = 30;
9
11
  const DEFAULT_BATCH_LIMIT = 200;
10
12
  const DEFAULT_MAX_BATCHES = 5;
11
13
  /**
@@ -69,6 +71,9 @@ export async function pruneExpired(db, opts = {}) {
69
71
  messageLogTtlDays: opts.defaults?.messageLogTtlDays !== undefined
70
72
  ? opts.defaults.messageLogTtlDays
71
73
  : DEFAULT_MESSAGE_LOG_TTL_DAYS,
74
+ workspaceEventTtlDays: opts.defaults?.workspaceEventTtlDays !== undefined
75
+ ? opts.defaults.workspaceEventTtlDays
76
+ : DEFAULT_WORKSPACE_EVENT_TTL_DAYS,
72
77
  };
73
78
  // Workspaces with explicit settings get their own pass; everyone else is
74
79
  // covered by one unscoped pass per table using the deployment default.
@@ -108,7 +113,7 @@ export async function pruneExpired(db, opts = {}) {
108
113
  }
109
114
  return total;
110
115
  }
111
- const result = { messages: 0, deliveries: 0, messageLogs: 0, readReceipts: 0 };
116
+ const result = { messages: 0, deliveries: 0, messageLogs: 0, readReceipts: 0, workspaceEvents: 0 };
112
117
  // Messages — leaf-first so the self-referencing thread FK never breaks.
113
118
  for (const pass of passes(defaults.messageTtlDays, (s) => s.message_ttl_days, messages.workspaceId)) {
114
119
  result.messages += await drain(async () => {
@@ -154,6 +159,28 @@ export async function pruneExpired(db, opts = {}) {
154
159
  return deleted.length;
155
160
  });
156
161
  }
162
+ // Workspace event log (durable observer plane; composite PK, batched via rowid).
163
+ // Each workspace's highest-seq row is always retained as the seq high-water
164
+ // mark: seq is assigned as MAX(seq)+1, so pruning a workspace to zero rows
165
+ // would reset the sequence and strand every persisted observer cursor (and
166
+ // confuse live-frame dedupe). One stale row per workspace is the cheap price.
167
+ for (const pass of passes(defaults.workspaceEventTtlDays, (s) => s.workspace_event_ttl_days, workspaceEvents.workspaceId)) {
168
+ result.workspaceEvents += await drain(async () => {
169
+ const batch = db
170
+ .select({ rowid: sql `rowid` })
171
+ .from(workspaceEvents)
172
+ .where(and(lt(workspaceEvents.createdAt, pass.cutoff), pass.scope, sql `${workspaceEvents.seq} < (
173
+ SELECT MAX(hw.seq) FROM workspace_events hw
174
+ WHERE hw.workspace_id = ${workspaceEvents.workspaceId}
175
+ )`))
176
+ .limit(batchLimit);
177
+ const deleted = await db
178
+ .delete(workspaceEvents)
179
+ .where(inArray(sql `rowid`, batch))
180
+ .returning({ seq: workspaceEvents.seq });
181
+ return deleted.length;
182
+ });
183
+ }
157
184
  // Orphaned read receipts (referential garbage, always swept).
158
185
  result.readReceipts += await drain(async () => {
159
186
  const orphaned = db
@@ -1 +1 @@
1
- {"version":3,"file":"retention.js","sourceRoot":"","sources":["../../src/engine/retention.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retention.js","sourceRoot":"","sources":["../../src/engine/retention.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { EngineDb } from '../ports/database.js';
2
+ /** Default page size for {@link listWorkspaceEvents}. */
3
+ export declare const WORKSPACE_EVENT_LIST_DEFAULT_LIMIT = 200;
4
+ /** Max page size for {@link listWorkspaceEvents}. */
5
+ export declare const WORKSPACE_EVENT_LIST_MAX_LIMIT = 500;
6
+ export interface WorkspaceEventInput {
7
+ type: string;
8
+ channelId?: string | null;
9
+ /** The exact `transformForClient(event)` frame published to the workspace stream (without `seq`). */
10
+ payload: Record<string, unknown>;
11
+ }
12
+ export interface WorkspaceEventRecord {
13
+ seq: number;
14
+ type: string;
15
+ channel_id: string | null;
16
+ payload: Record<string, unknown>;
17
+ created_at: string;
18
+ }
19
+ /**
20
+ * Append one event to the durable workspace event log. `seq` is per-workspace
21
+ * monotonic from 1, assigned inside the INSERT itself (same pattern as the
22
+ * deliveries mailbox `nextSeqSql`).
23
+ *
24
+ * Best-effort by contract: on any failure this logs a warning and returns
25
+ * `null` — callers still publish to the live stream and must never fail the
26
+ * request because the log append did.
27
+ *
28
+ * @returns The assigned seq, or `null` when the append failed.
29
+ */
30
+ export declare function appendWorkspaceEvent(db: EngineDb, workspaceId: string, input: WorkspaceEventInput): Promise<number | null>;
31
+ /**
32
+ * List workspace events with `seq > since`, ordered by seq ascending.
33
+ * `latestSeq` is `MAX(seq)` for the workspace (0 when the log is empty), so
34
+ * clients can tell whether they are caught up.
35
+ */
36
+ export declare function listWorkspaceEvents(db: EngineDb, workspaceId: string, opts?: {
37
+ since?: number;
38
+ limit?: number;
39
+ }): Promise<{
40
+ events: WorkspaceEventRecord[];
41
+ latestSeq: number;
42
+ }>;
43
+ interface WorkspaceStreamPublisher {
44
+ publishToWorkspaceStream(args: {
45
+ workspaceId: string;
46
+ event: Record<string, unknown>;
47
+ }): Promise<void>;
48
+ }
49
+ /**
50
+ * Shared "append + stamp + publish" path used by every workspace stream call
51
+ * site: append the frame to the durable log first, stamp the assigned seq onto
52
+ * the published frame as a top-level `seq` field, then publish. Both steps are
53
+ * best-effort — an append failure publishes the unstamped frame, and a publish
54
+ * failure is reported via `onPublishError` rather than thrown.
55
+ */
56
+ export declare function appendAndPublishWorkspaceEvent(deps: {
57
+ db: EngineDb;
58
+ realtime: WorkspaceStreamPublisher;
59
+ }, workspaceId: string, input: WorkspaceEventInput, onPublishError?: (err: unknown) => void): Promise<void>;
60
+ export {};
61
+ //# sourceMappingURL=workspaceEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceEvents.d.ts","sourceRoot":"","sources":["../../src/engine/workspaceEvents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,yDAAyD;AACzD,eAAO,MAAM,kCAAkC,MAAM,CAAC;AACtD,qDAAqD;AACrD,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qGAAqG;IACrG,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB;AAUD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqBxB;AAcD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5C,OAAO,CAAC;IAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA8BhE;AAED,UAAU,wBAAwB;IAChC,wBAAwB,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxG;AAED;;;;;;GAMG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,wBAAwB,CAAA;CAAE,EAC1D,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,mBAAmB,EAC1B,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GACtC,OAAO,CAAC,IAAI,CAAC,CAQf"}