From 946ac8f960846e262c1114caaa813d7aa3fab5bf Mon Sep 17 00:00:00 2001 From: Madhura68 Date: Fri, 8 May 2026 11:00:07 +0200 Subject: [PATCH] feat(PBI-67/ST-1297): datamodel-velden voor job-model-selectie MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Voegt 8 nieuwe optionele velden toe verspreid over Product, Task en ClaudeJob ten dienste van de override-cascade: task.requires_opus → job.requested_* → product.preferred_* → kind-default Bestaande rijen krijgen NULL (Product/ClaudeJob) of false (Task) en vallen daarmee terug op de kind-defaults uit de resolver (ST-1298). Migration is additief: alleen ALTER TABLE ADD COLUMN, geen RENAME of DROP. Bestaande factories en seed-script blijven werken zonder aanpassing omdat alle nieuwe velden default-waardes hebben. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../migration.sql | 18 ++++++++++++++++++ prisma/schema.prisma | 8 ++++++++ 2 files changed, 26 insertions(+) create mode 100644 prisma/migrations/20260508085909_add_job_model_selection_fields/migration.sql 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?