"""In-memory IssueTracker for testing — no Gitea API calls.""" from domain.ports import IssueTracker class FakeIssueTracker(IssueTracker): """Records created issues in a list for assertion.""" def __init__(self): self.issues: list[dict] = [] async def create_unanswered_issue( self, question: str, user_id: str, channel_id: str, attempted_rules: list[str], conversation_id: str, ) -> str: issue = { "question": question, "user_id": user_id, "channel_id": channel_id, "attempted_rules": attempted_rules, "conversation_id": conversation_id, } self.issues.append(issue) return f"https://gitea.example.com/issues/{len(self.issues)}"