@cat-factory/worker 0.81.2 → 0.81.5
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/dist/infrastructure/repositories/D1NotificationRepository.d.ts +1 -0
- package/dist/infrastructure/repositories/D1NotificationRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1NotificationRepository.js +12 -0
- package/dist/infrastructure/repositories/D1NotificationRepository.js.map +1 -1
- package/dist/infrastructure/repositories/D1WorkspaceMountRepository.d.ts +1 -0
- package/dist/infrastructure/repositories/D1WorkspaceMountRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1WorkspaceMountRepository.js +16 -0
- package/dist/infrastructure/repositories/D1WorkspaceMountRepository.js.map +1 -1
- package/dist/infrastructure/repositories/D1WorkspaceRepository.d.ts +2 -2
- package/dist/infrastructure/repositories/D1WorkspaceRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1WorkspaceRepository.js +37 -2
- package/dist/infrastructure/repositories/D1WorkspaceRepository.js.map +1 -1
- package/migrations/0047_block_archived.sql +6 -0
- package/package.json +17 -17
|
@@ -16,6 +16,7 @@ export declare class D1NotificationRepository implements NotificationRepository
|
|
|
16
16
|
listOpen(workspaceId: string): Promise<Notification[]>;
|
|
17
17
|
findOpenByBlock(workspaceId: string, blockId: string, type: NotificationType): Promise<Notification | null>;
|
|
18
18
|
upsert(workspaceId: string, notification: Notification): Promise<void>;
|
|
19
|
+
claimForAction(workspaceId: string, id: string, resolvedAt: number): Promise<Notification | null>;
|
|
19
20
|
escalateStaleOpen(workspaceId: string, cutoff: number): Promise<Notification[]>;
|
|
20
21
|
upsertOpenForBlock(workspaceId: string, notification: Notification): Promise<Notification>;
|
|
21
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1NotificationRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1NotificationRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAuB,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAOjG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AA4C3D;;;;;GAKG;AACH,qBAAa,wBAAyB,YAAW,sBAAsB;IACrE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAMvE;IAEK,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAU3D;IAEK,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAU9B;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC3E;IAEK,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAcpF;IAEK,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAuC/F;CACF"}
|
|
1
|
+
{"version":3,"file":"D1NotificationRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1NotificationRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAuB,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAOjG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AA4C3D;;;;;GAKG;AACH,qBAAa,wBAAyB,YAAW,sBAAsB;IACrE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAMvE;IAEK,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAU3D;IAEK,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAU9B;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC3E;IAEK,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAa9B;IAEK,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAcpF;IAEK,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAuC/F;CACF"}
|
|
@@ -83,6 +83,18 @@ export class D1NotificationRepository {
|
|
|
83
83
|
.bind(workspaceId, notification.id, notification.type, notification.status, notification.severity ?? 'normal', notification.blockId, notification.executionId, notification.title, notification.body, notification.payload ? JSON.stringify(notification.payload) : null, notification.createdAt, notification.resolvedAt)
|
|
84
84
|
.run();
|
|
85
85
|
}
|
|
86
|
+
async claimForAction(workspaceId, id, resolvedAt) {
|
|
87
|
+
// Atomic act-claim: flip `open` → `acted` in one conditional UPDATE and return the row.
|
|
88
|
+
// Only the writer that matched `status = 'open'` gets a row back — a concurrent act finds
|
|
89
|
+
// the card already non-open and is handed null, so the side effect fires exactly once.
|
|
90
|
+
const row = await this.db
|
|
91
|
+
.prepare(`UPDATE notifications SET status = 'acted', resolved_at = ?
|
|
92
|
+
WHERE workspace_id = ? AND id = ? AND status = 'open'
|
|
93
|
+
RETURNING *`)
|
|
94
|
+
.bind(resolvedAt, workspaceId, id)
|
|
95
|
+
.first();
|
|
96
|
+
return row ? rowToNotification(row) : null;
|
|
97
|
+
}
|
|
86
98
|
async escalateStaleOpen(workspaceId, cutoff) {
|
|
87
99
|
// One statement flips every overdue open card and returns the rows for re-delivery —
|
|
88
100
|
// the sweep never loops per-row upserts.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1NotificationRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1NotificationRepository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"D1NotificationRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1NotificationRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export declare class D1WorkspaceMountRepository implements WorkspaceMountReposit
|
|
|
8
8
|
});
|
|
9
9
|
listByWorkspace(workspaceId: string): Promise<WorkspaceMount[]>;
|
|
10
10
|
listByService(serviceId: string): Promise<WorkspaceMount[]>;
|
|
11
|
+
listByServiceIds(serviceIds: string[]): Promise<WorkspaceMount[]>;
|
|
11
12
|
listWorkspaceIdsMountingBlock(originWorkspaceId: string, blockId: string): Promise<string[]>;
|
|
12
13
|
countByServiceIds(serviceIds: string[]): Promise<Record<string, number>>;
|
|
13
14
|
get(workspaceId: string, serviceId: string): Promise<WorkspaceMount | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1WorkspaceMountRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceMountRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAuB3D,4FAA4F;AAC5F,qBAAa,0BAA2B,YAAW,wBAAwB;IACzE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAMpE;IAEK,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAMhE;IAEK,6BAA6B,CACjC,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;IAEK,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgB7E;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAMhF;IAEK,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBjD;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB9F;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlE;IAEK,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAU1D;CACF"}
|
|
1
|
+
{"version":3,"file":"D1WorkspaceMountRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceMountRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAuB3D,4FAA4F;AAC5F,qBAAa,0BAA2B,YAAW,wBAAwB;IACzE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAMpE;IAEK,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAMhE;IAEK,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAetE;IAEK,6BAA6B,CACjC,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;IAEK,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgB7E;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAMhF;IAEK,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBjD;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB9F;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlE;IAEK,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAU1D;CACF"}
|
|
@@ -28,6 +28,22 @@ export class D1WorkspaceMountRepository {
|
|
|
28
28
|
.all();
|
|
29
29
|
return (results ?? []).map(rowToMount);
|
|
30
30
|
}
|
|
31
|
+
async listByServiceIds(serviceIds) {
|
|
32
|
+
if (serviceIds.length === 0)
|
|
33
|
+
return [];
|
|
34
|
+
const mounts = [];
|
|
35
|
+
// Chunk the IN list to stay under D1's bound-parameter limit.
|
|
36
|
+
for (const chunk of chunkForIn(serviceIds)) {
|
|
37
|
+
const placeholders = chunk.map(() => '?').join(', ');
|
|
38
|
+
const { results } = await this.db
|
|
39
|
+
.prepare(`SELECT * FROM workspace_services WHERE service_id IN (${placeholders}) ORDER BY created_at`)
|
|
40
|
+
.bind(...chunk)
|
|
41
|
+
.all();
|
|
42
|
+
for (const row of results ?? [])
|
|
43
|
+
mounts.push(rowToMount(row));
|
|
44
|
+
}
|
|
45
|
+
return mounts;
|
|
46
|
+
}
|
|
31
47
|
async listWorkspaceIdsMountingBlock(originWorkspaceId, blockId) {
|
|
32
48
|
// One join: the service owning the block → the workspaces that mount it. A block with no
|
|
33
49
|
// service makes the subquery NULL, which matches no rows (`service_id = NULL`) → empty.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1WorkspaceMountRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceMountRepository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"D1WorkspaceMountRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceMountRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WorkspaceRepository, WorkspaceVisibility } from '@cat-factory/kernel';
|
|
1
|
+
import type { ServiceRehome, WorkspaceRepository, WorkspaceVisibility } from '@cat-factory/kernel';
|
|
2
2
|
import type { Workspace } from '@cat-factory/contracts';
|
|
3
3
|
import type { D1Database } from '@cloudflare/workers-types';
|
|
4
4
|
export declare class D1WorkspaceRepository implements WorkspaceRepository {
|
|
@@ -13,6 +13,6 @@ export declare class D1WorkspaceRepository implements WorkspaceRepository {
|
|
|
13
13
|
create(workspace: Workspace, ownerUserId: string | null, accountId: string | null): Promise<void>;
|
|
14
14
|
rename(id: string, name: string): Promise<void>;
|
|
15
15
|
setDescription(id: string, description: string | null): Promise<void>;
|
|
16
|
-
delete(id: string): Promise<void>;
|
|
16
|
+
delete(id: string, rehome?: ServiceRehome[]): Promise<void>;
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=D1WorkspaceRepository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1WorkspaceRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"D1WorkspaceRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAClG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAG3D,qBAAa,qBAAsB,YAAW,mBAAmB;IAC/D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAsBlE;IAEK,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAM/C;IAEK,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAO5D;IAEK,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAO9D;IAEK,MAAM,CACV,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC,IAAI,CAAC,CAcf;IAEK,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpD;IAEK,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAK1E;IAEK,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,aAAa,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDpE;CACF"}
|
|
@@ -63,9 +63,44 @@ export class D1WorkspaceRepository {
|
|
|
63
63
|
.bind(description, id)
|
|
64
64
|
.run();
|
|
65
65
|
}
|
|
66
|
-
async delete(id) {
|
|
67
|
-
// Cascade explicitly: D1 does not enforce foreign keys by default.
|
|
66
|
+
async delete(id, rehome = []) {
|
|
67
|
+
// Cascade explicitly: D1 does not enforce foreign keys by default. The service/mount rows
|
|
68
|
+
// MUST be reclaimed BEFORE the blocks they reference are dropped (their subqueries read
|
|
69
|
+
// `blocks`). A deleted board that leaves its account-owned services behind is not a cosmetic
|
|
70
|
+
// leak: `services` is account-scoped and looked up by (installation_id, repo_github_id), so a
|
|
71
|
+
// dangling service (its frame block gone) keeps the SAME repo from being re-added on any other
|
|
72
|
+
// board in the account — the exact "already linked / already exists" failure a board delete
|
|
73
|
+
// used to cause. Mirror any change in the Node facade's DrizzleWorkspaceRepository.delete.
|
|
74
|
+
//
|
|
75
|
+
// Re-home FIRST (before the cascade reads `blocks`): move each shared service's blocks + run
|
|
76
|
+
// history to a surviving mounting board by re-stamping their `workspace_id`. Blocks are found
|
|
77
|
+
// by `service_id` (not workspace), so after the move the service's frame no longer lives in
|
|
78
|
+
// THIS workspace — the cascade below then skips it (its frame is not in this board's blocks),
|
|
79
|
+
// leaving the service, its subtree and every OTHER board's mount intact.
|
|
80
|
+
const rehomeStatements = rehome.flatMap(({ serviceId, toWorkspaceId }) => [
|
|
81
|
+
this.db
|
|
82
|
+
.prepare(`UPDATE agent_runs SET workspace_id = ? WHERE block_id IN
|
|
83
|
+
(SELECT id FROM blocks WHERE service_id = ?)`)
|
|
84
|
+
.bind(toWorkspaceId, serviceId),
|
|
85
|
+
this.db
|
|
86
|
+
.prepare('UPDATE blocks SET workspace_id = ? WHERE service_id = ?')
|
|
87
|
+
.bind(toWorkspaceId, serviceId),
|
|
88
|
+
]);
|
|
68
89
|
await this.db.batch([
|
|
90
|
+
...rehomeStatements,
|
|
91
|
+
// Every board's mount of a service this workspace HOMES (its frame block lives here).
|
|
92
|
+
this.db
|
|
93
|
+
.prepare(`DELETE FROM workspace_services WHERE service_id IN
|
|
94
|
+
(SELECT id FROM services WHERE frame_block_id IN
|
|
95
|
+
(SELECT id FROM blocks WHERE workspace_id = ?))`)
|
|
96
|
+
.bind(id),
|
|
97
|
+
// This workspace's OWN mounts of services homed elsewhere (shared services it mounted).
|
|
98
|
+
this.db.prepare('DELETE FROM workspace_services WHERE workspace_id = ?').bind(id),
|
|
99
|
+
// The account-owned services this workspace homes — the repo↔frame link that must be freed.
|
|
100
|
+
this.db
|
|
101
|
+
.prepare('DELETE FROM services WHERE frame_block_id IN (SELECT id FROM blocks WHERE workspace_id = ?)')
|
|
102
|
+
.bind(id),
|
|
103
|
+
this.db.prepare('DELETE FROM environments WHERE workspace_id = ?').bind(id),
|
|
69
104
|
// agent_runs holds both execution and bootstrap runs (migration 0019).
|
|
70
105
|
this.db.prepare('DELETE FROM agent_runs WHERE workspace_id = ?').bind(id),
|
|
71
106
|
this.db.prepare('DELETE FROM blocks WHERE workspace_id = ?').bind(id),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1WorkspaceRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceRepository.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"D1WorkspaceRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
-- Archive marker for a service frame. An archived service (`archived = 1`) is hidden from the
|
|
2
|
+
-- board projection along with its whole subtree, but every row is preserved so it can be
|
|
3
|
+
-- restored at any time with no expiry. This is the non-destructive alternative to deleting a
|
|
4
|
+
-- service that still has unfinished tasks. Mirrored on Node by the `archived` column on the
|
|
5
|
+
-- Drizzle `blocks` table.
|
|
6
|
+
ALTER TABLE blocks ADD COLUMN archived INTEGER;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/worker",
|
|
3
|
-
"version": "0.81.
|
|
3
|
+
"version": "0.81.5",
|
|
4
4
|
"description": "Reusable Cloudflare Worker library (Hono + D1) exposing the Agent Architecture Board core: the `createApp()` Hono factory, the default fetch/scheduled/queue handler, and the Durable Object + Workflow classes. Deployments (see deploy/backend) supply the wrangler.toml + config and re-export these.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -42,21 +42,21 @@
|
|
|
42
42
|
"pino": "^10.3.1",
|
|
43
43
|
"valibot": "^1.4.2",
|
|
44
44
|
"workers-ai-provider": "^3.3.1",
|
|
45
|
-
"@cat-factory/agents": "0.52.
|
|
46
|
-
"@cat-factory/caching": "0.6.
|
|
47
|
-
"@cat-factory/consensus": "0.10.
|
|
48
|
-
"@cat-factory/contracts": "0.123.
|
|
49
|
-
"@cat-factory/eks": "0.1.
|
|
50
|
-
"@cat-factory/gates": "0.5.
|
|
51
|
-
"@cat-factory/gitlab": "0.7.
|
|
52
|
-
"@cat-factory/integrations": "0.80.
|
|
53
|
-
"@cat-factory/kernel": "0.117.
|
|
54
|
-
"@cat-factory/observability-langfuse": "0.7.
|
|
55
|
-
"@cat-factory/orchestration": "0.102.
|
|
56
|
-
"@cat-factory/prompt-fragments": "0.13.
|
|
57
|
-
"@cat-factory/provider-cloudflare": "0.7.
|
|
58
|
-
"@cat-factory/server": "0.107.
|
|
59
|
-
"@cat-factory/spend": "0.12.
|
|
45
|
+
"@cat-factory/agents": "0.52.6",
|
|
46
|
+
"@cat-factory/caching": "0.6.25",
|
|
47
|
+
"@cat-factory/consensus": "0.10.25",
|
|
48
|
+
"@cat-factory/contracts": "0.123.1",
|
|
49
|
+
"@cat-factory/eks": "0.1.48",
|
|
50
|
+
"@cat-factory/gates": "0.5.10",
|
|
51
|
+
"@cat-factory/gitlab": "0.7.48",
|
|
52
|
+
"@cat-factory/integrations": "0.80.3",
|
|
53
|
+
"@cat-factory/kernel": "0.117.3",
|
|
54
|
+
"@cat-factory/observability-langfuse": "0.7.180",
|
|
55
|
+
"@cat-factory/orchestration": "0.102.8",
|
|
56
|
+
"@cat-factory/prompt-fragments": "0.13.8",
|
|
57
|
+
"@cat-factory/provider-cloudflare": "0.7.196",
|
|
58
|
+
"@cat-factory/server": "0.107.4",
|
|
59
|
+
"@cat-factory/spend": "0.12.6"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@cloudflare/vitest-pool-workers": "^0.18.0",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"typescript": "7.0.1-rc",
|
|
65
65
|
"vitest": "^4.1.9",
|
|
66
66
|
"wrangler": "^4.107.0",
|
|
67
|
-
"@cat-factory/conformance": "0.10.
|
|
67
|
+
"@cat-factory/conformance": "0.10.83"
|
|
68
68
|
},
|
|
69
69
|
"scripts": {
|
|
70
70
|
"build": "tsc -b tsconfig.build.json",
|