# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ## [0.2.0] — 2026-06-08 ### Added - Domain models for calendars, event instances, event detail, attendees - `CalendarContract`-backed `CalendarRepository` with `ContentObserver`-driven live updates - DataStore preference for app-side hidden-calendar visibility - `READ_CALENDAR` permission flow (rationale + denied recovery + system-settings shortcut) - Wegwerfbarer Debug-Screen: zeigt alle Kalender + die nächsten 50 Termine ab heute - Hilt-Wiring für Data-Layer (Repository, DataSource, DataStore, IO-Dispatcher) - Unit-Tests für Cursor-Mapping (alle §8-Defensiv-Cases), Repository-Flows mit Turbine, DataStore round-trip - Instrumented smoke test against the real CalendarContract provider ### Changed - Redesigned launcher icon: line-art calendar with a stylized "1" inside (kalendae reference) and a small calendula bloom badge in the bottom-right corner. Replaces the simple "1"-only foreground from v0.1.0. Source SVG checked in at `design/icon/calendula_mark.svg`, also used to regenerate the F-Droid catalog `icon.png` (512x512) per locale. ## [0.1.1] — 2026-06-08 ### Fixed - F-Droid metadata format: renamed locale dirs from `de/` to `de-DE/`, `short_description.txt` to `summary.txt`, `full_description.txt` to `description.txt` (fastlane format that fdroidserver actually reads, matching the working HouseHoldKeaper convention) - Added `icon.png` (512x512) per locale; fdroidserver does NOT auto-extract icons from APKs that only contain XML adaptive icons (which is what minSdk-29 apps produce), so the app was rendered blank-iconed in F-Droid clients ### Changed - CI pipeline cleanup: `lintDebug`/`testDebugUnitTest` instead of full `lint`/`test` (cuts ~50% of lint work since release variant lint is redundant for V1 single-variant build) - Release workflow drops the lint step from its CI-sanity job since the same lint already ran via `ci.yaml` when the underlying commit hit main ## [0.1.0] — 2026-06-08 ### Added - Initial project scaffold (Gradle Kotlin DSL, Version Catalog, Hilt, DataStore) - Material 3 Expressive theme with Dynamic Color (API 31+) and slate-derived fallback - Adaptive launcher icon — stylized "1" on slate squircle (references *kalendae*) - German + English localization infrastructure - Permission declaration for `READ_CALENDAR` (no UI flow yet — that's Plan 02) - Gitea CI workflow: lint, unit tests, debug build, Trivy scan - Gitea release workflow: signed release APK + F-Droid metadata sync to Hetzner - F-Droid metadata stubs (DE + EN short/full descriptions) - `.planning/` project-tracking documents