@overdeck/desktop 0.45.6 → 0.45.7

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.
@@ -0,0 +1,483 @@
1
+ CREATE TABLE `agents` (
2
+ `id` text PRIMARY KEY NOT NULL,
3
+ `issue_id` text NOT NULL,
4
+ `role` text NOT NULL,
5
+ `status` text NOT NULL,
6
+ `workspace` text NOT NULL,
7
+ `session_id` text,
8
+ `harness` text NOT NULL,
9
+ `model` text NOT NULL,
10
+ `host_override` text,
11
+ `delivery_method` text,
12
+ `started_at` integer,
13
+ `last_resume_at` integer,
14
+ `stopped_by_user` integer,
15
+ `stopped_by_pause` integer,
16
+ `kickoff_delivered` integer,
17
+ `paused` integer,
18
+ `paused_reason` text,
19
+ `yielded_by_scheduler` integer,
20
+ `yielded_at` integer,
21
+ `last_yield_resume_at` integer,
22
+ `troubled` integer,
23
+ `channels_enabled` integer,
24
+ `consecutive_failures` integer DEFAULT 0,
25
+ `first_failure_in_run_at` integer,
26
+ `last_failure_next_retry_at` integer,
27
+ `stopped_at` integer,
28
+ `paused_at` integer,
29
+ `troubled_at` integer,
30
+ `last_activity` integer,
31
+ `last_failure_reason` text,
32
+ `phase` text,
33
+ `role_run_head` text,
34
+ `flywheel_run_id` text,
35
+ `cost_so_far` real,
36
+ `review_sub_role` text,
37
+ `review_run_id` text,
38
+ `review_synthesis_agent_id` text,
39
+ `review_output_path` text,
40
+ `review_deadline_at` integer,
41
+ `review_monitor_signaled` text,
42
+ `review_retry_attempt` integer,
43
+ `updated_at` integer NOT NULL,
44
+ FOREIGN KEY (`issue_id`) REFERENCES `issues`(`id`) ON UPDATE no action ON DELETE no action
45
+ );
46
+ --> statement-breakpoint
47
+ CREATE INDEX `agents_issue_idx` ON `agents` (`issue_id`);--> statement-breakpoint
48
+ CREATE TABLE `app_settings` (
49
+ `key` text PRIMARY KEY NOT NULL,
50
+ `value` text,
51
+ `updated_at` integer
52
+ );
53
+ --> statement-breakpoint
54
+ CREATE TABLE `conversation_files` (
55
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
56
+ `conversation_id` text NOT NULL,
57
+ `harness` text NOT NULL,
58
+ `locator` text NOT NULL,
59
+ `created_at` integer NOT NULL,
60
+ FOREIGN KEY (`conversation_id`) REFERENCES `conversations`(`id`) ON UPDATE no action ON DELETE no action
61
+ );
62
+ --> statement-breakpoint
63
+ CREATE INDEX `conv_files_conv_idx` ON `conversation_files` (`conversation_id`);--> statement-breakpoint
64
+ CREATE TABLE `conversations` (
65
+ `id` text PRIMARY KEY NOT NULL,
66
+ `name` text NOT NULL,
67
+ `cwd` text NOT NULL,
68
+ `issue_id` text,
69
+ `harness` text,
70
+ `model` text,
71
+ `effort` text,
72
+ `title` text,
73
+ `title_source` text,
74
+ `created_at` integer NOT NULL,
75
+ `archived_at` integer,
76
+ `handoff_doc_path` text,
77
+ `handoff_target_conv_id` text,
78
+ `cleared_to_conv_id` text,
79
+ `tmux_session` text,
80
+ `status` text NOT NULL DEFAULT 'active',
81
+ `ended_at` integer,
82
+ `last_attached_at` integer,
83
+ `session_file` text,
84
+ `total_cost` real DEFAULT 0,
85
+ `total_tokens` integer DEFAULT 0,
86
+ `fork_status` text,
87
+ `fork_error` text,
88
+ `fork_retry_count` integer NOT NULL DEFAULT 0,
89
+ `fork_request` text,
90
+ `fork_fallback_reason` text,
91
+ `delivery_method` text,
92
+ `spawn_error` text,
93
+ FOREIGN KEY (`handoff_target_conv_id`) REFERENCES `conversations`(`id`) ON UPDATE no action ON DELETE no action,
94
+ FOREIGN KEY (`cleared_to_conv_id`) REFERENCES `conversations`(`id`) ON UPDATE no action ON DELETE no action
95
+ );
96
+ --> statement-breakpoint
97
+ CREATE UNIQUE INDEX `conversations_name_unique` ON `conversations` (`name`);--> statement-breakpoint
98
+ CREATE INDEX `conversations_issue_idx` ON `conversations` (`issue_id`);--> statement-breakpoint
99
+ CREATE TABLE `cost_events` (
100
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
101
+ `ts` integer NOT NULL,
102
+ `issue_id` text,
103
+ `agent_id` text,
104
+ `session_id` text,
105
+ `session_type` text,
106
+ `provider` text,
107
+ `model` text,
108
+ `input` integer,
109
+ `output` integer,
110
+ `cache_read` integer,
111
+ `cache_write` integer,
112
+ `cost` real,
113
+ `request_id` text,
114
+ `source_file` text
115
+ );
116
+ --> statement-breakpoint
117
+ CREATE INDEX `cost_issue_idx` ON `cost_events` (`issue_id`);--> statement-breakpoint
118
+ CREATE INDEX `cost_ts_idx` ON `cost_events` (`ts`);--> statement-breakpoint
119
+ CREATE INDEX `cost_session_id_idx` ON `cost_events` (`session_id`);--> statement-breakpoint
120
+ CREATE UNIQUE INDEX `cost_request_id_idx` ON `cost_events` (`request_id`) WHERE request_id IS NOT NULL;--> statement-breakpoint
121
+ CREATE TABLE `events` (
122
+ `sequence` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
123
+ `type` text NOT NULL,
124
+ `timestamp` integer NOT NULL,
125
+ `payload` text
126
+ );
127
+ --> statement-breakpoint
128
+ CREATE INDEX `events_type_ts_idx` ON `events` (`type`,`timestamp`);--> statement-breakpoint
129
+ CREATE TABLE `favorites` (
130
+ `type` text NOT NULL,
131
+ `item_id` text NOT NULL,
132
+ `created_at` integer NOT NULL,
133
+ PRIMARY KEY(`type`, `item_id`)
134
+ );
135
+ --> statement-breakpoint
136
+ CREATE TABLE `health_events` (
137
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
138
+ `agent_id` text,
139
+ `timestamp` integer NOT NULL,
140
+ `state` text NOT NULL,
141
+ `source` text,
142
+ `metadata` text
143
+ );
144
+ --> statement-breakpoint
145
+ CREATE INDEX `health_agent_ts_idx` ON `health_events` (`agent_id`,`timestamp`);--> statement-breakpoint
146
+ CREATE TABLE `issue_policy` (
147
+ `issue_id` text PRIMARY KEY NOT NULL,
148
+ `deacon_ignored` integer,
149
+ `deacon_ignored_reason` text,
150
+ `auto_merge` integer,
151
+ `updated_at` integer,
152
+ FOREIGN KEY (`issue_id`) REFERENCES `issues`(`id`) ON UPDATE no action ON DELETE no action
153
+ );
154
+ --> statement-breakpoint
155
+ CREATE TABLE `issues` (
156
+ `id` text PRIMARY KEY NOT NULL,
157
+ `stage` text NOT NULL,
158
+ `review_outcome` text,
159
+ `test_outcome` text,
160
+ `verification_outcome` text,
161
+ `verdict_commit` text,
162
+ `blockers` text,
163
+ `plan_ref` text,
164
+ `pr_url` text,
165
+ `pr_number` integer,
166
+ `pr_head_sha` text,
167
+ `updated_at` integer NOT NULL
168
+ );
169
+ --> statement-breakpoint
170
+ CREATE INDEX `issues_stage_idx` ON `issues` (`stage`);--> statement-breakpoint
171
+ CREATE TABLE `merge_queue` (
172
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
173
+ `project_key` text NOT NULL,
174
+ `issue_id` text NOT NULL,
175
+ `position` integer NOT NULL,
176
+ `status` text DEFAULT 'queued' NOT NULL,
177
+ `queued_at` integer NOT NULL,
178
+ `started_at` integer,
179
+ FOREIGN KEY (`issue_id`) REFERENCES `issues`(`id`) ON UPDATE no action ON DELETE no action
180
+ );
181
+ --> statement-breakpoint
182
+ CREATE UNIQUE INDEX `merge_queue_issue_id_unique` ON `merge_queue` (`issue_id`);--> statement-breakpoint
183
+ CREATE INDEX `merge_queue_project_idx` ON `merge_queue` (`project_key`,`position`);--> statement-breakpoint
184
+ CREATE TABLE `merge_set_repos` (
185
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
186
+ `issue_id` text NOT NULL,
187
+ `repo_key` text NOT NULL,
188
+ `repo_path` text NOT NULL,
189
+ `forge` text NOT NULL,
190
+ `source_branch` text NOT NULL,
191
+ `target_branch` text NOT NULL,
192
+ `artifact_url` text,
193
+ `artifact_id` text,
194
+ `review_status` text DEFAULT 'pending' NOT NULL,
195
+ `test_status` text DEFAULT 'pending' NOT NULL,
196
+ `rebase_status` text DEFAULT 'pending' NOT NULL,
197
+ `verification_status` text DEFAULT 'pending' NOT NULL,
198
+ `merge_status` text DEFAULT 'pending' NOT NULL,
199
+ `merge_order` integer DEFAULT 0 NOT NULL,
200
+ `required` integer DEFAULT true NOT NULL,
201
+ FOREIGN KEY (`issue_id`) REFERENCES `merge_sets`(`issue_id`) ON UPDATE no action ON DELETE no action
202
+ );
203
+ --> statement-breakpoint
204
+ CREATE INDEX `merge_set_repos_issue_idx` ON `merge_set_repos` (`issue_id`);--> statement-breakpoint
205
+ CREATE TABLE `merge_sets` (
206
+ `issue_id` text PRIMARY KEY NOT NULL,
207
+ `project_key` text NOT NULL,
208
+ `project_path` text NOT NULL,
209
+ `workspace_type` text NOT NULL,
210
+ `status` text DEFAULT 'draft' NOT NULL,
211
+ `created_at` integer NOT NULL,
212
+ `updated_at` integer NOT NULL,
213
+ FOREIGN KEY (`issue_id`) REFERENCES `issues`(`id`) ON UPDATE no action ON DELETE no action
214
+ );
215
+ --> statement-breakpoint
216
+ CREATE INDEX `merge_sets_project_idx` ON `merge_sets` (`project_key`,`updated_at`);--> statement-breakpoint
217
+ CREATE TABLE `pending_auto_merges` (
218
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
219
+ `issue_id` text NOT NULL,
220
+ `pr_url` text NOT NULL,
221
+ `project_key` text NOT NULL,
222
+ `forge` text DEFAULT 'github' NOT NULL,
223
+ `status` text NOT NULL,
224
+ `scheduled_merge_at` integer NOT NULL,
225
+ `scheduled_at` integer NOT NULL,
226
+ `merged_at` integer,
227
+ `failure_reason` text,
228
+ `cancelled_at` integer,
229
+ `cancelled_by` text,
230
+ FOREIGN KEY (`issue_id`) REFERENCES `issues`(`id`) ON UPDATE no action ON DELETE no action
231
+ );
232
+ --> statement-breakpoint
233
+ CREATE INDEX `pending_auto_merges_issue_idx` ON `pending_auto_merges` (`issue_id`);--> statement-breakpoint
234
+ CREATE UNIQUE INDEX `pending_auto_merges_active_issue_idx` ON `pending_auto_merges` (`issue_id`) WHERE status IN ('pending','merging');--> statement-breakpoint
235
+ CREATE TABLE `review_run_agents` (
236
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
237
+ `run_id` text NOT NULL,
238
+ `agent_id` text,
239
+ `sub_role` text,
240
+ `output_path` text,
241
+ `deadline_at` integer,
242
+ `monitor_signaled` text,
243
+ `retry_attempt` integer,
244
+ FOREIGN KEY (`run_id`) REFERENCES `review_runs`(`run_id`) ON UPDATE no action ON DELETE no action
245
+ );
246
+ --> statement-breakpoint
247
+ CREATE INDEX `review_run_agents_run_idx` ON `review_run_agents` (`run_id`);--> statement-breakpoint
248
+ CREATE TABLE `review_runs` (
249
+ `run_id` text PRIMARY KEY NOT NULL,
250
+ `issue_id` text NOT NULL,
251
+ `review_synthesis_agent_id` text,
252
+ `verification_cycle_count` integer DEFAULT 0,
253
+ `auto_requeue_count` integer DEFAULT 0,
254
+ `merge_retry_count` integer DEFAULT 0,
255
+ `test_retry_count` integer DEFAULT 0,
256
+ `review_retry_count` integer DEFAULT 0,
257
+ `stuck` integer DEFAULT false NOT NULL,
258
+ `stuck_reason` text,
259
+ `review_spawned_at` integer,
260
+ `conflict_resolution_dispatched_at` integer,
261
+ `recovery_started_at` integer,
262
+ FOREIGN KEY (`issue_id`) REFERENCES `issues`(`id`) ON UPDATE no action ON DELETE no action
263
+ );
264
+ --> statement-breakpoint
265
+ CREATE INDEX `review_runs_issue_idx` ON `review_runs` (`issue_id`);--> statement-breakpoint
266
+ CREATE TABLE `review_status` (
267
+ `issue_id` text PRIMARY KEY NOT NULL,
268
+ `review_status` text DEFAULT 'pending' NOT NULL,
269
+ `test_status` text DEFAULT 'pending' NOT NULL,
270
+ `merge_status` text,
271
+ `inspect_status` text,
272
+ `inspect_notes` text,
273
+ `inspect_started_at` integer,
274
+ `inspect_bead_id` text,
275
+ `verification_status` text,
276
+ `verification_notes` text,
277
+ `verification_cycle_count` integer DEFAULT 0,
278
+ `verification_max_cycles` integer,
279
+ `review_notes` text,
280
+ `test_notes` text,
281
+ `merge_notes` text,
282
+ `updated_at` integer NOT NULL,
283
+ `ready_for_merge` integer DEFAULT 0 NOT NULL,
284
+ `auto_requeue_count` integer DEFAULT 0,
285
+ `merge_retry_count` integer DEFAULT 0,
286
+ `pr_url` text,
287
+ `pr_head_sha` text,
288
+ `pr_number` integer,
289
+ `stuck` integer DEFAULT 0 NOT NULL,
290
+ `stuck_reason` text,
291
+ `stuck_at` integer,
292
+ `stuck_details` text,
293
+ `reviewed_at_commit` text,
294
+ `review_spawned_at` integer,
295
+ `conflict_resolution_dispatched_at` integer,
296
+ `test_retry_count` integer DEFAULT 0,
297
+ `review_retry_count` integer DEFAULT 0,
298
+ `recovery_started_at` integer,
299
+ `deacon_ignored` integer DEFAULT 0 NOT NULL,
300
+ `deacon_ignored_at` integer,
301
+ `deacon_ignored_reason` text,
302
+ `blocker_reasons` text,
303
+ `last_verified_commit` text,
304
+ `merge_step` text,
305
+ `auto_merge` integer
306
+ );
307
+ --> statement-breakpoint
308
+ CREATE INDEX `review_status_updated_idx` ON `review_status` (`updated_at`);--> statement-breakpoint
309
+ CREATE TABLE `status_history` (
310
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
311
+ `issue_id` text NOT NULL,
312
+ `type` text NOT NULL,
313
+ `status` text NOT NULL,
314
+ `timestamp` integer NOT NULL,
315
+ `notes` text,
316
+ FOREIGN KEY (`issue_id`) REFERENCES `issues`(`id`) ON UPDATE no action ON DELETE no action
317
+ );
318
+ --> statement-breakpoint
319
+ CREATE INDEX `status_history_issue_idx` ON `status_history` (`issue_id`,`timestamp`);--> statement-breakpoint
320
+ CREATE UNIQUE INDEX `status_history_unique_idx` ON `status_history` (`issue_id`,`type`,`status`,`timestamp`);--> statement-breakpoint
321
+ CREATE TABLE `transcript_checkpoints` (
322
+ `session_id` text PRIMARY KEY NOT NULL,
323
+ `transcript_path` text NOT NULL,
324
+ `last_offset` integer DEFAULT 0 NOT NULL,
325
+ `claim_owner` text,
326
+ `claim_from` integer,
327
+ `claim_to` integer,
328
+ `claim_expires_at` integer,
329
+ `mid_turn_count_in_current_turn` integer DEFAULT 0,
330
+ `last_mid_turn_at` integer,
331
+ `project_id` text,
332
+ `workspace_id` text,
333
+ `issue_id` text,
334
+ `updated_at` integer NOT NULL
335
+ );
336
+ --> statement-breakpoint
337
+ CREATE TABLE `transcripts` (
338
+ `backing_file_path` text PRIMARY KEY NOT NULL,
339
+ `session_id` text,
340
+ `harness` text,
341
+ `workspace_path` text,
342
+ `message_count` integer,
343
+ `models` text,
344
+ `token_input` integer,
345
+ `token_output` integer,
346
+ `first_ts` integer,
347
+ `last_ts` integer,
348
+ `pan_issue_id` text,
349
+ `pan_agent_id` text,
350
+ `file_mtime` integer,
351
+ `scanned_at` integer
352
+ );
353
+ --> statement-breakpoint
354
+ CREATE TABLE `uat_generation_members` (
355
+ `uat_name` text NOT NULL,
356
+ `issue_id` text NOT NULL,
357
+ `role` text DEFAULT 'member' NOT NULL,
358
+ `title` text,
359
+ `branch` text,
360
+ `head_sha` text,
361
+ `merge_order` integer,
362
+ `pr` integer,
363
+ `pr_url` text,
364
+ `reason` text,
365
+ PRIMARY KEY(`uat_name`, `issue_id`),
366
+ FOREIGN KEY (`uat_name`) REFERENCES `uat_generations`(`name`) ON UPDATE no action ON DELETE no action,
367
+ FOREIGN KEY (`issue_id`) REFERENCES `issues`(`id`) ON UPDATE no action ON DELETE no action
368
+ );
369
+ --> statement-breakpoint
370
+ CREATE TABLE `uat_generation_resolutions` (
371
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
372
+ `uat_name` text NOT NULL,
373
+ `issue_ids` text NOT NULL,
374
+ `files` text NOT NULL,
375
+ `commit_sha` text NOT NULL,
376
+ FOREIGN KEY (`uat_name`) REFERENCES `uat_generations`(`name`) ON UPDATE no action ON DELETE no action
377
+ );
378
+ --> statement-breakpoint
379
+ CREATE INDEX `uat_resolutions_uat_idx` ON `uat_generation_resolutions` (`uat_name`);--> statement-breakpoint
380
+ CREATE TABLE `uat_generations` (
381
+ `name` text PRIMARY KEY NOT NULL,
382
+ `worktree_path` text NOT NULL,
383
+ `project_root` text NOT NULL,
384
+ `base_sha` text NOT NULL,
385
+ `status` text DEFAULT 'assembling' NOT NULL,
386
+ `stack_started_at` integer,
387
+ `cleaned_at` integer,
388
+ `created_at` integer NOT NULL,
389
+ `updated_at` integer NOT NULL
390
+ );
391
+ --> statement-breakpoint
392
+ CREATE INDEX `uat_status_idx` ON `uat_generations` (`status`);--> statement-breakpoint
393
+ CREATE TABLE `discovered_sessions` (
394
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
395
+ `jsonl_path` text NOT NULL UNIQUE,
396
+ `harness` text,
397
+ `session_id` text,
398
+ `workspace_path` text,
399
+ `workspace_hash` text,
400
+ `message_count` integer NOT NULL DEFAULT 0,
401
+ `first_ts` integer,
402
+ `last_ts` integer,
403
+ `models_used` text,
404
+ `primary_model` text,
405
+ `token_input` integer NOT NULL DEFAULT 0,
406
+ `token_output` integer NOT NULL DEFAULT 0,
407
+ `estimated_cost` real NOT NULL DEFAULT 0,
408
+ `tools_used` text,
409
+ `files_touched` text,
410
+ `tags` text,
411
+ `summary` text,
412
+ `summary_detailed` text,
413
+ `enrichment_level` integer NOT NULL DEFAULT 0,
414
+ `enrichment_model` text,
415
+ `enriched_at` integer,
416
+ `enrichment_failed` integer NOT NULL DEFAULT 0,
417
+ `overdeck_managed` integer NOT NULL DEFAULT 0,
418
+ `pan_issue_id` text,
419
+ `pan_agent_id` text,
420
+ `file_size` integer,
421
+ `file_mtime` integer,
422
+ `scanned_at` integer NOT NULL
423
+ );--> statement-breakpoint
424
+ CREATE INDEX `idx_discovered_workspace` ON `discovered_sessions` (`workspace_path`);--> statement-breakpoint
425
+ CREATE INDEX `idx_discovered_last_ts` ON `discovered_sessions` (`last_ts`);--> statement-breakpoint
426
+ CREATE INDEX `idx_discovered_enrichment` ON `discovered_sessions` (`enrichment_level`,`enriched_at`);--> statement-breakpoint
427
+ CREATE INDEX `idx_discovered_managed` ON `discovered_sessions` (`overdeck_managed`,`pan_issue_id`);--> statement-breakpoint
428
+ CREATE INDEX `idx_discovered_model` ON `discovered_sessions` (`primary_model`);--> statement-breakpoint
429
+ CREATE INDEX `idx_discovered_session_id` ON `discovered_sessions` (`session_id`) WHERE session_id IS NOT NULL;--> statement-breakpoint
430
+ CREATE TABLE `discovered_session_tags` (
431
+ `session_id` integer NOT NULL REFERENCES `discovered_sessions`(`id`) ON DELETE CASCADE,
432
+ `tag` text NOT NULL,
433
+ PRIMARY KEY (`session_id`, `tag`)
434
+ );--> statement-breakpoint
435
+ CREATE INDEX `idx_discovered_session_tags_tag` ON `discovered_session_tags` (`tag`,`session_id`);--> statement-breakpoint
436
+ CREATE TABLE `discovered_session_tools` (
437
+ `session_id` integer NOT NULL REFERENCES `discovered_sessions`(`id`) ON DELETE CASCADE,
438
+ `tool` text NOT NULL,
439
+ PRIMARY KEY (`session_id`, `tool`)
440
+ );--> statement-breakpoint
441
+ CREATE INDEX `idx_discovered_session_tools_tool` ON `discovered_session_tools` (`tool`,`session_id`);--> statement-breakpoint
442
+ CREATE TABLE `discovered_session_files` (
443
+ `session_id` integer NOT NULL REFERENCES `discovered_sessions`(`id`) ON DELETE CASCADE,
444
+ `file_path` text NOT NULL,
445
+ PRIMARY KEY (`session_id`, `file_path`)
446
+ );--> statement-breakpoint
447
+ CREATE INDEX `idx_discovered_session_files_file_path` ON `discovered_session_files` (`file_path`,`session_id`);--> statement-breakpoint
448
+ CREATE TABLE `session_embeddings` (
449
+ `session_id` integer NOT NULL REFERENCES `discovered_sessions`(`id`) ON DELETE CASCADE,
450
+ `model` text NOT NULL,
451
+ `dim` integer NOT NULL,
452
+ `embedding` blob NOT NULL,
453
+ `created_at` integer NOT NULL,
454
+ PRIMARY KEY (`session_id`, `model`)
455
+ );--> statement-breakpoint
456
+ CREATE TABLE `git_operations` (
457
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
458
+ `operation` text NOT NULL,
459
+ `branch` text,
460
+ `issue_id` text,
461
+ `before_sha` text,
462
+ `after_sha` text,
463
+ `remote_sha` text,
464
+ `status` text NOT NULL,
465
+ `error` text,
466
+ `ts` integer NOT NULL
467
+ );--> statement-breakpoint
468
+ CREATE INDEX `idx_git_ops_ts` ON `git_operations` (`ts`);--> statement-breakpoint
469
+ CREATE INDEX `idx_git_ops_issue` ON `git_operations` (`issue_id`,`ts`);--> statement-breakpoint
470
+ CREATE TABLE `flywheel_substrate_bugs` (
471
+ `issue_id` text PRIMARY KEY NOT NULL,
472
+ `filed_at` integer NOT NULL,
473
+ `run_id` text,
474
+ `filed_by` text NOT NULL,
475
+ `discovered_in_issue_id` text,
476
+ `severity` text NOT NULL DEFAULT 'P2',
477
+ `status` text NOT NULL DEFAULT 'open',
478
+ `fix_merged_at` integer,
479
+ `fix_commit_sha` text,
480
+ `updated_at` integer NOT NULL
481
+ );--> statement-breakpoint
482
+ CREATE INDEX `idx_fsb_filed_at` ON `flywheel_substrate_bugs` (`filed_at`);--> statement-breakpoint
483
+ CREATE INDEX `idx_fsb_status` ON `flywheel_substrate_bugs` (`status`);--> statement-breakpoint
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@overdeck/desktop",
3
- "version": "0.45.6",
3
+ "version": "0.45.7",
4
4
  "description": "Overdeck Command Deck — AI agent monitoring desktop app",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -18,7 +18,8 @@
18
18
  "bin",
19
19
  "dist-electron",
20
20
  "server",
21
- "resources"
21
+ "resources",
22
+ "drizzle"
22
23
  ],
23
24
  "engines": {
24
25
  "node": ">=22.0.0"
@@ -65,6 +66,10 @@
65
66
  "!dist-electron/**/*.map"
66
67
  ],
67
68
  "extraResources": [
69
+ {
70
+ "from": "drizzle",
71
+ "to": "drizzle"
72
+ },
68
73
  {
69
74
  "from": "server",
70
75
  "to": "server",