feat(models): claude-opus-5/sonnet-5 in seeds, prijzen-sync + Idea.description-migratie #230

Merged
janpeter merged 2 commits from feat/m39-web-models into main 2026-09-05 20:22:43 +02:00
Owner

M39 Fase A — taak A3 (web). Submodule → shared-main (fde0e0a, incl. A1).

  • seed-data: ideaReviewRow → claude-opus-5, reviewRow → claude-sonnet-5.
  • Prijzen één bron: CLAUDE_PRICE_TABLE + buildClaudeUsdProxyRateCard (+round6, cache-ratio's, source_url) verplaatst naar het side-effect-vrije scripts/rate-card-data.ts; sync-model-prices.ts én prisma/seed.ts lezen die bron (nooit importeren uit de zelf-uitvoerende sync-script). seed.ts leidt model_prices nu af uit CLAUDE_PRICE_TABLE (opus-4-7 15/75→5/25, haiku 0.8/4→1/5, opus-5 5/25 + sonnet-5 2/10 toegevoegd). CANDIDATE_MODEL_REGEX verruimd → /^claude-(fable|mythos|opus|sonnet|haiku)-[45](-|$)/.
  • docs: job-model-selection.md matrix + cascade + Opus 5 thinking-default-note; scripts/README.md.
  • Migratie 20260905180000_idea_description_64000: de bump consumeert óók shared #54 (Idea.description 4000→64000) die web nog miste; gevalideerd tegen wegwerp-Postgres (migrate deploy OK, kolom=64000, migrate diff = 0). Toepassen op server-DB/Neon = deploy-stap (A5/A6).

Verify: lint + tsc + 2702 tests groen. Consumeert scrum4me-shared PR #55. Plan §3 A3.

M39 Fase A — taak A3 (web). Submodule → shared-main (fde0e0a, incl. A1). - seed-data: ideaReviewRow → claude-opus-5, reviewRow → claude-sonnet-5. - Prijzen één bron: `CLAUDE_PRICE_TABLE` + `buildClaudeUsdProxyRateCard` (+round6, cache-ratio's, source_url) verplaatst naar het side-effect-vrije `scripts/rate-card-data.ts`; sync-model-prices.ts én prisma/seed.ts lezen die bron (nooit importeren uit de zelf-uitvoerende sync-script). seed.ts leidt model_prices nu af uit CLAUDE_PRICE_TABLE (opus-4-7 15/75→5/25, haiku 0.8/4→1/5, opus-5 5/25 + sonnet-5 2/10 toegevoegd). CANDIDATE_MODEL_REGEX verruimd → `/^claude-(fable|mythos|opus|sonnet|haiku)-[45](-|$)/`. - docs: job-model-selection.md matrix + cascade + Opus 5 thinking-default-note; scripts/README.md. - **Migratie** `20260905180000_idea_description_64000`: de bump consumeert óók shared #54 (Idea.description 4000→64000) die web nog miste; gevalideerd tegen wegwerp-Postgres (migrate deploy OK, kolom=64000, migrate diff = 0). Toepassen op server-DB/Neon = deploy-stap (A5/A6). Verify: lint + tsc + 2702 tests groen. Consumeert scrum4me-shared PR #55. Plan §3 A3.
M39 Fase A taak A3. Submodule vendor/scrum4me-shared gebumpt naar shared-main
(fde0e0a, incl. A1). getKindDefault levert nu opus-5/sonnet-5.

- seed-data/job-kind-defaults.ts: ideaReviewRow → claude-opus-5, reviewRow →
  claude-sonnet-5.
- Prijzen één bron: CLAUDE_PRICE_TABLE + buildClaudeUsdProxyRateCard (+ round6,
  cache-ratio's, source_url) verplaatst naar het side-effect-vrije
  scripts/rate-card-data.ts. sync-model-prices.ts en prisma/seed.ts lezen béíde
  die bron (nooit importeren uit de zelf-uitvoerende sync-model-prices.ts).
  seed.ts leidt model_prices nu af uit CLAUDE_PRICE_TABLE i.p.v. een eigen
  array (die had opus-4-7 op 15/75 — nu 5/25, sync-tabel leidend). Haiku
  1.0/5.0 (was 0.8/4.0). opus-5 5/25, sonnet-5 2/10 toegevoegd.
- CANDIDATE_MODEL_REGEX verruimd naar /^claude-(fable|mythos|opus|sonnet|haiku)-[45](-|$)/
  (opus/sonnet 5 zijn ongedateerde ids); geverifieerd dat 3.x + non-claude niet matchen.
- docs: job-model-selection.md kind-default-matrix + cascade-regel → opus-5/sonnet-5,
  + note over Opus 5 thinking-default-áán bij budget 0. scripts/README.md bijgewerkt.
- Tests: web job-config/seed-data-asserties → A1-waarden; fixture-data (historische
  job/usage/review-round-rijen) behouden nog-geldige oude ids.

NB (buiten M39-scope, flag voor JP): de bump naar shared-main consumeert óók
shared #54 (Idea.description VarChar 4000→64000, al in shared main vóór A1) —
web liep daarop achter (trackte 6852386) en heeft er GEEN migratie voor.
schema.prisma toont nu 64000; een web-migratie is nodig vóór de web-deploy (A5).
Zie het losse JP-punt; niet in deze commit opgelost.

Verify: npm run verify groen (lint + tsc + 2702 tests). Plan §3 A3 + §1.1/§1.4/§1.5.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
chore(migrations): Idea.description → VARCHAR(64000) (consume shared #54)
All checks were successful
CI / Lint, Typecheck, Test & Build (pull_request) Successful in 6m48s
CI / Deploy Manual (workflow_dispatch) (pull_request) Has been skipped
CI / Detect deploy-relevant changes (pull_request) Has been skipped
CI / Deploy Preview (PR) (pull_request) Has been skipped
CI / Deploy Production (main) (pull_request) Has been skipped
0db911166f
M39 Fase A. De A3-submodule-bump naar scrum4me-shared main tilt web óók over
shared PR #54 (Idea.description 4000→64000), die web nog niet had geconsumeerd
en waar geen web-migratie voor bestond. Deze migratie sluit dat gat zodat web
(de designated migrator) niet schema-ahead van zijn migratiehistorie staat.

Nullable VARCHAR-verbreding → in Postgres metadata-only (geen tabel-rewrite),
niet-destructief. Gevalideerd tegen een wegwerp-Postgres: `prisma migrate
deploy` past alle migraties incl. deze toe; information_schema toont
ideas.description = 64000; `prisma migrate diff --from-migrations
--to-schema-datamodel` = 0 verschillen (migratiehistorie ⟷ schema.prisma
volledig verzoend).

Toepassen op server-DB + Neon gebeurt bij de deploy (A5/A6), onder JP's go.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
janpeter/Scrum4Me!230
No description provided.