import sqlite3 from hashlib import sha256 DEFAULT_DB_PATH = 'output/seen_issues.db' class SeenIssuesDB: def __init__(self, db_path=DEFAULT_DB_PATH): self.conn = sqlite3.connect(db_path) self._create_table() def _create_table(self): with self.conn: self.conn.execute(""" CREATE TABLE IF NOT EXISTS seen_issues ( issue_hash TEXT PRIMARY KEY ) """) def mark_as_seen(self, issue_text: str): issue_hash = self._compute_hash(issue_text) with self.conn: self.conn.execute( 'INSERT OR IGNORE INTO seen_issues (issue_hash) VALUES (?)', (issue_hash,), ) def has_seen(self, issue_text: str) -> bool: issue_hash = self._compute_hash(issue_text) cursor = self.conn.execute( 'SELECT 1 FROM seen_issues WHERE issue_hash = ?', (issue_hash,) ) return cursor.fetchone() is not None def _compute_hash(self, text: str) -> str: return sha256(text.encode('utf-8')).hexdigest()