This commit is contained in:
Mikan
2026-03-09 21:56:44 +03:00
parent 89231b9005
commit c635b0261b
2 changed files with 24 additions and 6 deletions

View File

@@ -3,6 +3,7 @@ import os
from datetime import datetime
from typing import Dict, List, Optional
from pathlib import Path
import time
class SessionManager:
@@ -11,17 +12,26 @@ class SessionManager:
self.tasks_directory.mkdir(exist_ok=True)
self.current_session: Optional[Dict] = None
self.session_dirty = False
# Keep track of last session creation time to prevent duplicates
self._last_session_time = 0
def create_session(self, task_id: str, project_id: str) -> Dict:
"""
Create a new work session.
"""
session_id = datetime.now().strftime("%Y%m%dT%H%M%S")
# Ensure unique session ID even if called rapidly
current_time = time.time()
if current_time <= self._last_session_time:
current_time = self._last_session_time + 0.001 # Add small increment
self._last_session_time = current_time
session_id = datetime.fromtimestamp(current_time).strftime("%Y%m%dT%H%M%S%f")[:-3] # Include milliseconds
session = {
"session_id": session_id,
"task_id": task_id,
"project_id": project_id,
"started_at": datetime.now().isoformat(),
"started_at": datetime.fromtimestamp(current_time).isoformat(),
"duration_seconds": 0,
"window_details": {},
"distractions": [],

View File

@@ -37,11 +37,19 @@ def register_session_listener(callback: Callable[[str], None]) -> None:
except:
pass # Already registered
# Corrected CreateWindow call with all required parameters
hwnd = win32gui.CreateWindow(
wndclass.lpszClassName,
"Session Watcher",
0, 0, 0, 0, 0,
0, hinst, None
wndclass.lpszClassName, # lpClassName
"Session Watcher", # lpWindowName
0, # dwStyle
0, # x
0, # y
0, # nWidth
0, # nHeight
0, # hWndParent
0, # hMenu
hinst, # hInstance
None # lParam
)
# Register for session notifications