Repository navigation
v3.0-alpha
Full internal refactor
Summary
• Major codebase overhaul to a class-based architecture while preserving the existing UI and user workflows.
Key Changes
• Introduced cohesive modules: Globals, ConfigManager, CursesUI, SwitchUser, SessionManager, and Updater.
• All terminal UI and input handling centralized in CursesUI, including progress dialogs and session manager screens.
• Privileged execution unified through SwitchUser with secure, non-interactive sudo via askpass.
• Filesystem helpers (mkdirs, move, perms) live in Globals and escalate via SwitchUser when needed.
• Updater runs entirely inside the curses UI with a progress bar, live status ticker, and prompts when necessary.
• Environment for privileged commands is established once (askpass + TTY) and inherited by all child processes.
• Session management logic (tmux listing/creation/attach/kill) isolated in SessionManager; UI switching handled by CursesUI suspend/resume.
Operational Improvements
• More reliable and consistent sudo behavior across all features.
• Atomic config writes with correct ownership and permissions.
• Streamlined internal structure reduces duplication and makes future maintenance easier.
Migration Notes
• External integrations should target the stable entry points: CursesUI.main() for the UI loop, Updater.check_updates() for updates, and SessionManager for session operations.
• No changes to end-user UI or key bindings.