Fix Qt worker lifecycle crash

This commit is contained in:
2026-07-30 21:10:56 +02:00
parent cba80dfeb1
commit 7f4fc23e1d
9 changed files with 272 additions and 20 deletions
+20
View File
@@ -7,8 +7,10 @@ from pathlib import Path
from types import SimpleNamespace
from javis.core.chat_service import ChatService
from javis.core.provider_router import ApprovalChoice
from javis.memory.sqlite_store import SQLiteSessionStore
from javis.providers.base import ChatMessage, ResponseAbortedError
from javis.security.privacy import CloudPolicy, PrivacyDecision
from javis.ui.chat_controller import DesktopController, sanitized_error
from javis.ui.models import GenerationState, StreamEventKind
@@ -45,10 +47,17 @@ class _Service:
class _Hybrid:
mode = "auto"
last_route = None
queued_approval = None
def set_mode(self, mode: str) -> None:
self.mode = mode
def privacy_decision(self, _text: str) -> PrivacyDecision:
return PrivacyDecision(CloudPolicy.ASK, "Test")
def queue_approval(self, choice: ApprovalChoice) -> None:
self.queued_approval = choice
class _StreamingProvider:
name = "ollama"
@@ -91,6 +100,17 @@ class DesktopControllerTests(unittest.TestCase):
self.assertEqual(loaded.messages[0].content, "Hallo")
self.assertEqual(renamed.title, "Neu")
def test_controller_preflights_and_queues_gui_approval(self) -> None:
decision = self.controller.approval_decision("Private Frage")
self.controller.queue_approval(ApprovalChoice.ALLOW)
self.assertIsNotNone(decision)
self.assertIs(decision.policy, CloudPolicy.ASK)
self.assertIs(
self.runtime.hybrid_provider.queued_approval,
ApprovalChoice.ALLOW,
)
def test_error_sanitizer_masks_key_patterns(self) -> None:
secret = "AIza" + "x" * 25
result = sanitized_error(RuntimeError(f"Fehler {secret}"))