Garmin Chat Desktop v4.0.3: A Polish & Feature Update Before I Travel
Bug Squashing Before Croissant Munching: A Pre-Paris App Glow-Up
Well, this update came together faster than I expected! After the v4.0.1 release, I received a flood of great feedback from users—some bugs to squash, some quality-of-life improvements, and one feature request that kept coming up again and again. Since I’m about to be unavailable for the next three weeks, I wanted to knock these out before I head off on my travels.
You see, my wife and I celebrate our 36th wedding anniversary next week, and we’re heading to Paris! 🇫🇷 It’s her first time there and let me tell you—she would absolutely not forgive me if I spent the trip debugging software instead of enjoying croissants and the Eiffel Tower. After Paris, I’ll be traveling abroad for work for a couple more weeks, so this felt like the perfect time to roll out these improvements while I had the chance.
So here we are: Garmin Chat Desktop v4.0.3—a bigger-than-usual update packed with fixes, polish, and the most requested feature since launch.
🎯 The Big One: Customizable Quick Questions
This was the most requested feature, hands down. So many of you said, “I love the Quick Questions, but I wish I could make my own!”
Ask and you shall receive!
You can now create up to 8 custom Quick Questions tailored to YOUR fitness goals and interests.
How It Works
Click the ⚙️ Customize button next to “Quick Questions”
Edit the questions (one per line)
Click 💾 Save
Your personalized questions appear instantly!
Examples you might create:
“How’s my training load this week?”
“Compare my last 3 long runs”
“What’s my resting heart rate trend?”
“Show me all yoga sessions this month”
“How many calories have I burned this week?”
Your custom questions are saved to a config file, so they persist across sessions. You can change them anytime, reset to defaults, or share your question sets with friends or training partners.
This feature makes the app truly yours—personalized to match your fitness journey, training goals, and the metrics you care about most.
🎨 Rounded Hover Effects (Thanks, Daughter!)
My daughter took one look at the Quick Question buttons and said, “Dad, the hover effect looks boxy. Make it rounded.”
She was right. (She usually is.)
The new QuickQuestion button style features:
Smooth rounded hover effects
Beautiful accent color highlighting
Subtle 3D raised appearance on hover
Modern, polished look that matches the rest of the Fluent Design UI
It’s a small change that makes a big difference in how the app feels. Everything just looks more cohesive and professional now.
🐛 The Character Encoding Saga (Finally Resolved!)
If you were seeing weird characters like •, ✅, or 🔠instead of proper emojis and symbols—that’s fixed!
This was a classic UTF-8 encoding battle. Turns out, mixing Python source files, Windows GDI rendering, Tkinter widgets, and AI-generated text creates a perfect storm of character encoding issues.
What Got Fixed
✅ Status messages now show proper checkmarks
📝 Button icons display correctly (🔍 📝 💾 📂 📄)
Helper text bullets render perfectly
🔐 Dialog titles show proper emojis
💬 Chat responses have clean formatting
I added character sanitization to the chat display, fixed all button text, updated status messages, and ensured every dialog renders properly. No more mojibake anywhere in the app!
🪟 Smooth Dialog Animations (No More Flash!)
Another frustration several of you reported: dialogs would flash or jump when opening.
This drove me crazy too.
The issue? Window initialization order in Tkinter. I needed to:
Make the window transient (attached to parent)
Set geometry (size and position)
Withdraw the window (hide it)
Create all the widgets
Deiconify (show it)
Grab focus
Get that order wrong, and you get flashing, jumping, or windows appearing in the wrong place before centering.
Now every dialog opens smoothly at the centered position with zero flash:
Settings dialog ✅
Saved Prompts ✅
Search ✅
Chat History ✅
Export Report ✅
It’s such a small thing, but it makes the app feel so much more polished and professional.
✨ Professional Polish Throughout
Startup Experience
Added a professional splash screen that shows:
The Garmin Chat logo
Version number (v4.0.3)
Loading status
Smooth fade-in animation
No more staring at a blank screen wondering if the app is launching!
Main Window Enhancements
App logo now displayed in the header (48x48px)
Version number shown below the Settings button
Export button now shows “📄 Export Report” (was icon-only)
These small touches make the app feel complete and help users know exactly what version they’re running.
🔧 Under the Hood
Beyond the visible changes, I also:
Optimized the build script with better error handling
Updated the Inno Setup installer configuration
Improved window state management
Enhanced dark mode consistency
Refined the Fluent Design color palette
Added better error messages throughout
Migrated to new Google Gemini package (
google-genaireplaces deprecatedgoogle-generativeai)
Developer Note: Google deprecated their old
google-generativeaipackage in favor ofgoogle-genai. If you’re building from source, make sure topip install google-genaiinstead of the old package. The build script has been updated accordingly.
📊 Status Summary
For v4.0.3 Release
The migration work is complete and correct. The issue is Google’s API, not our code. I recommend:
✅ Gemini is beta/experimental
✅ Recommend xAI/OpenAI/Anthropic as primary providers
⏳ Will revisit Gemini in v4.0.4 when SDK matures
The codebase is cleaner, more maintainable, and ready for future enhancements.
📊 By the Numbers
What changed in v4.0.3:
🆕 1 major new feature (customizable Quick Questions)
🐛 15+ bugs fixed (character encoding, dialogs, etc.)
🎨 20+ UI/UX improvements
📝 5 new dialog/window classes
💾 1 new config file (quick_questions.json)
✨ 100% of dialogs now flash-free
💡 The Development Story
This update came together in about a week of intense focus. Once I realized I’d be gone for three weeks, I made a list:
Must Fix Before I Leave:
Character encoding issues✅Dialog flashing✅Custom Quick Questions✅Overall polish✅
I’m really happy with how it turned out. The app feels tight, professional, and genuinely useful now.
🚀 What’s Next?
After I return from Paris and my work travels (late March), I’ll be looking at:
Short Term
Visual charts and graphs for fitness trends
Enhanced data filtering and date ranges
More export format options
Longer Term
Voice input/output (speech-to-text)
Mobile companion app (.NET MAUI)
Plugin system for custom data sources
But for now, v4.0.3 is feature-complete and stable. I’m confident leaving this in your hands for the next three weeks!
📦 Download v4.0.3
Get it now:
Windows Installer (Recommended)
Upgrading from v4.0.x?
Just install—all your settings and chat history will be preserved!
🙏 Thank You for the Feedback!
This release wouldn’t have happened without your bug reports, feature requests, and suggestions. Special shoutout to:
Everyone who reported the character encoding issues
The users who requested customizable Quick Questions
My daughter for the rounded hover feedback 😊
The beta testers who caught last-minute issues
Keep the feedback coming! I’ll be checking GitHub Issues periodically while I’m away (but don’t expect instant responses—I’ll be enjoying escargot, ratatouille and work conferences).
🗼 See You in Three Weeks!
I’ll be back in early March, refreshed and ready to tackle the next batch of features. Until then:
Enjoy v4.0.3!
Customize those Quick Questions!
Track your fitness with AI!
And if you see any critical bugs, please report them on GitHub. I’ll address them when I return.
Au revoir! 🇫🇷
— Rod
P.S. If you find Garmin Chat Desktop useful, consider:
⭐ Starring the project on GitHub
📢 Sharing it with fellow fitness enthusiasts
💬 Joining the community discussions
☕ Buying me a coffee (just kidding—enjoy the free app!)
Garmin Chat Desktop v4.0.3
AI-powered insights for your fitness data







