Sangeetha-Grantha

Metadata Value
Status Active
Version 1.8.0
Last Updated 2026-09-20
Author Sangeetha Grantha Team
Document Type Current guide

Current Technology Versions


Documentation reference for repository-pinned and lockfile-resolved dependency versions. Source manifests and lockfiles are authoritative; this is not a claim about the latest upstream releases.

All documentation should reference this file instead of hardcoding version numbers.

When updating dependencies, update the source file first, then sync this document.


Development Toolchain

Source: .mise.toml

Tool Version Notes
Java temurin-25 Temurin distribution, JVM toolchain
Bun 1.4.2 Frontend package manager & runtime
Python 3.14 (mise); >=3.14 (worker) Extraction/enrichment and indexing; migrations run through Flyway
Docker Compose latest Container orchestration

Backend Stack (Kotlin/JVM)

Source: gradle/libs.versions.toml

Core Framework

Library Version Purpose
Kotlin 2.4.20 Language version
Ktor 3.6.0 HTTP server & client framework
Exposed 1.5.0 SQL ORM (DSL-based)
Koin 4.2.2 Dependency injection

Kotlinx Libraries

Library Version Purpose
Coroutines 1.11.0 Async programming
DateTime 0.8.0 Cross-platform date/time (TRACK-142; Instant already on kotlin.time)
Serialization JSON 1.11.0 JSON serialization

Database & Infrastructure

Library Version Purpose
PostgreSQL Driver 42.7.13 JDBC driver (CVE-2026-54291 fix)
HikariCP 7.1.0 Connection pooling
Logback 1.6.3 Logging framework
Logstash Encoder 9.0 JSON log formatting
Commons CSV 1.14.1 CSV parsing
dotenv-kotlin 6.5.1 Environment variable loading

Security & Auth

Library Version Purpose
JWT (Auth0) 4.6.1 JWT token handling
Google Auth 1.52.0 OAuth2 (future SSO)
password4j 1.8.4 argon2id password hashing (TRACK-114)

Build & Packaging

Library Version Purpose
Shadow Plugin 9.6.1 Fat JAR packaging
Micrometer 1.17.1 Metrics & monitoring

Testing

Library Version Purpose
MockK 1.14.11 Kotlin mocking framework
AndroidX Test (core/runner) 1.7.0 Rasika Android instrumentation (TRACK-140 N01)
AndroidX Test JUnit 1.3.0 androidx.test.ext:junit for RasikaJourneyTest

Frontend Stack (React/TypeScript)

Source: modules/frontend/sangita-admin-web/package.json

Core Framework

Library Version Purpose
React 19.3.0 UI framework
TypeScript 6.0.x Type-safe JavaScript (TypeScript 7 deferred — no programmatic API until 7.1)
Vite 8.3.0 Build tool & dev server (Rolldown bundler)

Styling & UI

Library Version Purpose
Tailwind CSS 4.3.3 Utility-first CSS

Routing & State

Library Version Purpose
React Router 7.18.4 Client-side routing
TanStack Query 5.103.1 Data fetching & caching

Development & Testing

Library Version Purpose
ESLint 10.11.0 Code linting (via bun run; needs Bun runtime). eslint-plugin-react-hooks pinned 7.0.1 — 7.1.1’s react-hooks/immutability still errors on BulkImport/CuratorReview (TRACK-135 loading-loop).
Vitest 5.0.1 Unit testing
Playwright 1.63.0 E2E testing

Python Tools

Extraction Worker (tools/krithi-extract-enrich-worker)

Source: tools/krithi-extract-enrich-worker/pyproject.toml · Lock: uv.lock

Core Libraries

Library Version Purpose
PyMuPDF 1.28.2 Primary PDF text extraction
pdfplumber 0.11.10 Tabular PDF extraction fallback
pytesseract 0.3.13 Tesseract OCR wrapper
indic-transliteration 2.3.82 Script conversion (Devanagari ↔ Tamil/Telugu/etc.)
Pydantic 2.13.5 Schema validation
Pydantic Settings 2.15.0 Environment-based config validation
psycopg 3.3.6 PostgreSQL driver (async-capable)
google-genai >=2.0.0 (resolved 2.24.0) Unified Gemini SDK; 2.0 breaking changes are Interactions-API-only — the worker’s generate_content/batches surface is unaffected (TRACK-124)
RapidFuzz 3.14.6 Fast fuzzy matching
HTTPX 0.28.1 Async HTTP client
BeautifulSoup4 4.15.0 HTML parsing
structlog 26.1.0 Structured JSON logging
Click 8.5.0 CLI framework

Development & Testing

Library Version Purpose
pytest 9.1.1 Test framework
Ruff 0.16.8 Linter & formatter
mypy 2.3.1 Static type checker

Migration Tool

Component Version Notes
Flyway Community 13.7.0 Single migration engine (ADR-013). Make/dev/CI via flyway/flyway:13.7.0-alpine; Kotlin Testcontainers via the Flyway JVM API. Pinned in gradle/libs.versions.toml (flyway) and compose.yaml.

Migrations are standardized on Flyway Community (ADR-013). The previous Python tool (tools/db-migrate, psycopg >=3.1) is superseded and archived (archive/tools/db-migrate/, TRACK-110).

Test & CI Substrate

Component Version Notes
Testcontainers 2.0.5 org.testcontainers:testcontainers-postgresql (artifact renamed in 2.x; PostgreSQLContainer now in org.testcontainers.postgresql, no self-type generic). Integration tests self-provision pgvector/pgvector:pg18 (TRACK-108). Pinned in gradle/libs.versions.toml (testcontainers). TRACK-123.
GitHub Actions CI .github/workflows/ci.yml (TRACK-111): backend unit/integration, Flyway migrate+validate, frontend typecheck+build, worker pytest. Blocking, PR-triggered (D7/D8).

Shared integration-test infrastructure (IntegrationTestBase, SangitaPostgres, TestDatabase, TestFixtures) lives in the :modules:backend:test-support module (TRACK-111, D11), consumed by both the api and dal test classpaths.


Mobile Stack (Kotlin Multiplatform)

Source: gradle/libs.versions.toml

Library Version Purpose
Kotlin 2.4.20 Shared with backend
Compose Multiplatform 1.12.0 Cross-platform UI (material3 1.9.0 own train; icons-extended frozen 1.7.3; iosX64 dropped by CMP 1.11+; compileSdk 37 required by AndroidX Compose 1.12)
JetBrains Lifecycle (KMP) 2.11.0 lifecycle-runtime-compose / lifecycle-viewmodel-compose companion to CMP 1.12 (TRACK-138)
JetBrains Navigation Event (KMP) 1.1.0 navigationevent-compose companion to CMP 1.12; NavigationEventHandler replaces deprecated Compose BackHandler (TRACK-142)
Android Gradle Plugin 9.4.1 Android build (Gradle wrapper 9.7.1)
Ktor Client 3.6.0 HTTP client

Cloud & External Services

Source: gradle/libs.versions.toml

Library Version Purpose
AWS SDK 2.55.1 S3 storage (future)
Google Auth 1.52.0 SSO integration (future)

Database

Component Version Notes
PostgreSQL 18 (pgvector image) Docker image: pgvector/pgvector:pg18 (compose.yaml, Testcontainers, CI Flyway job). Ships PostgreSQL 18 plus the vector extension required by V58.

Version History

Date Change
2026-09-20 TRACK-142 Batch 4: AGP 9.4.0→9.4.1, Ktor 3.5.2→3.6.0 (receiveNullablereceive<T?>()), AWS SDK 2.54.15→2.55.1, Flyway 13.5.0→13.7.0 (catalog + Compose/CI/worker image), Vite 8.2.2→8.3.0, Vitest 5.0.0→5.0.1, React Router 7.18.4, TanStack Query 5.103.1, ESLint 10.11.0, plus frontend patch/minor and worker psycopg 3.3.6 / google-genai 2.24.0 / Ruff 0.16.8. jsdom stays 30.0.1 — 30.1.0 fails Vitest 5.0.1 worker startup (addEventListener EventTarget brand check). TypeScript 7 / CMP 1.13-alpha / serialization 1.12-RC / Gradle 9.8-rc / eslint-plugin-react-hooks 7.1.1 still deferred.
2026-09-09 TRACK-140: recorded AndroidX Test core/runner 1.7.0 and ext-junit 1.3.0 for Rasika instrumentation.
2026-09-05 TRACK-138: recorded JetBrains Lifecycle KMP 2.11.0 (CMP 1.12 companion) for Rasika mobile.
2026-08-29 Bun 1.3.7→1.4.0 (mise pin, CI oven-sh/setup-bun + fallback installer, monorepo-orchestration skill). Frontend bun install + typecheck + build green on 1.4.0.
2026-07-10 TRACK-122 (Batch 3a): Kotlin 2.3.0→2.4.0, Compose Multiplatform 1.10.0→1.11.1. CMP 1.11 fallout: compose.* plugin accessors deprecated → explicit catalog deps (material3 on its own 1.9.0 train, icons-extended frozen 1.7.3); iosX64 no longer published by CMP → target dropped from :shared:presentation; -Xexplicit-backing-fields now in-language (flag removed); Kotlin/Native sourceInfoType=nonenoop. Backend + KMP builds and full test suites green.
2026-07-10 TRACK-124 (Batch 3c): google-genai floor >=1.0.0→>=2.0.0 (resolved 1.34.0→2.9.0); 2.0 breaking changes confined to the Interactions API, worker call sites untouched; 144 worker tests green incl. HTTP-stubbed SDK round-trips.
2026-07-10 TRACK-123 (Batch 3b): Testcontainers 1.21.4→2.0.5 — artifact renamed to org.testcontainers:testcontainers-postgresql, PostgreSQLContainer moved to org.testcontainers.postgresql and lost its self-type generic; full backend + DAL integration suites green.
2026-07-08 TRACK-121 (frontend major toolchain): TypeScript 5.9→6.0, ESLint 9.39.2→10.6.0 (+ typescript-eslint 8.63.0, @eslint/js 10.0.1, eslint-plugin-react-refresh 0.5.3), Vite 7.3.1→8.1.3 (Rolldown), @vitejs/plugin-react 5→6.0.3, Vitest 4.1.9→4.1.10. Vitest 5 deferred (beta). Added bunfig.toml ([run] bun = true) — ESLint 10 / Vite 8 need util.styleText, absent in the box’s EOL Node 21, so bun run scripts execute under Bun; direct calls use bunx --bun.
2026-06-24 TRACK-120 (Batch 1 safe upgrades): PostgreSQL JDBC 42.7.10→42.7.11 (CVE-2026-42198), Ktor 3.4.0→3.5.0, Koin 4.1.1→4.2.1, Logback 1.5.32→1.5.34, Flyway 12.8.1→12.9.0, React 19.2.4→19.2.7, TanStack Query 5.90.21→5.101.1, Tailwind 4.2.1→4.3.1, React Router 7.13.1→7.18.0, Vitest 4.0.18→4.1.9, Playwright 1.40.0→1.61.1, pydantic 2.12.5→2.13.4, psycopg 3.3.2→3.3.4, PyMuPDF 1.27.1→1.27.2.3
2026-06-06 TRACK-106 re-sync: Bun 1.3.6→1.3.7, Python version pin corrected to 3.11+ (mise.toml), Last Updated synced
2026-03-10 Added Python tools section (extraction worker + db-migrate) with resolved versions from uv.lock
2026-03-10 Dependency updates: PostgreSQL 42.7.10, Logback 1.5.32, Jsoup 1.22.1, Caffeine 3.2.3, Tailwind 4.2.1, React Router 7.13.1, TanStack Query 5.90.21
2026-03-10 Synced all versions from source files (gradle/libs.versions.toml, package.json, compose.yaml)
2026-01-30 Initial auto-generated from source files

How to Use This File

In Documentation

Instead of hardcoding versions, reference this file:

For current versions, see [Current Versions](/Sangeetha-Grantha/application_documentation/00-meta/current-versions.html).

Updating Versions

  1. Update the source file (gradle/libs.versions.toml, package.json, or .mise.toml)
  2. Update this file to match
  3. Commit both the source file and the updated current-versions.md

Section index · Documentation home · Feature status