Sangeetha-Grantha

Metadata Value
Status Done
Version 1.3.0
Last Updated 2026-09-20
Author Sangeetha Grantha Team

Track: Library Upgrades — September 2026

ID: TRACK-142 Status: Done Owner: Sangeetha Grantha Team Created: 2026-09-10 Updated: 2026-09-20

Goal

Refresh Kotlin, React, and Python worker dependencies against Maven Central, npm, and PyPI as of 10 Sep 2026. Apply TRACK-018 isolated batches: drop-in patches, then GA majors (Flyway 13, Logback 1.6, datetime 0.8, Vitest 5, jsdom/jest-dom, JS genai 2.x). Leave only RCs, alphas, and TypeScript 7 (blocked on 7.1 programmatic API).

Context

Intent

Status: Accepted Accepted by: User (asked to run a 10 Sep refresh with TRACK-142, then to factor in the major upgrades) Accepted at: 2026-09-10

Problem

Pins last moved in TRACK-135 (29 Aug). Twelve days later several stables have shipped: Kotlin 2.4.20 (GA 7 Sep), React 19.3.0, AGP 9.4.0, Vitest 5.0.0 (now GA), Flyway 13.5.0, Logback 1.6.3, kotlinx-datetime 0.8.0, plus JVM/frontend/Python patch lines. PostgreSQL JDBC is already on 42.7.13 (CVE-2026-54291 patched).

Proposed outcome

Batches 1–3 land: drop-ins, Kotlin 2.4.20 / React 19.3 / AGP 9.4, then GA majors. Docs match source files. Only RCs/alphas and TypeScript 7 stay deferred.

Affected users and systems

Backend (modules/backend), shared KMP (modules/shared), admin web (modules/frontend/sangita-admin-web), extraction worker (tools/krithi-extract-enrich-worker), Flyway image pins (compose.yaml, CI, worker integration tests), Bun/mise/CI toolchain pins.

Constraints

Open questions

None. User asked to include the GA majors in this refresh.

Spec

Status: Accepted Accepted by: User (asked to run the refresh, then include majors) Accepted at: 2026-09-10

Requirements

  1. No JDBC bump (already 42.7.13, latest).
  2. Batch 1 drop-ins:
    • JVM: JWT 4.6.1, AWS SDK 2.54.15, Google Auth 1.52.0.
    • Frontend: ESLint 10.10.0, typescript-eslint 8.70.0, Playwright 1.63.0, user-event 14.6.7, eslint-plugin-react-refresh 0.5.6, globals 17.12.0, autoprefixer 10.5.5, postcss 8.5.28, @types/react/@types/react-dom 19.3.0, pg/@types/pg 8.23.x.
    • Python lock: psycopg 3.3.5, google-genai 2.22.0, RapidFuzz 3.14.6, ruff 0.16.6.
    • Toolchain: Bun 1.4.01.4.2 (mise + CI).
  3. Batch 2a: Kotlin 2.4.102.4.20 (GA 7 Sep; Gradle 9.7.1 already supported).
  4. Batch 2b: React / react-dom 19.2.819.3.0.
  5. Batch 2c: AGP 9.3.29.4.0 (requires Gradle ≥9.6.0; wrapper stays 9.7.1). compileSdk 37 already set.
  6. Batch 3a: kotlinx-datetime 0.7.10.8.0; Logback 1.5.381.6.3 + logstash-encoder 9.0.
  7. Batch 3b: Flyway 12.11.013.5.0 (catalog + compose.yaml + CI + worker FLYWAY_IMAGE).
  8. Batch 3c: Vitest 4.1.115.0.0, jsdom 26.1.030.0.1, @testing-library/jest-dom 6.9.17.0.1.
  9. Batch 3d: @types/node 22.14.026.5.1 (ts6.0 tag). Do not ship frontend @google/genai. The admin web has no TS import of the SDK; LLM calls go through the Kotlin API (GeminiApiClient / transliterate) and the Python worker. Remove the unused package, the importmap entry, and the Vite define that would bake GEMINI_API_KEY into the browser bundle. eslint-plugin-react-hooks stays 7.0.1 (7.1.1 immutability still errors on BulkImport/CuratorReview — TRACK-135 loading-loop).
  10. Sync current-versions.md.

Design

All JVM versions live in gradle/libs.versions.toml. Flyway Community image tags must match the catalog. Frontend caret ranges in package.json then bun install. Worker lock via uv lock --upgrade-package. Bun pin in .mise.toml plus CI oven-sh/setup-bun and fallback installer.

Flagged concerns

Open questions carried forward

None for this slice.

Plan

Status: Accepted Accepted by: User (asked to run the refresh and include majors) Accepted at: 2026-09-10

Files that change

Order of work

  1. Create this track and branch track-142-library-upgrades-sep-2026.
  2. Batch 1 version pins + frontend bun install + worker uv lock + Bun 1.4.2.
  3. Batch 2a–2c: Kotlin 2.4.20, React 19.3, AGP 9.4.0.
  4. Batch 3a–3d: datetime/logback, Flyway 13, Vitest 5 + jsdom/jest-dom, genai 2.x / types/node 26 / react-hooks 7.1.1.
  5. Sync version docs.
  6. Proof commands below.

Risks

Proof

Implementation Plan

Deferred (not this session)

Progress Log