Releases: huneyoliv/desky
Releases · huneyoliv/desky
Release list
Desky v1.0.7
Fixed
- MSIX OAuth Credential Erasure: Configured
build_windows: falseinpubspec.yaml(msix_config) and passed--build-windows falsetodart run msix:create --storein.github/workflows/release.yml. By default,msix:createre-invokedflutter build windowswithout compilation flags, overwriting the release binary and stripping out--dart-definecredentials (GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET,DISCORD_CLIENT_ID). Skipping the redundant build step preserves the credentials compiled into the release binaries for Microsoft Store certification. - Strict Environment Credential Enforcement: Cleared hardcoded fallback client identifiers in
EnvConfig(defaultGoogleClientId = ''anddefaultDiscordClientId = ''), guaranteeing that credentials are strictly loaded from local.envfiles in development or via compile-time--dart-definearguments injected by GitHub Actions secrets in release builds. - Discord RPC Connection Guard: Added defensive check to bypass Discord named pipe / socket connection attempts when
_clientIdis empty. - YPT API Device Model Contract: Restored
defaultDeviceModelconstant to align with YPT backend device model requirements.
Full Changelog: v1.0.6...v1.0.7
Desky v1.0.6
Fixed
- macOS Ad-hoc Codesign SIGKILL Crash: Removed restricted
keychain-access-groupsentitlement fromRelease.entitlementsandDebugProfile.entitlements. This entitlement required an Apple Developer Program provisioning profile; under CI/CD ad-hoc code signing (codesign -s -), macOS kernel AMFI killed the application on launch withEXC_CRASH (SIGKILL (Code Signature Invalid))/Termination Reason: CODESIGNING 1.flutter_secure_storagesafely operates in its isolated App Sandbox keychain without this entitlement. - macOS Graphics Glitches & Black Screen: Disabled Flutter Impeller rendering backend on macOS via
FLTEnableImpeller = falseinmacos/Runner/Info.plist, preventing GPU Metal framebuffer corruption, blank screens, and diagonal artifacts on macOS Monterey and older Intel/Apple Silicon GPUs. - Desktop Window Background Solidification: Changed desktop
windowOptions.backgroundColorfrom transparent to solid darkAppColors.background, eliminating window server compositor flicker and blank screens on startup. - Historical Subject Sync (YPT Delta Sync & sbu nullification): Fixed subject synchronization in
SubjectRepository.fetchSubjectsData()to query/user/v2/reload/infowithsbu: nullin thecd(cache dates) payload, ensuring the full historical subjects catalogue is returned rather than only today's modified subjects. - Immediate Post-Login Subject Caching: Updated
AuthRepositoryto immediately extract and persistdata['ss']returned by the social login endpoint (/user/social/sign-up-jwt) and email login intoSharedPreferences, ensuring subjects appear instantly post-login. - Resilient Offline Subject Fallback: Added persistent caching of subjects in
SharedPreferences, ensuring subjects are never cleared if the network request fails or returns an empty list. - macOS Keychain Entitlement: Added
keychain-access-groupstoRelease.entitlementsandDebugProfile.entitlementsto guarantee secure token storage viaflutter_secure_storageunder macOS App Sandbox. - Static Analysis Exclusions: Added
openypt/**toanalysis_options.yamlexclude list to prevent analyzer hangs on decompiled mobile sources. - macOS App Sandbox Entitlements: Added
com.apple.security.network.client,com.apple.security.network.server,com.apple.security.files.user-selected.read-write, andcom.apple.security.files.downloads.read-writetoRelease.entitlementsandDebugProfile.entitlements, fixing theSocketException: Operation not permitted (errno = 1)during Google OAuth login and ensuring PDF/file access. - Window Controls Duplication (macOS & Linux):
- Hidden custom titlebar buttons (minimize, maximize, close) on macOS, honoring native window traffic light buttons at the top left.
- Disabled
GtkHeaderBarinlinux/runner/my_application.cc(use_header_bar = FALSE), eliminating double title bars and button duplication on Linux GNOME desktop.
- Study Session Exit & Cleanup:
- Guaranteed that active, paused, or unsynced study sessions are gracefully ended and synced via
TimerNotifier.stopStudy()before app shutdown. - Added POSIX signal handlers (
SIGTERMandSIGINT) on macOS and Linux to ensure clean termination withexit(0).
- Guaranteed that active, paused, or unsynced study sessions are gracefully ended and synced via
- Dynamic Platform & Device Detection: Resolved dynamic OS detection for Windows, macOS, and Linux in profile settings and API payloads, eliminating hardcoded Windows desktop identifiers across different operating systems.
- Internationalization (i18n): Added comprehensive multi-language translations (11 languages: pt, en, es, ko, ja, zh-cn, zh-tw, fr, de, it, ru) for all OAuth errors, socket errors, and window control tooltips.
Full Changelog: v1.0.3...v1.0.6
Desky v1.0.3
Fixed
- Discord Rich Presence Connection & IPC Handshake: Resolved Windows named pipe handshake timeouts by sanitizing the client ID string, ensuring robust packet framing, and adding defensive fallback handling.
- Discord Rich Presence Activity & State:
- Disabled presence publishing when the user is logged out or idle (removed the "No Desky" placeholder).
- Fixed study timer synchronization on Discord by providing timestamps in Unix epoch milliseconds instead of seconds, eliminating the 0:00 counter freeze.
- Added localized "Paused" status (
"Em pausa","Paused","En pausa","일시정지","一時停止中","暂停中") with frozen study timer during breaks, preserving the current subject name. - Continuously resumes the study timer from the exact accumulated elapsed time upon unpausing.
- Study Timer Pausing & Accumulated Time: Fixed
TimerNotifier.pauseStudy()resettingsessionElapsedMsto zero; introduced differential session tracking (lastSyncedSessionElapsedMs) so the study timer freezes on screen during breaks and smoothly resumes without resetting or duplicating server sync. - Purchased & Custom Avatar Persistence:
- Fixed an issue where equipping purchased YPT studicons would revert to the default avatar (
-1) upon initial login or after logging out and back in. - Implemented
UserModel.extractStudiconIdto strictly validate positive IDs (> 0) and prioritize custom studicon fields (csd) over negative fallback indicators (ssd: -1). - Added user-indexed local preference caching in
AuthRepository(keyUserEquippedStudiconId_<id>), ensuring paid studicons remain equipped across app sessions.
- Fixed an issue where equipping purchased YPT studicons would revert to the default avatar (
- Process Exit & Window Close Handling:
- Configured
windowManager.setPreventClose(true)andWidgetsBindingObserver.didRequestAppExitto intercept the custom title bar 'X' button, OS close commands, and system shutdown signals. - Automatically stops active study sessions with a 3-second defensive network timeout, enqueuing sessions to the offline sync queue (
OfflineSyncRepository) if the network is unavailable or slow. - Flushes accumulated break duration on exit and cleanly releases Discord RPC IPC connections (
clearPresence()anddispose()) before terminating the application process viawindowManager.destroy().
- Configured
Full Changelog: v1.0.2...v1.0.3
Desky v1.0.2
Added
- Google Sign-Up Confirmation Modal: Added pre-check for account existence (
POST /user/exist-username) and a confirmation dialog when no account is linked to the Google profile, preventing automatic creation of unconfigured accounts and guiding the user to complete their profile (nickname, study category, and country). - OAuth Callback Localhost Page Theme & i18n: Redesigned OAuth loopback completion page (
http://127.0.0.1) with Desky AMOLED Dark theme, vibrant lilac accents, glassmorphic card, and automatic browser language detection (Accept-Language+navigator.languagessupporting PT, EN, ES, KO, JA, ZH).
Fixed
- Immediate Nickname Display on Sign-Up: Fixed an issue where the nickname chosen during social or email registration did not appear immediately after account creation, requiring a logout and login cycle to show up.
- Account Deletion Confirmation Word: Simplified confirmation keyword in the account deletion dialog to typing "delete" instead of the full localized phrase ("Excluir Minha Conta").
Full Changelog: v1.0.1...v1.0.2
Desky v1.0.0
Added
- Design System & Visual Redesign:
- True AMOLED black background (
#000000) with Material Design 3 geometry and surface elevations. - Vibrant Lilac brand primary (
#A78BFA) and hourglass accent (#4A7FB5) extracted from new logo. - Apple SF Pro typography (
SF-Pro-Text&SF-Pro-Display) withAppleEmojifallback support. - Lavender study heatmap progression (
heatmapL1-heatmapL4). - Streamlined title bar without brand clutter.
- Removed 43 legacy unused icon assets to reduce package footprint.
- True AMOLED black background (
- Focus & Study Timer Engine:
- Real-time study stopwatch with standard mode and Pomodoro Technique support.
- Automatic day boundary rollover adhering to user-configured reset hours.
- Multi-session local buffering and offline study queue with auto-retry synchronization.
- Floating Mini-Player and Strict Focus mode for distraction-free desktop sessions.
- Subject & Task Management:
- Full CRUD operations for study subjects with custom RGB color pickers, reordering, and archiving.
- Planner with Daily To-Do lists and D-Day exam countdown calculation.
- Weekly Timetable scheduler with drag-and-drop block placement.
- Community & Social Groups:
- Live Study group tracking with real-time status indicators (studying, resting, idle).
- Categorized group discovery, search, join requests, member management, and group notices.
- Group chat with reaction support and member interaction (wake/nudge alerts).
- Global, category, and regional ranking leaderboards with podium visualizer.
- Dynamic Avatar System:
- High-definition Studicon avatar rendering with dynamic poses mapped to focus duration and study status.
- Avatar store with category browsing, preview, and equipment management ("My Avatares").
- SmartBook PDF Reader & Flashcards:
- Integrated PDF reader with bookmarking, page memory, and fullscreen reading mode.
- Spaced repetition flashcard system with 3D card flip animation, review ratings, and deck builder.
- Insights, Analytics & Media:
- Monthly study calendar, hourly heatmaps, and study distribution charts.
- Timelapse recording engine with variable playback speed gallery.
- In-App Notification Center:
- Notification inbox with temporal grouping ("Today", "This week", "Earlier") and unread badges.
- Persistent local deletion filter and batch "mark all as read" synchronization.
- Multiplatform Packaging & Distribution:
- Native x64 installers and packages for Windows (Inno Setup
.exeand Microsoft Store.msix), macOS (.dmg), and Linux (.deb,.tar.gz). - Automated CI/CD release pipeline on GitHub Actions with multiplatform artifact verification.
- Multi-language localization support across English, Portuguese, Spanish, Korean, Japanese, and Chinese.
- Native x64 installers and packages for Windows (Inno Setup
Fixed
- Rest Time Isolation: Prevented break/pause intervals from being credited to subject study durations by synchronizing completed focus slices immediately on pause.
- Notification Deletion Persistence: Stored dismissed and cleared notification IDs in local persistent storage (
SharedPreferences) to prevent deleted notices from reappearing upon feed reload. - Language & Typography: Resolved duplicate translation fallback keys and normalized language selection queries across regional endpoints.
Full Changelog: https://github.com/huneyoliv/desky/commits/v1.0.0