@nurix/nustack 0.27.1 → 0.28.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.
@@ -20,6 +20,7 @@ export const SHARED_TABLES = [
20
20
  "occurred_at",
21
21
  ],
22
22
  },
23
+ { name: "backlog_items", key: "id" },
23
24
  {
24
25
  name: "project_files",
25
26
  key: "id",
package/dist/machine.sql CHANGED
@@ -341,6 +341,31 @@ CREATE TABLE `harness_records` (
341
341
  `sync_seq` integer
342
342
  );
343
343
 
344
+ CREATE TABLE `backlog_items` (
345
+ `id` text PRIMARY KEY,
346
+ `project_id` text NOT NULL,
347
+ `anchor` text NOT NULL,
348
+ `priority` text NOT NULL CHECK (`priority` IN ('P0', 'P1', 'P2', 'P3')),
349
+ `text` text NOT NULL,
350
+ `state` text NOT NULL DEFAULT 'open' CHECK (`state` IN ('open', 'in_progress', 'parked', 'removed')),
351
+ `discovered_by` text,
352
+ `discovered_by_kind` text NOT NULL DEFAULT 'other' CHECK (`discovered_by_kind` IN ('plan', 'agent', 'session', 'person', 'other')),
353
+ `discovered_by_plan_anchor` text,
354
+ `resolved_at` text,
355
+ `resolved_by_kind` text CHECK (`resolved_by_kind` IS NULL OR `resolved_by_kind` IN ('plan', 'changelog', 'commit', 'person', 'file')),
356
+ `resolved_by` text,
357
+ `paths_json` text NOT NULL DEFAULT '[]' CHECK (json_valid(`paths_json`)),
358
+ `written_by_kind` text NOT NULL CHECK (`written_by_kind` IN ('person', 'session', 'agent')),
359
+ `agent_definition_id` text,
360
+ `session_id` text,
361
+ `occurred_at` text NOT NULL,
362
+ `created_at` text NOT NULL DEFAULT (datetime('now')),
363
+ `updated_at` text NOT NULL DEFAULT (datetime('now')),
364
+ `row_version` integer NOT NULL DEFAULT 1,
365
+ `sync_seq` integer,
366
+ CHECK ((`state` = 'removed') = (`resolved_at` IS NOT NULL))
367
+ );
368
+
344
369
  CREATE TABLE `github_repositories` (
345
370
  `repository_id` integer PRIMARY KEY,
346
371
  `installation_id` integer NOT NULL,
@@ -587,6 +612,14 @@ CREATE INDEX `harness_records_project_kind_plan_idx` ON `harness_records` (`proj
587
612
 
588
613
  CREATE INDEX `harness_records_project_created_idx` ON `harness_records` (`project_id`, `created_at`, `id`);
589
614
 
615
+ CREATE UNIQUE INDEX `backlog_items_project_anchor_unique` ON `backlog_items` (`project_id`, `anchor`);
616
+
617
+ CREATE INDEX `backlog_items_project_state_priority_idx` ON `backlog_items` (`project_id`, `state`, `priority`, `occurred_at`);
618
+
619
+ CREATE INDEX `backlog_items_project_plan_idx` ON `backlog_items` (`project_id`, `discovered_by_plan_anchor`) WHERE `discovered_by_plan_anchor` IS NOT NULL;
620
+
621
+ CREATE INDEX `backlog_items_sync_seq_idx` ON `backlog_items` (`sync_seq`);
622
+
590
623
  CREATE INDEX `github_repositories_sync_seq_idx` ON `github_repositories` (`sync_seq`);
591
624
 
592
625
  CREATE INDEX `github_repositories_installation_idx` ON `github_repositories` (`installation_id`, `full_name`);
@@ -1 +1 @@
1
- 101
1
+ 102
@@ -49,8 +49,40 @@
49
49
  "enum": [
50
50
  "open",
51
51
  "in_progress",
52
+ "parked",
52
53
  "removed"
53
54
  ]
55
+ },
56
+ "resolution": {
57
+ "type": "object",
58
+ "properties": {
59
+ "kind": {
60
+ "type": "string",
61
+ "enum": [
62
+ "plan",
63
+ "changelog",
64
+ "commit",
65
+ "person",
66
+ "file"
67
+ ]
68
+ },
69
+ "by": {
70
+ "anyOf": [
71
+ {
72
+ "type": "string",
73
+ "maxLength": 20000
74
+ },
75
+ {
76
+ "type": "null"
77
+ }
78
+ ]
79
+ }
80
+ },
81
+ "required": [
82
+ "kind",
83
+ "by"
84
+ ],
85
+ "additionalProperties": false
54
86
  }
55
87
  },
56
88
  "required": [
@@ -131,8 +163,40 @@
131
163
  "enum": [
132
164
  "open",
133
165
  "in_progress",
166
+ "parked",
134
167
  "removed"
135
168
  ]
169
+ },
170
+ "resolution": {
171
+ "type": "object",
172
+ "properties": {
173
+ "kind": {
174
+ "type": "string",
175
+ "enum": [
176
+ "plan",
177
+ "changelog",
178
+ "commit",
179
+ "person",
180
+ "file"
181
+ ]
182
+ },
183
+ "by": {
184
+ "anyOf": [
185
+ {
186
+ "type": "string",
187
+ "maxLength": 20000
188
+ },
189
+ {
190
+ "type": "null"
191
+ }
192
+ ]
193
+ }
194
+ },
195
+ "required": [
196
+ "kind",
197
+ "by"
198
+ ],
199
+ "additionalProperties": false
136
200
  }
137
201
  },
138
202
  "required": [
@@ -1511,8 +1575,40 @@
1511
1575
  "enum": [
1512
1576
  "open",
1513
1577
  "in_progress",
1578
+ "parked",
1514
1579
  "removed"
1515
1580
  ]
1581
+ },
1582
+ "resolution": {
1583
+ "type": "object",
1584
+ "properties": {
1585
+ "kind": {
1586
+ "type": "string",
1587
+ "enum": [
1588
+ "plan",
1589
+ "changelog",
1590
+ "commit",
1591
+ "person",
1592
+ "file"
1593
+ ]
1594
+ },
1595
+ "by": {
1596
+ "anyOf": [
1597
+ {
1598
+ "type": "string",
1599
+ "maxLength": 20000
1600
+ },
1601
+ {
1602
+ "type": "null"
1603
+ }
1604
+ ]
1605
+ }
1606
+ },
1607
+ "required": [
1608
+ "kind",
1609
+ "by"
1610
+ ],
1611
+ "additionalProperties": false
1516
1612
  }
1517
1613
  },
1518
1614
  "required": [
@@ -2379,8 +2475,40 @@
2379
2475
  "enum": [
2380
2476
  "open",
2381
2477
  "in_progress",
2478
+ "parked",
2382
2479
  "removed"
2383
2480
  ]
2481
+ },
2482
+ "resolution": {
2483
+ "type": "object",
2484
+ "properties": {
2485
+ "kind": {
2486
+ "type": "string",
2487
+ "enum": [
2488
+ "plan",
2489
+ "changelog",
2490
+ "commit",
2491
+ "person",
2492
+ "file"
2493
+ ]
2494
+ },
2495
+ "by": {
2496
+ "anyOf": [
2497
+ {
2498
+ "type": "string",
2499
+ "maxLength": 20000
2500
+ },
2501
+ {
2502
+ "type": "null"
2503
+ }
2504
+ ]
2505
+ }
2506
+ },
2507
+ "required": [
2508
+ "kind",
2509
+ "by"
2510
+ ],
2511
+ "additionalProperties": false
2384
2512
  }
2385
2513
  },
2386
2514
  "required": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nurix/nustack",
3
- "version": "0.27.1",
3
+ "version": "0.28.0",
4
4
  "description": "The nustack CLI — bootstrap NuStack services into a repo via the NuStack discovery plane.",
5
5
  "type": "module",
6
6
  "private": false,
@@ -34,8 +34,8 @@
34
34
  "@types/node": "^22.19.20",
35
35
  "typescript": "^5.7.2",
36
36
  "vitest": "^4.1.11",
37
+ "@nurix/contracts": "3.0.3",
37
38
  "@nurix/harness": "0.0.0",
38
- "@nurix/contracts": "3.0.2",
39
39
  "@nurix/nustack.ui": "0.0.0",
40
40
  "@nurix/nustack.studio": "0.0.0"
41
41
  },