@aeolus-fleet/core 0.18.0 → 0.20.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 (118) hide show
  1. package/LICENSE +201 -0
  2. package/dist/adapters/prisma/generated/browser.d.ts +25 -0
  3. package/dist/adapters/prisma/generated/client.d.ts +25 -0
  4. package/dist/adapters/prisma/generated/internal/class.d.ts +44 -0
  5. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  6. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  7. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +338 -1
  8. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +34 -1
  9. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  10. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +37 -0
  11. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +34 -1
  12. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  13. package/dist/adapters/prisma/generated/models/CrewRequest.d.ts +103 -1
  14. package/dist/adapters/prisma/generated/models/Fleet.d.ts +860 -0
  15. package/dist/adapters/prisma/generated/models/Label.d.ts +1475 -0
  16. package/dist/adapters/prisma/generated/models/Label.js +2 -0
  17. package/dist/adapters/prisma/generated/models/Label.js.map +1 -0
  18. package/dist/adapters/prisma/generated/models/LabelValue.d.ts +1454 -0
  19. package/dist/adapters/prisma/generated/models/LabelValue.js +2 -0
  20. package/dist/adapters/prisma/generated/models/LabelValue.js.map +1 -0
  21. package/dist/adapters/prisma/generated/models/Ship.d.ts +1225 -70
  22. package/dist/adapters/prisma/generated/models/ShipLabel.d.ts +1431 -0
  23. package/dist/adapters/prisma/generated/models/ShipLabel.js +2 -0
  24. package/dist/adapters/prisma/generated/models/ShipLabel.js.map +1 -0
  25. package/dist/adapters/prisma/generated/models/WorktreeClearRequest.d.ts +1539 -0
  26. package/dist/adapters/prisma/generated/models/WorktreeClearRequest.js +2 -0
  27. package/dist/adapters/prisma/generated/models/WorktreeClearRequest.js.map +1 -0
  28. package/dist/adapters/prisma/generated/models.d.ts +4 -0
  29. package/dist/adapters/prisma/registry.d.ts +3 -1
  30. package/dist/adapters/prisma/registry.js +129 -9
  31. package/dist/adapters/prisma/registry.js.map +1 -1
  32. package/dist/adapters/prisma/rows.d.ts +10 -0
  33. package/dist/adapters/prisma/rows.js +41 -2
  34. package/dist/adapters/prisma/rows.js.map +1 -1
  35. package/dist/adapters/prisma/unit-of-work.d.ts +3 -1
  36. package/dist/adapters/prisma/unit-of-work.js +3 -1
  37. package/dist/adapters/prisma/unit-of-work.js.map +1 -1
  38. package/dist/adapters/trpc/console.d.ts +1 -1
  39. package/dist/adapters/trpc/context.d.ts +20 -0
  40. package/dist/adapters/trpc/fleet.d.ts +144 -8
  41. package/dist/adapters/trpc/fleet.js +149 -12
  42. package/dist/adapters/trpc/fleet.js.map +1 -1
  43. package/dist/adapters/trpc/router.d.ts +134 -8
  44. package/dist/adapters/trpc/ship-contract.js +10 -0
  45. package/dist/adapters/trpc/ship-contract.js.map +1 -1
  46. package/dist/adapters/trpc/trpc.d.ts +2 -2
  47. package/dist/adapters/trpc/trpc.js +16 -2
  48. package/dist/adapters/trpc/trpc.js.map +1 -1
  49. package/dist/domain/registry/assign-label.d.ts +32 -0
  50. package/dist/domain/registry/assign-label.js +39 -0
  51. package/dist/domain/registry/assign-label.js.map +1 -0
  52. package/dist/domain/registry/change-label-values.d.ts +33 -0
  53. package/dist/domain/registry/change-label-values.js +34 -0
  54. package/dist/domain/registry/change-label-values.js.map +1 -0
  55. package/dist/domain/registry/clear-request.d.ts +69 -0
  56. package/dist/domain/registry/clear-request.js +51 -0
  57. package/dist/domain/registry/clear-request.js.map +1 -0
  58. package/dist/domain/registry/confirm-worktree-cleared.d.ts +31 -0
  59. package/dist/domain/registry/confirm-worktree-cleared.js +30 -0
  60. package/dist/domain/registry/confirm-worktree-cleared.js.map +1 -0
  61. package/dist/domain/registry/crew-request.d.ts +9 -3
  62. package/dist/domain/registry/crew-request.js +9 -6
  63. package/dist/domain/registry/crew-request.js.map +1 -1
  64. package/dist/domain/registry/define-label.d.ts +33 -0
  65. package/dist/domain/registry/define-label.js +33 -0
  66. package/dist/domain/registry/define-label.js.map +1 -0
  67. package/dist/domain/registry/delete-label.d.ts +30 -0
  68. package/dist/domain/registry/delete-label.js +32 -0
  69. package/dist/domain/registry/delete-label.js.map +1 -0
  70. package/dist/domain/registry/find-label-value.d.ts +22 -0
  71. package/dist/domain/registry/find-label-value.js +19 -0
  72. package/dist/domain/registry/find-label-value.js.map +1 -0
  73. package/dist/domain/registry/get-ship.d.ts +1 -1
  74. package/dist/domain/registry/get-ship.js +2 -2
  75. package/dist/domain/registry/get-ship.js.map +1 -1
  76. package/dist/domain/registry/get-starting-prompt.js +3 -3
  77. package/dist/domain/registry/get-starting-prompt.js.map +1 -1
  78. package/dist/domain/registry/label.d.ts +197 -0
  79. package/dist/domain/registry/label.js +263 -0
  80. package/dist/domain/registry/label.js.map +1 -0
  81. package/dist/domain/registry/list-fleet.d.ts +13 -7
  82. package/dist/domain/registry/list-fleet.js +10 -5
  83. package/dist/domain/registry/list-fleet.js.map +1 -1
  84. package/dist/domain/registry/list-labels.d.ts +12 -0
  85. package/dist/domain/registry/list-labels.js +9 -0
  86. package/dist/domain/registry/list-labels.js.map +1 -0
  87. package/dist/domain/registry/ports.d.ts +59 -1
  88. package/dist/domain/registry/read-clear-requests.d.ts +15 -0
  89. package/dist/domain/registry/read-clear-requests.js +16 -0
  90. package/dist/domain/registry/read-clear-requests.js.map +1 -0
  91. package/dist/domain/registry/release-ship.d.ts +1 -1
  92. package/dist/domain/registry/release-ship.js +2 -2
  93. package/dist/domain/registry/release-ship.js.map +1 -1
  94. package/dist/domain/registry/report-crew-status.d.ts +6 -3
  95. package/dist/domain/registry/report-crew-status.js +11 -4
  96. package/dist/domain/registry/report-crew-status.js.map +1 -1
  97. package/dist/domain/registry/request-worktree-clear.d.ts +31 -0
  98. package/dist/domain/registry/request-worktree-clear.js +35 -0
  99. package/dist/domain/registry/request-worktree-clear.js.map +1 -0
  100. package/dist/domain/registry/retire-ship.d.ts +9 -3
  101. package/dist/domain/registry/retire-ship.js +27 -2
  102. package/dist/domain/registry/retire-ship.js.map +1 -1
  103. package/dist/domain/registry/ship.d.ts +1 -1
  104. package/dist/domain/registry/unassign-label.d.ts +30 -0
  105. package/dist/domain/registry/unassign-label.js +37 -0
  106. package/dist/domain/registry/unassign-label.js.map +1 -0
  107. package/dist/domain/shared/errors.d.ts +1 -1
  108. package/dist/domain/shared/errors.js.map +1 -1
  109. package/dist/wiring.d.ts +20 -0
  110. package/dist/wiring.js +21 -1
  111. package/dist/wiring.js.map +1 -1
  112. package/package.json +7 -5
  113. package/src/adapters/prisma/migrations/20261007020000_broad_crewing_scope_retired/migration.sql +8 -0
  114. package/src/adapters/prisma/migrations/20261007100000_labels/migration.sql +87 -0
  115. package/src/adapters/prisma/migrations/20261007110000_foreign_key_indexes/migration.sql +42 -0
  116. package/src/adapters/prisma/migrations/20261007120000_crew_status_attempt/migration.sql +4 -0
  117. package/src/adapters/prisma/migrations/20261007140000_worktree_clear_requests/migration.sql +32 -0
  118. package/src/adapters/prisma/schema.prisma +120 -0
@@ -1 +1 @@
1
- {"version":3,"file":"wiring.js","sourceRoot":"","sources":["../src/wiring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wiring.js","sourceRoot":"","sources":["../src/wiring.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aeolus-fleet/core",
3
- "version": "0.18.0",
3
+ "version": "0.20.0",
4
4
  "description": "Aeolus server: the tRPC API and the fleet domain on Postgres.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -37,15 +37,17 @@
37
37
  "aeolus-core": "tsx --conditions=@aeolus-fleet/source --env-file-if-exists=.env src/bin/aeolus-core.ts",
38
38
  "fleet:init": "tsx --conditions=@aeolus-fleet/source --env-file-if-exists=.env src/bin/aeolus-core.ts fleet:init",
39
39
  "operator:reset-password": "tsx --conditions=@aeolus-fleet/source --env-file-if-exists=.env src/bin/aeolus-core.ts operator:reset-password",
40
- "db:migrate": "tsx --conditions=@aeolus-fleet/source --env-file-if-exists=.env src/bin/aeolus-core.ts migrate"
40
+ "db:migrate": "tsx --conditions=@aeolus-fleet/source --env-file-if-exists=.env src/bin/aeolus-core.ts migrate",
41
+ "prepack": "cp ../../LICENSE LICENSE",
42
+ "postpack": "rm LICENSE"
41
43
  },
42
44
  "dependencies": {
43
- "@aeolus-fleet/common": "0.18.0",
45
+ "@aeolus-fleet/common": "0.20.0",
44
46
  "@fastify/websocket": "^11.3.1",
45
- "@modelcontextprotocol/server": "^2.2.0",
47
+ "@modelcontextprotocol/server": "^2.3.0",
46
48
  "@prisma/adapter-pg": "^7.10.0",
47
49
  "@prisma/client": "^7.10.0",
48
- "@scalar/fastify-api-reference": "^1.72.3",
50
+ "@scalar/fastify-api-reference": "^1.72.4",
49
51
  "@trpc/server": "^11.19.0",
50
52
  "fastify": "^5.12.5",
51
53
  "pg": "^8.23.0",
@@ -0,0 +1,8 @@
1
+ -- The broad crewing scope goes (decision 0029): crew:assign and crew:run
2
+ -- replace it. Every ship that held it, argo included, loses it; nothing is
3
+ -- kept for compatibility (decision 0013).
4
+ UPDATE "ships" SET "scopes" = array_remove("scopes", 'fleet:crew');
5
+ ALTER TABLE "ships" DROP CONSTRAINT "ships_scopes_known";
6
+ ALTER TABLE "ships" ADD CONSTRAINT "ships_scopes_known" CHECK (
7
+ "scopes" IS NOT NULL AND "scopes" <@ ARRAY['messages:send', 'messages:receive', 'fleet:read', 'fleet:manage', 'crew:assign', 'crew:run']::TEXT[]
8
+ );
@@ -0,0 +1,87 @@
1
+ -- labels:define and labels:assign (decision 0031): defining labels and
2
+ -- assigning them. argo holds every scope, so each fleet's argo gets them too.
3
+ ALTER TABLE "ships" DROP CONSTRAINT "ships_scopes_known";
4
+ ALTER TABLE "ships" ADD CONSTRAINT "ships_scopes_known" CHECK (
5
+ "scopes" IS NOT NULL AND "scopes" <@ ARRAY['messages:send', 'messages:receive', 'fleet:read', 'fleet:manage', 'crew:assign', 'crew:run', 'labels:define', 'labels:assign']::TEXT[]
6
+ );
7
+
8
+ UPDATE "ships" SET "scopes" = array_append("scopes", 'labels:define') WHERE "kind" = 'operator' AND NOT ('labels:define' = ANY("scopes"));
9
+ UPDATE "ships" SET "scopes" = array_append("scopes", 'labels:assign') WHERE "kind" = 'operator' AND NOT ('labels:assign' = ANY("scopes"));
10
+
11
+ -- The labels, their values, each with its id, and the values each ship carries.
12
+ -- CreateTable
13
+ CREATE TABLE "labels" (
14
+ "id" TEXT NOT NULL,
15
+ "fleet_id" TEXT NOT NULL,
16
+ "key" TEXT NOT NULL,
17
+ "owner_ship_id" TEXT NOT NULL,
18
+
19
+ CONSTRAINT "labels_pkey" PRIMARY KEY ("id")
20
+ );
21
+
22
+ -- CreateTable
23
+ CREATE TABLE "label_values" (
24
+ "id" TEXT NOT NULL,
25
+ "fleet_id" TEXT NOT NULL,
26
+ "label_id" TEXT NOT NULL,
27
+ "value" TEXT NOT NULL,
28
+ "position" INTEGER NOT NULL,
29
+
30
+ CONSTRAINT "label_values_pkey" PRIMARY KEY ("id")
31
+ );
32
+
33
+ -- CreateTable
34
+ CREATE TABLE "ship_labels" (
35
+ "fleet_id" TEXT NOT NULL,
36
+ "ship_id" TEXT NOT NULL,
37
+ "label_id" TEXT NOT NULL,
38
+ "value_id" TEXT NOT NULL,
39
+
40
+ CONSTRAINT "ship_labels_pkey" PRIMARY KEY ("fleet_id","ship_id","value_id")
41
+ );
42
+
43
+ -- CreateIndex
44
+ CREATE INDEX "labels_fleet_id_owner_ship_id_idx" ON "labels"("fleet_id", "owner_ship_id");
45
+
46
+ -- CreateIndex
47
+ CREATE UNIQUE INDEX "labels_fleet_id_id_key" ON "labels"("fleet_id", "id");
48
+
49
+ -- CreateIndex
50
+ CREATE UNIQUE INDEX "labels_fleet_id_key_key" ON "labels"("fleet_id", "key");
51
+
52
+ -- CreateIndex
53
+ CREATE UNIQUE INDEX "label_values_fleet_id_id_key" ON "label_values"("fleet_id", "id");
54
+
55
+ -- CreateIndex
56
+ CREATE UNIQUE INDEX "label_values_fleet_id_label_id_value_key" ON "label_values"("fleet_id", "label_id", "value");
57
+
58
+ -- CreateIndex
59
+ CREATE INDEX "ship_labels_fleet_id_label_id_idx" ON "ship_labels"("fleet_id", "label_id");
60
+
61
+ -- CreateIndex
62
+ CREATE INDEX "ship_labels_fleet_id_value_id_idx" ON "ship_labels"("fleet_id", "value_id");
63
+
64
+ -- AddForeignKey
65
+ ALTER TABLE "labels" ADD CONSTRAINT "labels_fleet_id_fkey" FOREIGN KEY ("fleet_id") REFERENCES "fleets"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
66
+
67
+ -- AddForeignKey
68
+ ALTER TABLE "labels" ADD CONSTRAINT "labels_fleet_id_owner_ship_id_fkey" FOREIGN KEY ("fleet_id", "owner_ship_id") REFERENCES "ships"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
69
+
70
+ -- AddForeignKey
71
+ ALTER TABLE "label_values" ADD CONSTRAINT "label_values_fleet_id_fkey" FOREIGN KEY ("fleet_id") REFERENCES "fleets"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
72
+
73
+ -- AddForeignKey
74
+ ALTER TABLE "label_values" ADD CONSTRAINT "label_values_fleet_id_label_id_fkey" FOREIGN KEY ("fleet_id", "label_id") REFERENCES "labels"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
75
+
76
+ -- AddForeignKey
77
+ ALTER TABLE "ship_labels" ADD CONSTRAINT "ship_labels_fleet_id_fkey" FOREIGN KEY ("fleet_id") REFERENCES "fleets"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
78
+
79
+ -- AddForeignKey
80
+ ALTER TABLE "ship_labels" ADD CONSTRAINT "ship_labels_fleet_id_ship_id_fkey" FOREIGN KEY ("fleet_id", "ship_id") REFERENCES "ships"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
81
+
82
+ -- AddForeignKey
83
+ ALTER TABLE "ship_labels" ADD CONSTRAINT "ship_labels_fleet_id_label_id_fkey" FOREIGN KEY ("fleet_id", "label_id") REFERENCES "labels"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
84
+
85
+ -- AddForeignKey
86
+ ALTER TABLE "ship_labels" ADD CONSTRAINT "ship_labels_fleet_id_value_id_fkey" FOREIGN KEY ("fleet_id", "value_id") REFERENCES "label_values"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
87
+
@@ -0,0 +1,42 @@
1
+ -- Every foreign key gets an index leading with its columns (#331): deleting a
2
+ -- referenced row checks the rows that reference it with an index, not a
3
+ -- sequential scan, so a long-lived fleet can still be deleted.
4
+ -- CreateIndex
5
+ CREATE INDEX "leases_fleet_id_ship_id_idx" ON "leases"("fleet_id", "ship_id");
6
+
7
+ -- CreateIndex
8
+ CREATE INDEX "credentials_fleet_id_ship_id_idx" ON "credentials"("fleet_id", "ship_id");
9
+
10
+ -- CreateIndex
11
+ CREATE INDEX "messages_fleet_id_selector_ship_id_idx" ON "messages"("fleet_id", "selector_ship_id");
12
+
13
+ -- CreateIndex
14
+ CREATE INDEX "messages_fleet_id_in_reply_to_message_id_idx" ON "messages"("fleet_id", "in_reply_to_message_id");
15
+
16
+ -- CreateIndex
17
+ CREATE INDEX "messages_fleet_id_resend_of_message_id_idx" ON "messages"("fleet_id", "resend_of_message_id");
18
+
19
+ -- CreateIndex
20
+ CREATE INDEX "deliveries_fleet_id_message_id_idx" ON "deliveries"("fleet_id", "message_id");
21
+
22
+ -- CreateIndex
23
+ CREATE INDEX "deliveries_fleet_id_claimed_by_ship_id_idx" ON "deliveries"("fleet_id", "claimed_by_ship_id");
24
+
25
+ -- CreateIndex
26
+ CREATE INDEX "events_fleet_id_actor_ship_id_idx" ON "events"("fleet_id", "actor_ship_id");
27
+
28
+ -- CreateIndex
29
+ CREATE INDEX "events_fleet_id_ship_id_idx" ON "events"("fleet_id", "ship_id");
30
+
31
+ -- CreateIndex
32
+ CREATE INDEX "events_fleet_id_message_id_idx" ON "events"("fleet_id", "message_id");
33
+
34
+ -- CreateIndex
35
+ CREATE INDEX "events_fleet_id_delivery_id_idx" ON "events"("fleet_id", "delivery_id");
36
+
37
+ -- CreateIndex
38
+ CREATE INDEX "console_sessions_fleet_id_ship_id_idx" ON "console_sessions"("fleet_id", "ship_id");
39
+
40
+ -- CreateIndex
41
+ CREATE INDEX "console_sessions_fleet_id_lease_id_idx" ON "console_sessions"("fleet_id", "lease_id");
42
+
@@ -0,0 +1,4 @@
1
+ -- The crew status carries the restart attempt and when the session started (#332):
2
+ -- written by the assigned trierarch with the status.
3
+ ALTER TABLE "crew_requests" ADD COLUMN "attempt" INTEGER NOT NULL DEFAULT 0;
4
+ ALTER TABLE "crew_requests" ADD COLUMN "session_started_at" TIMESTAMPTZ(3);
@@ -0,0 +1,32 @@
1
+ -- A pending request that a trierarch clear a worktree it kept (decision 0032),
2
+ -- one per trierarch, ship and repository. Every foreign key leads an index.
3
+ -- CreateTable
4
+ CREATE TABLE "worktree_clear_requests" (
5
+ "fleet_id" TEXT NOT NULL,
6
+ "trierarch_ship_id" TEXT NOT NULL,
7
+ "ship_id" TEXT NOT NULL,
8
+ "repository" TEXT NOT NULL,
9
+ "requested_by_ship_id" TEXT NOT NULL,
10
+ "requested_at" TIMESTAMPTZ(3) NOT NULL,
11
+
12
+ CONSTRAINT "worktree_clear_requests_pkey" PRIMARY KEY ("fleet_id","trierarch_ship_id","ship_id","repository")
13
+ );
14
+
15
+ -- CreateIndex
16
+ CREATE INDEX "worktree_clear_requests_fleet_id_ship_id_idx" ON "worktree_clear_requests"("fleet_id", "ship_id");
17
+
18
+ -- CreateIndex
19
+ CREATE INDEX "worktree_clear_requests_fleet_id_requested_by_ship_id_idx" ON "worktree_clear_requests"("fleet_id", "requested_by_ship_id");
20
+
21
+ -- AddForeignKey
22
+ ALTER TABLE "worktree_clear_requests" ADD CONSTRAINT "worktree_clear_requests_fleet_id_fkey" FOREIGN KEY ("fleet_id") REFERENCES "fleets"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
23
+
24
+ -- AddForeignKey
25
+ ALTER TABLE "worktree_clear_requests" ADD CONSTRAINT "worktree_clear_requests_fleet_id_trierarch_ship_id_fkey" FOREIGN KEY ("fleet_id", "trierarch_ship_id") REFERENCES "ships"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
26
+
27
+ -- AddForeignKey
28
+ ALTER TABLE "worktree_clear_requests" ADD CONSTRAINT "worktree_clear_requests_fleet_id_ship_id_fkey" FOREIGN KEY ("fleet_id", "ship_id") REFERENCES "ships"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
29
+
30
+ -- AddForeignKey
31
+ ALTER TABLE "worktree_clear_requests" ADD CONSTRAINT "worktree_clear_requests_fleet_id_requested_by_ship_id_fkey" FOREIGN KEY ("fleet_id", "requested_by_ship_id") REFERENCES "ships"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
32
+
@@ -46,6 +46,10 @@ model Fleet {
46
46
  ships Ship[]
47
47
  leases Lease[]
48
48
  crewRequests CrewRequest[]
49
+ clearRequests WorktreeClearRequest[]
50
+ labels Label[]
51
+ labelValues LabelValue[]
52
+ shipLabels ShipLabel[]
49
53
  credentials Credential[]
50
54
  messages Message[]
51
55
  deliveries Delivery[]
@@ -97,6 +101,11 @@ model Ship {
97
101
  events Event[] @relation("EventShip")
98
102
  crewRequest CrewRequest? @relation("CrewRequestShip")
99
103
  assignedCrews CrewRequest[] @relation("CrewRequestAssignee")
104
+ clearRequests WorktreeClearRequest[] @relation("WorktreeClearRequestTrierarch")
105
+ clearedWorktrees WorktreeClearRequest[] @relation("WorktreeClearRequestShip")
106
+ requestedClears WorktreeClearRequest[] @relation("WorktreeClearRequestRequester")
107
+ ownedLabels Label[] @relation("LabelOwner")
108
+ labels ShipLabel[] @relation("ShipLabelShip")
100
109
 
101
110
  @@unique([fleetId, id])
102
111
  /// An idempotency key is used once per commissioning ship.
@@ -163,6 +172,9 @@ model Lease {
163
172
  @@unique([fleetId, id])
164
173
  /// At most one open lease per ship.
165
174
  @@unique([shipId], map: "leases_ship_id_open_key", where: { endedAt: null })
175
+ /// Every foreign key has an index leading with its columns, so deleting a
176
+ /// referenced row checks it with an index, not a scan (#331).
177
+ @@index([fleetId, shipId])
166
178
  @@map("leases")
167
179
  }
168
180
 
@@ -192,6 +204,10 @@ model CrewRequest {
192
204
  status CrewStatus?
193
205
  /// Why no trierarch can take it, written by the assigner while unassigned; null when none.
194
206
  reason String?
207
+ /// How many times its trierarch restarted the session within its restart window, with the status: 0 on its first start.
208
+ attempt Int @default(0)
209
+ /// When the session its trierarch runs now started, with the status; null while none runs.
210
+ sessionStartedAt DateTime? @map("session_started_at") @db.Timestamptz(3)
195
211
 
196
212
  fleet Fleet @relation(fields: [fleetId], references: [id])
197
213
  ship Ship @relation("CrewRequestShip", fields: [fleetId, shipId], references: [fleetId, id])
@@ -203,6 +219,88 @@ model CrewRequest {
203
219
  @@map("crew_requests")
204
220
  }
205
221
 
222
+ /// A pending request that a trierarch clear a worktree it kept (decision 0032),
223
+ /// named by the ship it belonged to and its repository: never a path.
224
+ model WorktreeClearRequest {
225
+ fleetId String @map("fleet_id")
226
+ trierarchShipId String @map("trierarch_ship_id")
227
+ shipId String @map("ship_id")
228
+ repository String
229
+ requestedBy String @map("requested_by_ship_id")
230
+ requestedAt DateTime @map("requested_at") @db.Timestamptz(3)
231
+
232
+ fleet Fleet @relation(fields: [fleetId], references: [id])
233
+ trierarch Ship @relation("WorktreeClearRequestTrierarch", fields: [fleetId, trierarchShipId], references: [fleetId, id])
234
+ ship Ship @relation("WorktreeClearRequestShip", fields: [fleetId, shipId], references: [fleetId, id])
235
+ requester Ship @relation("WorktreeClearRequestRequester", fields: [fleetId, requestedBy], references: [fleetId, id])
236
+
237
+ @@id([fleetId, trierarchShipId, shipId, repository])
238
+ @@index([fleetId, shipId])
239
+ @@index([fleetId, requestedBy])
240
+ @@map("worktree_clear_requests")
241
+ }
242
+
243
+ /// A label (decision 0031): a key unique in its fleet with its defined values,
244
+ /// owned by the ship that defined it. Ids start with lbl_. A retired or deleted
245
+ /// label is deleted with its values; its events stay.
246
+ model Label {
247
+ id String @id
248
+ fleetId String @map("fleet_id")
249
+ key String
250
+ ownerShipId String @map("owner_ship_id")
251
+
252
+ fleet Fleet @relation(fields: [fleetId], references: [id])
253
+ owner Ship @relation("LabelOwner", fields: [fleetId, ownerShipId], references: [fleetId, id])
254
+ values LabelValue[]
255
+ carriers ShipLabel[]
256
+
257
+ @@unique([fleetId, id])
258
+ @@unique([fleetId, key])
259
+ /// A retire finds the labels its ship owns.
260
+ @@index([fleetId, ownerShipId])
261
+ @@map("labels")
262
+ }
263
+
264
+ /// One value of a label, each once, at most 50 a label. Ids start with lbv_; a
265
+ /// value keeps its id while its label has it.
266
+ model LabelValue {
267
+ id String @id
268
+ fleetId String @map("fleet_id")
269
+ labelId String @map("label_id")
270
+ value String
271
+ /// Its place in the order the owner gave the values.
272
+ position Int
273
+
274
+ fleet Fleet @relation(fields: [fleetId], references: [id])
275
+ label Label @relation(fields: [fleetId, labelId], references: [fleetId, id])
276
+ carriers ShipLabel[]
277
+
278
+ @@unique([fleetId, id])
279
+ @@unique([fleetId, labelId, value])
280
+ @@map("label_values")
281
+ }
282
+
283
+ /// A label value a ship carries: a ship holds a set of values, so the ship and
284
+ /// the value are its key.
285
+ model ShipLabel {
286
+ fleetId String @map("fleet_id")
287
+ shipId String @map("ship_id")
288
+ labelId String @map("label_id")
289
+ valueId String @map("value_id")
290
+
291
+ fleet Fleet @relation(fields: [fleetId], references: [id])
292
+ ship Ship @relation("ShipLabelShip", fields: [fleetId, shipId], references: [fleetId, id])
293
+ label Label @relation(fields: [fleetId, labelId], references: [fleetId, id])
294
+ value LabelValue @relation(fields: [fleetId, valueId], references: [fleetId, id])
295
+
296
+ @@id([fleetId, shipId, valueId])
297
+ /// A change of values, a delete and a retire find every ship that carries a label.
298
+ @@index([fleetId, labelId])
299
+ /// Removing a value checks that no ship carries it.
300
+ @@index([fleetId, valueId])
301
+ @@map("ship_labels")
302
+ }
303
+
206
304
  /// A ship secret, stored only as its hash. Ids start with crd_.
207
305
  /// The hash is unique across all fleets: finding a ship by its secret is one of the
208
306
  /// lookups not scoped by fleet (ADR 0007).
@@ -220,6 +318,9 @@ model Credential {
220
318
 
221
319
  /// At most one valid secret per ship.
222
320
  @@unique([shipId], map: "credentials_ship_id_valid_key", where: { invalidatedAt: null })
321
+ /// Every foreign key has an index leading with its columns, so deleting a
322
+ /// referenced row checks it with an index, not a scan (#331).
323
+ @@index([fleetId, shipId])
223
324
  @@map("credentials")
224
325
  }
225
326
 
@@ -268,6 +369,11 @@ model Message {
268
369
  @@unique([fleetId, senderShipId, idempotencyKey])
269
370
  /// A ship's current model is its newest message with a model.
270
371
  @@index([fleetId, senderShipId, createdAt])
372
+ /// Every foreign key has an index leading with its columns, so deleting a
373
+ /// referenced row checks it with an index, not a scan (#331).
374
+ @@index([fleetId, selectorShipId])
375
+ @@index([fleetId, inReplyToMessageId])
376
+ @@index([fleetId, resendOfMessageId])
271
377
  @@map("messages")
272
378
  }
273
379
 
@@ -315,6 +421,10 @@ model Delivery {
315
421
  @@index([fleetId, recipientType, state])
316
422
  /// A crew's own deliveries in flight, which its next receive returns first.
317
423
  @@index([fleetId, claimedByLeaseId, state])
424
+ /// Every foreign key has an index leading with its columns, so deleting a
425
+ /// referenced row checks it with an index, not a scan (#331).
426
+ @@index([fleetId, messageId])
427
+ @@index([fleetId, claimedByShipId])
318
428
  @@map("deliveries")
319
429
  }
320
430
 
@@ -344,6 +454,12 @@ model Event {
344
454
  delivery Delivery? @relation(fields: [fleetId, deliveryId], references: [fleetId, id], onDelete: Restrict)
345
455
 
346
456
  @@unique([fleetId, seq])
457
+ /// Every foreign key has an index leading with its columns, so deleting a
458
+ /// referenced row checks it with an index, not a scan (#331).
459
+ @@index([fleetId, actorShipId])
460
+ @@index([fleetId, shipId])
461
+ @@index([fleetId, messageId])
462
+ @@index([fleetId, deliveryId])
347
463
  @@map("events")
348
464
  }
349
465
 
@@ -416,6 +532,10 @@ model ConsoleSession {
416
532
 
417
533
  /// At most one live session holding argo's lease per fleet: signing in ends the previous one. Viewer sessions run beside it.
418
534
  @@unique([fleetId], map: "console_sessions_fleet_id_open_key", where: raw("ended_at IS NULL AND lease_id IS NOT NULL"))
535
+ /// Every foreign key has an index leading with its columns, so deleting a
536
+ /// referenced row checks it with an index, not a scan (#331).
537
+ @@index([fleetId, shipId])
538
+ @@index([fleetId, leaseId])
419
539
  @@map("console_sessions")
420
540
  }
421
541