From 59d118aba1d7f48efde9d4adac7c42965e337778 Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Mon, 8 Jun 2026 15:01:50 +0200 Subject: [PATCH] docs(planning): pin Kotlin/KSP/AGP patch versions, document KSP constraint Code review on Task 2 flagged that 'Kotlin 2.3' could mislead a future reader into bumping to 2.4.0, which has no KSP release yet. Spell out the full versions and the KSP pairing constraint in both PROJECT.md (Stack section) and REQUIREMENTS.md (Constraints section). Co-Authored-By: Claude Opus 4.7 (1M context) --- .planning/PROJECT.md | 7 +++++-- .planning/REQUIREMENTS.md | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.planning/PROJECT.md b/.planning/PROJECT.md index da53fb1..4b500c0 100644 --- a/.planning/PROJECT.md +++ b/.planning/PROJECT.md @@ -20,8 +20,11 @@ icon, i18n, Hilt, DataStore, green CI. ## Stack -Kotlin 2.3, Jetpack Compose + Material 3 Expressive (alpha for 1.5 APIs), -Hilt, DataStore. Gradle Kotlin DSL with Version Catalog. AGP 9.1, Gradle 9.5. +Kotlin 2.3.21 (paired with KSP 2.3.9 — Kotlin 2.4.0 has no KSP release +yet, do not upgrade until one ships). Jetpack Compose + Material 3 +Expressive 1.5.0-alpha21 (alpha is intentional — Expressive APIs only +live in the 1.5 alpha line). Hilt 2.59.2, DataStore. Gradle Kotlin DSL +with Version Catalog. AGP 9.1.1, Gradle 9.5.1. JVM target 17. Read-only V1, write support V2. diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md index fb7820e..b33fadf 100644 --- a/.planning/REQUIREMENTS.md +++ b/.planning/REQUIREMENTS.md @@ -37,6 +37,7 @@ See full design spec: `docs/superpowers/specs/2026-06-08-calendar-app-design.md` ## Constraints - **Tech stack:** Kotlin + Jetpack Compose + Material 3 Expressive, Hilt, DataStore +- **Tech stack pin:** Hilt 2.59.2 + KSP 2.3.9; Kotlin 2.3.21 (KSP for Kotlin 2.4.0 not released yet). Material 3 pinned to `1.5.0-alpha21` (Expressive APIs only exist in alpha). Re-evaluate when KSP/Material3 stable land. - **Platform:** Android 10+ (API 29 minimum), Android 16 (API 36) target - **Offline-first:** all data lives in `CalendarContract`; no app-side network - **Privacy:** zero telemetry, no analytics