Monthly Devlog: Expanding User Modes and Stabilizing Core Systems
Overview
This month, my primary focus was on significantly expanding user customization options while stabilizing and refining the core application infrastructure. I aimed to enhance flexibility through a broader set of user modes and improve reliability by addressing GUI bugs, backend integration, and packaging challenges. Alongside these technical improvements, I shifted marketing emphasis toward visual animations and status indicators to better showcase the app’s responsiveness and polish.
Highlights & Progress
User Modes & Configuration
- Expanded user modes from 3 to about 15, organized into three categories: solo developer, general third-person assistance, and note distillation.
- Developed a custom user mode creation menu to protect prefab modes from accidental deletion, improving user safety and customization workflow.
- Leveraged GPT-generated system prompts to accelerate creation of new user modes.
- The main configuration file grew to roughly 3,000 lines and is reloaded both at startup and every 10 seconds, prompting considerations for smarter reload strategies or splitting the config for maintainability.
- Unified Echo app configuration into a single config file with internal separation between state manager and main config, simplifying management.
GUI & User Experience
- Refactored GUI code to fix longstanding Tkinter-related bugs including layer ordering issues and image flashing.
- Moved GUI launch to the main thread, which resolved background process instability and improved overall responsiveness.
- Added a special notes section with pinning capability for primary tasks, though some bugs remain to be addressed.
- Updated the notifications system to properly display success and error messages, enhancing user feedback clarity.
- Introduced splash screen and GIF logo animations with standardized frame rates and refined visuals, though the GIF animation currently slows app launch time.
- Refactored overlapping scrolling circle animation on the language model settings screen to eliminate jittering.
Backend & Performance
- Refactored backend Ollama command-line interactions to use direct Python integration instead of subprocess calls, simplifying code and improving reliability.
- Split transcription into automated and manual modes; however, manual transcription suffers from silent crashes potentially linked to CUDA or Faster Whisper backend loading.
- Observed unexplained GPU VRAM instability (~0.1 GB loss) during model import, raising concerns about resource management.
- Fixed bugs in the performance calculator, manual summarizer, and token feedback display.
- Refined Ollama create function to simplify usage and auto-assign the user’s chosen target model.
Packaging & Deployment
- Packaged the app into a single executable (~500 MB) using PyInstaller, manually including offline third-party dependencies (Faster Whisper, Torch) to prevent runtime crashes.
- Created a Windows installer using the Inno Setup; however, Torch dependencies are not cleaned up properly, indicating installer refinement is needed.
- Removed the restart app button from the tray app due to daemon mode limitations, streamlining the tray interface.
- Integrated a setup batch script into the main tray app to simplify console launching.
- Began macOS support preparation, though hardware access for testing remains a significant challenge.
- Considering adding a cross-platform uninstaller to improve user experience during app removal.
Early Feature Experiments
- Built an early waveform analyzer for the tray app featuring a color-mapped waveform and moving read head; UI placement and interactivity are still under evaluation.
- Shifted marketing focus away from the waveform generator toward animations and status indicators to better highlight app polish and responsiveness.
Reflections
- Expanding user modes was a major success, providing much greater customization while the custom creation menu prevented accidental data loss.
- Refactoring the GUI and moving it to the main thread substantially improved stability, validating the decision to prioritize thread management.
- Packaging the app as a single executable with offline dependencies was crucial to prevent crashes but introduced new challenges around executable size and installer cleanup.
- The silent crashes and GPU VRAM instability were unexpected setbacks, highlighting the need for deeper investigation into backend GPU resource handling.
- The splash screen animation adds polish but at a cost to launch speed, indicating a trade-off between aesthetics and performance.
- MacOS support preparation exposed hardware access difficulties, underscoring the importance of securing appropriate testing environments early.
- The first-time setup process remains fragile, especially when users cancel file path selection, suggesting a need for a more robust flow.
Next Steps
- Investigate smarter configuration reload strategies, including potential splitting of the large config file for maintainability.
- Deepen debugging of GPU VRAM instability and backend crashes, focusing on CUDA and Faster Whisper integration.
- Optimize splash screen animation to reduce app launch time without sacrificing visual quality.
- Continue macOS support development and seek hardware access solutions for comprehensive testing.
- Design and implement a robust cross-platform uninstaller to improve installation lifecycle and user experience.
Keynotes
Decisions & Observations
- Decided to expand user modes from 3 to 15 with a custom creation menu to enhance customization and prevent accidental data loss.
Issues & Next Steps
- Packaged app into a single executable including offline dependencies to prevent runtime crashes, but installer cleanup (especially Torch dependencies) needs refinement.
- Needs to resolve silent crashes in manual transcription mode and investigate GPU VRAM instability during model import, focusing on CUDA and Faster Whisper integration.
- Will explore smarter configuration reload strategies, including splitting the large config file for better maintainability.
- Will optimize splash screen animations to balance visual polish with faster app launch times.
- Will continue macOS support development while securing hardware access for proper testing.
- Will design and implement a robust cross-platform uninstaller to improve installation and removal experience.
Uncategorized Notes
- Moved GUI launch to the main thread, resolving background instability and improving responsiveness.
- Refactored backend to replace subprocess calls with direct Python integration, simplifying code and increasing reliability.
Generated with
Nucleate by Watchlight Studio— distilled from full transcription.