summaryrefslogtreecommitdiff
path: root/gradle
AgeCommit message (Collapse)Author
2026-09-24UI: implement the five-frame FSMP shell (2.22) with a month calendar, and ↵Charlie Root
add the Calendar CMP library The UI module previously held a single welcome card. It now implements the fixed skeleton from the FSMP front-end design (section 2.22, decided 2026-09-24) as Compose Multiplatform code shared by every target: Home now: TODO chips + today (timetable / same-day notices / deadlines) Timeline flow: posts with answer/confirm badges and contact bubbles Calendar when: month grid -> tap a day -> day timeline (hour-axis rows mixing timetable and auto-source events, per 2.21) Note what remains: notes / tasks / documents / artefacts with WorkType filters and the unsubmitted view Live now-connect: live / scheduled / recordings, teacher start button Chrome follows the decided responsive rules rather than invented layout: the wide form gets the left rail (title + date/period, search, the five frames in the fixed order Home/Timeline/Calendar/Note/Live, spacer, [+][gear][D/L] at the bottom), the narrow form gets a search field on top and a bottom tab bar with the gear at its right end. The pie sits bottom-right on both forms (centre W, four quadrants) and the [+] sits at its left as a pair, swapping under the left-handed flip setting; the contact input bar appears only on wide Timeline and carries no destination chip, because the pie itself shows scope and destination. Frame bodies intentionally hold sample values - the design leaves in-frame placement and visual tuning to this prototype, so only the skeleton is asserted. Calendar dependency: kizitonwose/Calendar (MIT), artifact com.kizitonwose.calendar:compose-multiplatform, which supports Android/iOS/js/ WasmJs/Desktop like the rest of the build. Pinned to 2.7.0 because that is the release whose required Kotlin (2.1.21) matches this project; 2.8.0 needs Kotlin 2.2 and 2.10.x needs Kotlin 2.3 plus Compose 1.10, so either would force a toolchain upgrade well beyond this change. One trap worth recording: the library carries its OWN YearMonth (com.kizitonwose.calendar.core.YearMonth, with its own now()/plusMonths()/ minusMonths() extensions) because kotlinx-datetime 0.6.2 - the version the library declares - has no YearMonth at all. That type only landed in kotlinx-datetime 0.7.0, which is what this project uses. Importing kotlinx.datetime.YearMonth therefore compiles to a type mismatch inside rememberCalendarState; the code must use the library's type. Do not "fix" this by forcing kotlinx-datetime upward - the library's binary is bound to the 0.6.2 shape.
2026-09-03apps/android: request kotlin.android without version (already on classpath ↵ketsuban
via KMP)
2026-09-03android app shell + bundleApk artifact (buildbot deploy); ui module gains ↵ketsuban
androidTarget
2026-09-03kukuri reset: welcome-only app shell + bridge/vendor modules + CI infraketsuban
Full pre-reset history preserved on branch backup/full-pre-reset (2ccab79).