Skip to content

v3.0-alpha

Choose a tag to compare

@Valinwolf Valinwolf released this 08 Nov 01:34
· 3 commits to main since this release
3296d42

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.