chore: bump vendor/scrum4me to M13 (ClaudeJob + ClaudeWorker) and sync schema

This commit is contained in:
Janpeter Visser 2026-04-29 20:05:02 +02:00
parent 11c27662d4
commit d4536b0f96
2 changed files with 81 additions and 17 deletions

View file

@ -19,6 +19,21 @@ enum StoryStatus {
DONE DONE
} }
enum PbiStatus {
READY
BLOCKED
DONE
}
enum ClaudeJobStatus {
QUEUED
CLAIMED
RUNNING
DONE
FAILED
CANCELLED
}
enum TaskStatus { enum TaskStatus {
TO_DO TO_DO
IN_PROGRESS IN_PROGRESS
@ -56,14 +71,16 @@ model User {
created_at DateTime @default(now()) created_at DateTime @default(now())
updated_at DateTime @updatedAt updated_at DateTime @updatedAt
roles UserRole[] roles UserRole[]
api_tokens ApiToken[] api_tokens ApiToken[]
products Product[] products Product[]
todos Todo[] todos Todo[]
product_members ProductMember[] product_members ProductMember[]
assigned_stories Story[] @relation("StoryAssignee") assigned_stories Story[] @relation("StoryAssignee")
login_pairings LoginPairing[] login_pairings LoginPairing[]
asked_questions ClaudeQuestion[] @relation("ClaudeQuestionAsker") asked_questions ClaudeQuestion[] @relation("ClaudeQuestionAsker")
answered_questions ClaudeQuestion[] @relation("ClaudeQuestionAnswerer") answered_questions ClaudeQuestion[] @relation("ClaudeQuestionAnswerer")
claude_jobs ClaudeJob[]
claude_workers ClaudeWorker[]
@@index([active_product_id]) @@index([active_product_id])
@@map("users") @@map("users")
@ -80,13 +97,15 @@ model UserRole {
} }
model ApiToken { model ApiToken {
id String @id @default(cuid()) id String @id @default(cuid())
user User @relation(fields: [user_id], references: [id], onDelete: Cascade) user User @relation(fields: [user_id], references: [id], onDelete: Cascade)
user_id String user_id String
token_hash String @unique token_hash String @unique
label String? label String?
created_at DateTime @default(now()) created_at DateTime @default(now())
revoked_at DateTime? revoked_at DateTime?
claimed_jobs ClaudeJob[]
claude_worker ClaudeWorker?
@@index([token_hash]) @@index([token_hash])
@@map("api_tokens") @@map("api_tokens")
@ -109,8 +128,9 @@ model Product {
stories Story[] stories Story[]
todos Todo[] todos Todo[]
members ProductMember[] members ProductMember[]
active_for_users User[] @relation("UserActiveProduct") active_for_users User[] @relation("UserActiveProduct")
claude_questions ClaudeQuestion[] claude_questions ClaudeQuestion[]
claude_jobs ClaudeJob[]
@@unique([user_id, name]) @@unique([user_id, name])
@@unique([user_id, code]) @@unique([user_id, code])
@ -127,12 +147,14 @@ model Pbi {
description String? description String?
priority Int priority Int
sort_order Float sort_order Float
created_at DateTime @default(now()) status PbiStatus @default(READY)
updated_at DateTime @updatedAt created_at DateTime @default(now())
updated_at DateTime @updatedAt
stories Story[] stories Story[]
@@unique([product_id, code]) @@unique([product_id, code])
@@index([product_id, priority, sort_order]) @@index([product_id, priority, sort_order])
@@index([product_id, status])
@@map("pbis") @@map("pbis")
} }
@ -213,12 +235,54 @@ model Task {
created_at DateTime @default(now()) created_at DateTime @default(now())
updated_at DateTime @updatedAt updated_at DateTime @updatedAt
claude_questions ClaudeQuestion[] claude_questions ClaudeQuestion[]
claude_jobs ClaudeJob[]
@@index([story_id, priority, sort_order]) @@index([story_id, priority, sort_order])
@@index([sprint_id, status]) @@index([sprint_id, status])
@@map("tasks") @@map("tasks")
} }
model ClaudeJob {
id String @id @default(cuid())
user User @relation(fields: [user_id], references: [id], onDelete: Cascade)
user_id String
product Product @relation(fields: [product_id], references: [id], onDelete: Cascade)
product_id String
task Task @relation(fields: [task_id], references: [id], onDelete: Cascade)
task_id String
status ClaudeJobStatus @default(QUEUED)
claimed_by_token ApiToken? @relation(fields: [claimed_by_token_id], references: [id], onDelete: SetNull)
claimed_by_token_id String?
claimed_at DateTime?
started_at DateTime?
finished_at DateTime?
branch String?
summary String?
error String?
created_at DateTime @default(now())
updated_at DateTime @updatedAt
@@index([user_id, status])
@@index([task_id, status])
@@index([status, claimed_at])
@@map("claude_jobs")
}
model ClaudeWorker {
id String @id @default(cuid())
user User @relation(fields: [user_id], references: [id], onDelete: Cascade)
user_id String
token ApiToken @relation(fields: [token_id], references: [id], onDelete: Cascade)
token_id String
product_id String?
started_at DateTime @default(now())
last_seen_at DateTime @default(now())
@@unique([token_id])
@@index([user_id, last_seen_at])
@@map("claude_workers")
}
model ProductMember { model ProductMember {
id String @id @default(cuid()) id String @id @default(cuid())
product Product @relation(fields: [product_id], references: [id], onDelete: Cascade) product Product @relation(fields: [product_id], references: [id], onDelete: Cascade)

2
vendor/scrum4me vendored

@ -1 +1 @@
Subproject commit 1cb5772edd9b2ab75b551b73c6f95591ec6c0f32 Subproject commit 73087e9705abbe4ad53278ea95cb377cccd1e1f3