diff --git a/prisma/migrations/20260508085909_add_job_model_selection_fields/migration.sql b/prisma/migrations/20260508085909_add_job_model_selection_fields/migration.sql new file mode 100644 index 0000000..20b891a --- /dev/null +++ b/prisma/migrations/20260508085909_add_job_model_selection_fields/migration.sql @@ -0,0 +1,18 @@ +-- PBI-67: Model + mode-selectie per ClaudeJob-kind +-- +-- Additieve migration: nieuwe optionele kolommen op products, tasks en +-- claude_jobs voor de override-cascade +-- task.requires_opus → job.requested_* → product.preferred_* → kind-default +-- Bestaande rijen krijgen NULL (Product/ClaudeJob) of false (Task.requires_opus) +-- en vallen daarmee terug op kind-defaults uit de resolver. + +ALTER TABLE "products" ADD COLUMN "preferred_model" TEXT; +ALTER TABLE "products" ADD COLUMN "thinking_budget_default" INTEGER; +ALTER TABLE "products" ADD COLUMN "preferred_permission_mode" TEXT; + +ALTER TABLE "tasks" ADD COLUMN "requires_opus" BOOLEAN NOT NULL DEFAULT false; + +ALTER TABLE "claude_jobs" ADD COLUMN "requested_model" TEXT; +ALTER TABLE "claude_jobs" ADD COLUMN "requested_thinking_budget" INTEGER; +ALTER TABLE "claude_jobs" ADD COLUMN "requested_permission_mode" TEXT; +ALTER TABLE "claude_jobs" ADD COLUMN "actual_thinking_tokens" INTEGER; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 8106a3b..ef65cce 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -208,6 +208,9 @@ model Product { definition_of_done String auto_pr Boolean @default(false) pr_strategy PrStrategy @default(SPRINT) + preferred_model String? + thinking_budget_default Int? + preferred_permission_mode String? archived Boolean @default(false) created_at DateTime @default(now()) updated_at DateTime @updatedAt @@ -363,6 +366,7 @@ model Task { status TaskStatus @default(TO_DO) verify_only Boolean @default(false) verify_required VerifyRequired @default(ALIGNED_OR_PARTIAL) + requires_opus Boolean @default(false) // Override product.repo_url for branch/worktree/push purposes. Set when // a task targets a different repo than its parent product (e.g. an // MCP-server task tracked under the main product's PBI). Falls back to @@ -408,6 +412,10 @@ model ClaudeJob { output_tokens Int? cache_read_tokens Int? cache_write_tokens Int? + requested_model String? + requested_thinking_budget Int? + requested_permission_mode String? + actual_thinking_tokens Int? plan_snapshot String? base_sha String? head_sha String?