@cat-factory/worker 0.190.2 → 0.191.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.
- package/dist/infrastructure/repositories/D1BlockRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1BlockRepository.js +18 -6
- package/dist/infrastructure/repositories/D1BlockRepository.js.map +1 -1
- package/dist/infrastructure/repositories/D1WorkspaceSettingsRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1WorkspaceSettingsRepository.js +8 -3
- package/dist/infrastructure/repositories/D1WorkspaceSettingsRepository.js.map +1 -1
- package/migrations/0084_task_swimlanes.sql +27 -0
- package/package.json +18 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1BlockRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1BlockRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"D1BlockRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1BlockRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAY3D,qBAAa,iBAAkB,YAAW,eAAe;IACvD,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,KAAK,EAAE,CAAC,CAO3D;IAEK,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAMvD;IAEK,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAa3D;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAMhE;IAEK,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAMpF;IAEK,QAAQ,CACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI,CAAC,CAWjF;IAEK,SAAS,CACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC,CAmBjF;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAYxF;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB9E;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAS5F;IAEK,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,IAAI,CAAC,CAQf;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAOlE;IAEK,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ9D;IAEK,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9D,OAAO,CAAC,KAAK,EAAE,CAAC,CA4BlB;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { tryDecodeRows } from '@cat-factory/server';
|
|
2
2
|
import { chunkForIn } from './chunk';
|
|
3
|
-
import { blockInsertValues, blockPatchToColumns, rowToBlock } from './mappers';
|
|
3
|
+
import { blockCompletionStamp, blockInsertValues, blockPatchToColumns, rowToBlock, } from './mappers';
|
|
4
4
|
const blockContext = (row) => ({ table: 'blocks', id: row.id });
|
|
5
5
|
export class D1BlockRepository {
|
|
6
6
|
db;
|
|
@@ -100,13 +100,25 @@ export class D1BlockRepository {
|
|
|
100
100
|
}
|
|
101
101
|
async update(workspaceId, id, patch) {
|
|
102
102
|
const set = blockPatchToColumns(patch);
|
|
103
|
-
const
|
|
104
|
-
|
|
103
|
+
const assignments = Object.keys(set).map((c) => `${c} = ?`);
|
|
104
|
+
const binds = Object.values(set);
|
|
105
|
+
// `completed_at` is derived here rather than at the call sites that mark a task done
|
|
106
|
+
// (see `blockCompletionStamp`). `COALESCE` is what makes the stamp first-write-wins
|
|
107
|
+
// against a replaying durable driver: SQLite evaluates the right-hand side against the
|
|
108
|
+
// row's PRE-update value, so a second `done` write keeps the original date.
|
|
109
|
+
const stamp = blockCompletionStamp(patch, Date.now());
|
|
110
|
+
if (stamp.kind === 'stampIfUnset') {
|
|
111
|
+
assignments.push(`completed_at = COALESCE(completed_at, ?)`);
|
|
112
|
+
binds.push(stamp.at);
|
|
113
|
+
}
|
|
114
|
+
else if (stamp.kind === 'clear') {
|
|
115
|
+
assignments.push(`completed_at = NULL`);
|
|
116
|
+
}
|
|
117
|
+
if (assignments.length === 0)
|
|
105
118
|
return;
|
|
106
|
-
const assignments = columns.map((c) => `${c} = ?`).join(', ');
|
|
107
119
|
await this.db
|
|
108
|
-
.prepare(`UPDATE blocks SET ${assignments} WHERE workspace_id = ? AND id = ?`)
|
|
109
|
-
.bind(...
|
|
120
|
+
.prepare(`UPDATE blocks SET ${assignments.join(', ')} WHERE workspace_id = ? AND id = ?`)
|
|
121
|
+
.bind(...binds, workspaceId, id)
|
|
110
122
|
.run();
|
|
111
123
|
}
|
|
112
124
|
async setService(workspaceId, ids, serviceId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1BlockRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1BlockRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"D1BlockRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1BlockRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1WorkspaceSettingsRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceSettingsRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,KAAK,EAOV,iBAAiB,EAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"D1WorkspaceSettingsRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceSettingsRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,KAAK,EAOV,iBAAiB,EAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAmE3D;;;;GAIG;AACH,qBAAa,6BAA8B,YAAW,2BAA2B;IAC/E,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,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAMhE;IAEK,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAaxF;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgE5E;CACF"}
|
|
@@ -18,6 +18,8 @@ function rowToSettings(row) {
|
|
|
18
18
|
storeAgentContext: row.store_agent_context === 1,
|
|
19
19
|
publishPrVerificationReport: row.publish_pr_verification_report === 1,
|
|
20
20
|
artifactRetentionDays: row.artifact_retention_days,
|
|
21
|
+
doneLaneMaxItems: row.done_lane_max_items,
|
|
22
|
+
doneLaneRetentionDays: row.done_lane_retention_days,
|
|
21
23
|
kaizenEnabled: row.kaizen_enabled === 1,
|
|
22
24
|
delegateAgentsToRunnerPool: row.delegate_agents_to_runner_pool === 1,
|
|
23
25
|
inputGateMode: row.input_gate_mode,
|
|
@@ -73,13 +75,14 @@ export class D1WorkspaceSettingsRepository {
|
|
|
73
75
|
.prepare(`INSERT INTO workspace_settings
|
|
74
76
|
(workspace_id, waiting_escalation_minutes, task_limit_mode, task_limit_shared,
|
|
75
77
|
task_limit_per_type, store_agent_context, publish_pr_verification_report,
|
|
76
|
-
artifact_retention_days,
|
|
78
|
+
artifact_retention_days, done_lane_max_items, done_lane_retention_days,
|
|
79
|
+
kaizen_enabled,
|
|
77
80
|
delegate_agents_to_runner_pool, input_gate_mode, review_friction_mode,
|
|
78
81
|
review_friction_warn_count,
|
|
79
82
|
review_friction_block_count, review_friction_block_stuck_minutes, spend_currency,
|
|
80
83
|
spend_monthly_limit, default_provision_type, default_provision_manifest_id,
|
|
81
84
|
allow_initiator_pat, metadata)
|
|
82
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
85
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
83
86
|
ON CONFLICT (workspace_id) DO UPDATE SET
|
|
84
87
|
waiting_escalation_minutes = excluded.waiting_escalation_minutes,
|
|
85
88
|
task_limit_mode = excluded.task_limit_mode,
|
|
@@ -88,6 +91,8 @@ export class D1WorkspaceSettingsRepository {
|
|
|
88
91
|
store_agent_context = excluded.store_agent_context,
|
|
89
92
|
publish_pr_verification_report = excluded.publish_pr_verification_report,
|
|
90
93
|
artifact_retention_days = excluded.artifact_retention_days,
|
|
94
|
+
done_lane_max_items = excluded.done_lane_max_items,
|
|
95
|
+
done_lane_retention_days = excluded.done_lane_retention_days,
|
|
91
96
|
kaizen_enabled = excluded.kaizen_enabled,
|
|
92
97
|
delegate_agents_to_runner_pool = excluded.delegate_agents_to_runner_pool,
|
|
93
98
|
input_gate_mode = excluded.input_gate_mode,
|
|
@@ -101,7 +106,7 @@ export class D1WorkspaceSettingsRepository {
|
|
|
101
106
|
default_provision_manifest_id = excluded.default_provision_manifest_id,
|
|
102
107
|
allow_initiator_pat = excluded.allow_initiator_pat,
|
|
103
108
|
metadata = excluded.metadata`)
|
|
104
|
-
.bind(workspaceId, settings.waitingEscalationMinutes, settings.taskLimitMode, settings.taskLimitShared, settings.taskLimitPerType ? JSON.stringify(settings.taskLimitPerType) : null, settings.storeAgentContext ? 1 : 0, settings.publishPrVerificationReport ? 1 : 0, settings.artifactRetentionDays, settings.kaizenEnabled ? 1 : 0, settings.delegateAgentsToRunnerPool ? 1 : 0, settings.inputGateMode, settings.reviewFrictionMode, settings.reviewFrictionWarnCount, settings.reviewFrictionBlockCount, settings.reviewFrictionBlockStuckMinutes, settings.spendCurrency, settings.spendMonthlyLimit, settings.defaultProvisionType, settings.defaultProvisionManifestId, settings.allowInitiatorPat ? 1 : 0, JSON.stringify(settings.metadata))
|
|
109
|
+
.bind(workspaceId, settings.waitingEscalationMinutes, settings.taskLimitMode, settings.taskLimitShared, settings.taskLimitPerType ? JSON.stringify(settings.taskLimitPerType) : null, settings.storeAgentContext ? 1 : 0, settings.publishPrVerificationReport ? 1 : 0, settings.artifactRetentionDays, settings.doneLaneMaxItems, settings.doneLaneRetentionDays, settings.kaizenEnabled ? 1 : 0, settings.delegateAgentsToRunnerPool ? 1 : 0, settings.inputGateMode, settings.reviewFrictionMode, settings.reviewFrictionWarnCount, settings.reviewFrictionBlockCount, settings.reviewFrictionBlockStuckMinutes, settings.spendCurrency, settings.spendMonthlyLimit, settings.defaultProvisionType, settings.defaultProvisionManifestId, settings.allowInitiatorPat ? 1 : 0, JSON.stringify(settings.metadata))
|
|
105
110
|
.run();
|
|
106
111
|
}
|
|
107
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1WorkspaceSettingsRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceSettingsRepository.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"D1WorkspaceSettingsRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1WorkspaceSettingsRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
-- Task swimlanes: the board lays a service frame's tasks out in status lanes rather than at
|
|
2
|
+
-- hand-placed coordinates, which needs two things the schema could not answer.
|
|
3
|
+
--
|
|
4
|
+
-- 1) `blocks.completed_at` — the "Done" lane hides a task once it is older than the
|
|
5
|
+
-- workspace's retention window, and `blocks` carried NO timestamp of any kind, so there
|
|
6
|
+
-- was nothing to age a completed task by. Nullable and NOT backfilled: nothing records
|
|
7
|
+
-- when the tasks already merged reached `done`, and inventing a date would be exactly the
|
|
8
|
+
-- guess the lane's age filter must not make. Absent therefore means "no recorded
|
|
9
|
+
-- completion date" and the board EXEMPTS such a task from the age cap (the count cap
|
|
10
|
+
-- still bounds it), rather than treating it as ancient and hiding history on the strength
|
|
11
|
+
-- of a timestamp nobody wrote.
|
|
12
|
+
--
|
|
13
|
+
-- Stamped by the block repository at its single `update` funnel, not by the several
|
|
14
|
+
-- services that mark a task done, and first-write-wins via COALESCE so a replaying
|
|
15
|
+
-- durable driver cannot push the date forward. Cleared when a block leaves `done`, so a
|
|
16
|
+
-- reset-and-rerun is dated by the attempt that actually landed.
|
|
17
|
+
--
|
|
18
|
+
-- 2) The two Done-lane caps on `workspace_settings`. Both are per-workspace because what a
|
|
19
|
+
-- board shows is a shared decision, unlike the sort/group preference, which is per user
|
|
20
|
+
-- and lives in the browser. Defaults match DEFAULT_WORKSPACE_SETTINGS (20 cards / 14
|
|
21
|
+
-- days) so every existing row is valid and behaves identically to a fresh one.
|
|
22
|
+
ALTER TABLE blocks ADD COLUMN completed_at INTEGER;
|
|
23
|
+
|
|
24
|
+
ALTER TABLE workspace_settings ADD COLUMN done_lane_max_items INTEGER NOT NULL DEFAULT 20;
|
|
25
|
+
-- Nullable on purpose: NULL means "no age cap", which is a setting an operator can choose,
|
|
26
|
+
-- distinct from the default 14 days.
|
|
27
|
+
ALTER TABLE workspace_settings ADD COLUMN done_lane_retention_days INTEGER DEFAULT 14;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/worker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.191.0",
|
|
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",
|
|
@@ -43,22 +43,22 @@
|
|
|
43
43
|
"pino": "^10.3.1",
|
|
44
44
|
"valibot": "^1.4.2",
|
|
45
45
|
"workers-ai-provider": "^4.0.0",
|
|
46
|
-
"@cat-factory/
|
|
47
|
-
"@cat-factory/
|
|
48
|
-
"@cat-factory/
|
|
49
|
-
"@cat-factory/
|
|
50
|
-
"@cat-factory/
|
|
51
|
-
"@cat-factory/
|
|
52
|
-
"@cat-factory/
|
|
53
|
-
"@cat-factory/integrations": "0.163.
|
|
54
|
-
"@cat-factory/kernel": "0.
|
|
55
|
-
"@cat-factory/observability-langfuse": "0.10.
|
|
56
|
-
"@cat-factory/
|
|
57
|
-
"@cat-factory/
|
|
58
|
-
"@cat-factory/
|
|
59
|
-
"@cat-factory/
|
|
60
|
-
"@cat-factory/
|
|
61
|
-
"@cat-factory/
|
|
46
|
+
"@cat-factory/agents": "0.132.1",
|
|
47
|
+
"@cat-factory/caching": "0.20.24",
|
|
48
|
+
"@cat-factory/consensus": "0.16.24",
|
|
49
|
+
"@cat-factory/contracts": "0.315.0",
|
|
50
|
+
"@cat-factory/eks": "0.1.328",
|
|
51
|
+
"@cat-factory/gates": "0.10.55",
|
|
52
|
+
"@cat-factory/gitlab": "0.20.25",
|
|
53
|
+
"@cat-factory/integrations": "0.163.1",
|
|
54
|
+
"@cat-factory/kernel": "0.303.0",
|
|
55
|
+
"@cat-factory/observability-langfuse": "0.10.99",
|
|
56
|
+
"@cat-factory/observability-otel": "0.21.3",
|
|
57
|
+
"@cat-factory/orchestration": "0.274.0",
|
|
58
|
+
"@cat-factory/prompt-fragments": "1.0.79",
|
|
59
|
+
"@cat-factory/provider-cloudflare": "0.7.477",
|
|
60
|
+
"@cat-factory/server": "0.289.0",
|
|
61
|
+
"@cat-factory/spend": "0.15.97"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@cloudflare/vitest-pool-workers": "^0.21.2",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"typescript": "7.0.2",
|
|
67
67
|
"vitest": "^4.1.10",
|
|
68
68
|
"wrangler": "^4.122.0",
|
|
69
|
-
"@cat-factory/conformance": "0.45.
|
|
69
|
+
"@cat-factory/conformance": "0.45.5"
|
|
70
70
|
},
|
|
71
71
|
"scripts": {
|
|
72
72
|
"build": "tsc -b tsconfig.build.json",
|