Hide console window, add Debug Window tray option

- Hide console window by default (windows_subsystem = "windows")
- Add "Show Debug Window" menu item to tray
- AllocConsole when debug window requested
- Console shows logs for troubleshooting

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-28 17:09:15 -07:00
parent d7c272dabc
commit 5bb5116b92
4 changed files with 70 additions and 1 deletions

View File

@@ -22,7 +22,7 @@ use windows::Win32::UI::WindowsAndMessaging::{
pub enum TrayAction {
EndSession,
ShowDetails,
// Future: OpenChat,
ShowDebugWindow,
}
/// Tray icon controller
@@ -30,6 +30,7 @@ pub struct TrayController {
_tray_icon: TrayIcon,
menu: Menu,
end_session_item: MenuItem,
debug_item: MenuItem,
status_item: MenuItem,
exit_requested: Arc<AtomicBool>,
}
@@ -57,11 +58,15 @@ impl TrayController {
MenuItem::new("Managed by Administrator", false, None)
};
// Debug window option (always available)
let debug_item = MenuItem::new("Show Debug Window", true, None);
// Build menu
let menu = Menu::new();
menu.append(&status_item)?;
menu.append(&machine_item)?;
menu.append(&separator)?;
menu.append(&debug_item)?;
menu.append(&end_session_item)?;
// Create tray icon
@@ -79,6 +84,7 @@ impl TrayController {
_tray_icon: tray_icon,
menu,
end_session_item,
debug_item,
status_item,
exit_requested,
})
@@ -107,6 +113,10 @@ impl TrayController {
self.exit_requested.store(true, Ordering::SeqCst);
return Some(TrayAction::EndSession);
}
if event.id == self.debug_item.id() {
info!("Debug window requested from tray menu");
return Some(TrayAction::ShowDebugWindow);
}
}
// Check for tray icon events (like double-click)