You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Android now uses a real disclosure icon for the day/week course summary, keeps empty expanded and collapsed heights consistent, tightens typography and spacing, animates both height and chevron rotation, and reduces excess month-view bottom-navigation reserve.
iOS month rendering performs less repeated aggregation and avoids broad implicit animations, improving cross-month selection, reverse paging, date changes, and sheet-state transitions.
iOS/macOS mode changes now prepare direction before replacing page identity in the next render transaction, fixing stale exit edges when reversing between year and day/month views; pickers, year jumps, and keyboard commands share the same path.
Selecting an out-of-month date now animates in the correct direction and lands on that date on every graphical platform.
Desktop button, keyboard, and gesture navigation now share the same directional transition. Week all-day events align with their date columns, show deadline times, and open linked cards directly; the date header, all-day cell, and matching timeline lane are selectable.
Month and week views display only teaching weeks derived from the personal timetable's authoritative term start and actual course weeks; Gregorian week numbers are no longer mixed into this label.
Desktop month cells separate courses from all-day events without a month-agenda modal, while year-day details use a dedicated scrollable body.
macOS, Windows/Linux Tauri, and HarmonyOS PC now provide keyboard actions for sections, calendar modes, paging, Today, and dismissing overlays.
Favorites and custom feeds
Toggleable event details now have an independent star button, separate from the source link.
Up to 500 complete favorite snapshots are stored locally. Favorites remain on their original dates and in every calendar view when a source is disabled, unavailable, or removes an item.
Settings now includes an independent Favorite Management page. Local-data reset removes favorites as well.
Users can add a custom HTTPS JSON schedule feed documented in custom-schedule-api.md. Clients send credential-free, cookie-free GET requests; reject redirects and local/private/reserved literal addresses; enforce 2 MiB, 5000-item, 100-per-day, and 370-day limits; and cache successful responses for five minutes.
Built-in deadlines, UCloud assignments, and custom events are prewarmed independently for the calendar year after settings load. Normal selection, same-year paging, and view changes read memory state instead of starting network work from an animation path.
Platforms with system-calendar support can separately import locally saved favorite events, including their deadline time, source details, and official link.
Consistency, settings, and privacy
Automatic term detection now accepts the academic service's real pre-term week=0 shape, reads topInfo.semesterId, prefers each date row's zc, normalizes xqid=0 as Sunday, and derives the first Monday from the returned week and date.
With complete saved credentials and automatic detection enabled, clients perform one deduplicated schedule refresh at launch. Live academic metadata wins, a valid same-term schedule cache is second, and the current Shanghai-date suggestion is only a temporary fallback.
In automatic mode, a previous-term cache is excluded from calendars, widgets/service cards, desktop tray content, calendar import, and course notifications. A failed automatic refresh therefore cannot surface last term's courses as current data.
Default term ID and first-Monday values are empty on every platform. Manual mode rejects missing or malformed fields before saving or networking instead of silently inserting a fixed semester.
Selected-date, assignment, school-notice, and other-deadline colors now match in light and dark appearances on every platform; month/year cells retain up to two concentric priority borders.
Android removes Settings Spinner controls: multi-choice values use animated segmented controls, while every binary value uses a native Switch. Other platforms likewise use switch controls for binary settings.
HarmonyOS phone, foldable, tablet, and PC layouts receive the matching favorites, custom-feed, animation, color, teaching-week, and English semantics.
The bilingual privacy policy now explains that custom feeds receive no academic credentials or personal data and that favorites stay on-device, do not sync, and are removed by local-data reset.
Versions and distribution
Android: 0.2.5 (41).
Native iOS and macOS: 0.2.5 (69), archived and uploaded to TestFlight with local Xcode. Apple artifacts are excluded from GitHub Release.
HarmonyOS: 0.2.5 (1002008), locally built and unit-tested; AGC distribution still requires maintainer signing configuration.
GitHub Release scope: Windows x64 NSIS; Linux arm64/x86_64 Debian, AppImage, CLI, and TUI; and maintainer-signed Android APK/AAB. .sha256 files remain verification-only and are not attached.