# 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.3.0] — 2026-06-10 ### Added - Month view (S1): Material 3 Expressive card-per-day grid (only the current month's weeks; neighbouring days left blank), per-day event dots with "+N" overflow, today emphasised via `primaryContainer`, spring-based press feedback from the active motion scheme, swipe + drawer navigation, Loading/Failure/Success states - Week view (S2): vertical time schedule with overlap-resolved lanes, separate all-day strip, midnight-spanning events clipped per day, swipe navigation, Loading/Failure/Success states - Day view (S3): single-column slice of the week schedule reusing its overlap-lane layout, per-day swipe navigation, noon-centred scroll that persists across swipes, animated all-day strip, compact top bar with the full date, Loading/Failure/Success states - Functional view-switcher (M1) cycling Month ↔ Week ↔ Day - Shared calendar UI building blocks in `ui/common/` (navigation drawer, failure screen, view-switcher pill, color pastelizer, observable locale) ### Removed - Throwaway debug screen — superseded by the month view ## [0.2.1] — 2026-06-09 ### Changed - Regenerated the F-Droid catalog `icon.png` (512x512, both locales) so it is pixel-faithful to the on-device adaptive launcher icon: same slate background (`#5C6B7A`), off-white mark (`#FAF6F0`), and the foreground group transform (`scale 0.5`, pivot `114,108`, translate `2,8`) baked in. - Added `design/icon/calendula_launcher.svg` — the composed full-bleed icon (background + transformed mark) as the single source of truth for store/F-Droid renders. ## [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