Cosmic Ray Report

Date time: 03/02/2026 03:35:03

Total jobs: 1054

Complete: 1054 (100.00%)

Surviving mutants: 0 (0.00%)

operator: core/ReplaceBinaryOperator_Add_Sub, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -71,7 +71,7 @@
             return False
 
         expected_signature = (
-            "sha256=" + hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
+            "sha256=" - hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
         )
 
         return hmac.compare_digest(expected_signature, signature)
operator: core/ReplaceBinaryOperator_Add_Sub, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -409,7 +409,7 @@
             command = command_match.group(1).lower()
             add_span_attributes(span, {"chatops.command": command})
 
-            if command in repo_config.approve_commands + repo_config.unapprove_commands:
+            if command in repo_config.approve_commands - repo_config.unapprove_commands:
                 has_permission = await run_in_threadpool(
                     github_client.user_has_permission,
                     installation_id,
operator: core/ReplaceBinaryOperator_Add_Mul, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -71,7 +71,7 @@
             return False
 
         expected_signature = (
-            "sha256=" + hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
+            "sha256=" * hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
         )
 
         return hmac.compare_digest(expected_signature, signature)
operator: core/ReplaceBinaryOperator_Add_Mul, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -409,7 +409,7 @@
             command = command_match.group(1).lower()
             add_span_attributes(span, {"chatops.command": command})
 
-            if command in repo_config.approve_commands + repo_config.unapprove_commands:
+            if command in repo_config.approve_commands * repo_config.unapprove_commands:
                 has_permission = await run_in_threadpool(
                     github_client.user_has_permission,
                     installation_id,
operator: core/ReplaceBinaryOperator_Add_Div, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -71,7 +71,7 @@
             return False
 
         expected_signature = (
-            "sha256=" + hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
+            "sha256=" / hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
         )
 
         return hmac.compare_digest(expected_signature, signature)
operator: core/ReplaceBinaryOperator_Add_Div, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -409,7 +409,7 @@
             command = command_match.group(1).lower()
             add_span_attributes(span, {"chatops.command": command})
 
-            if command in repo_config.approve_commands + repo_config.unapprove_commands:
+            if command in repo_config.approve_commands / repo_config.unapprove_commands:
                 has_permission = await run_in_threadpool(
                     github_client.user_has_permission,
                     installation_id,
operator: core/ReplaceBinaryOperator_Add_FloorDiv, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -71,7 +71,7 @@
             return False
 
         expected_signature = (
-            "sha256=" + hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
+            "sha256=" // hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
         )
 
         return hmac.compare_digest(expected_signature, signature)
operator: core/ReplaceBinaryOperator_Add_FloorDiv, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -409,7 +409,7 @@
             command = command_match.group(1).lower()
             add_span_attributes(span, {"chatops.command": command})
 
-            if command in repo_config.approve_commands + repo_config.unapprove_commands:
+            if command in repo_config.approve_commands // repo_config.unapprove_commands:
                 has_permission = await run_in_threadpool(
                     github_client.user_has_permission,
                     installation_id,
operator: core/ReplaceBinaryOperator_Add_Mod, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -71,7 +71,7 @@
             return False
 
         expected_signature = (
-            "sha256=" + hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
+            "sha256=" % hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
         )
 
         return hmac.compare_digest(expected_signature, signature)
operator: core/ReplaceBinaryOperator_Add_Mod, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -409,7 +409,7 @@
             command = command_match.group(1).lower()
             add_span_attributes(span, {"chatops.command": command})
 
-            if command in repo_config.approve_commands + repo_config.unapprove_commands:
+            if command in repo_config.approve_commands % repo_config.unapprove_commands:
                 has_permission = await run_in_threadpool(
                     github_client.user_has_permission,
                     installation_id,
operator: core/ReplaceBinaryOperator_Add_Pow, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -71,7 +71,7 @@
             return False
 
         expected_signature = (
-            "sha256=" + hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
+            "sha256=" ** hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
         )
 
         return hmac.compare_digest(expected_signature, signature)
operator: core/ReplaceBinaryOperator_Add_Pow, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -409,7 +409,7 @@
             command = command_match.group(1).lower()
             add_span_attributes(span, {"chatops.command": command})
 
-            if command in repo_config.approve_commands + repo_config.unapprove_commands:
+            if command in repo_config.approve_commands ** repo_config.unapprove_commands:
                 has_permission = await run_in_threadpool(
                     github_client.user_has_permission,
                     installation_id,
operator: core/ReplaceBinaryOperator_Add_RShift, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -71,7 +71,7 @@
             return False
 
         expected_signature = (
-            "sha256=" + hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
+            "sha256=" >> hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
         )
 
         return hmac.compare_digest(expected_signature, signature)
operator: core/ReplaceBinaryOperator_Add_RShift, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -409,7 +409,7 @@
             command = command_match.group(1).lower()
             add_span_attributes(span, {"chatops.command": command})
 
-            if command in repo_config.approve_commands + repo_config.unapprove_commands:
+            if command in repo_config.approve_commands >> repo_config.unapprove_commands:
                 has_permission = await run_in_threadpool(
                     github_client.user_has_permission,
                     installation_id,
operator: core/ReplaceBinaryOperator_Add_LShift, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -71,7 +71,7 @@
             return False
 
         expected_signature = (
-            "sha256=" + hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
+            "sha256=" << hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
         )
 
         return hmac.compare_digest(expected_signature, signature)
operator: core/ReplaceBinaryOperator_Add_LShift, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -409,7 +409,7 @@
             command = command_match.group(1).lower()
             add_span_attributes(span, {"chatops.command": command})
 
-            if command in repo_config.approve_commands + repo_config.unapprove_commands:
+            if command in repo_config.approve_commands << repo_config.unapprove_commands:
                 has_permission = await run_in_threadpool(
                     github_client.user_has_permission,
                     installation_id,
operator: core/ReplaceBinaryOperator_Add_BitOr, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -71,7 +71,7 @@
             return False
 
         expected_signature = (
-            "sha256=" + hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
+            "sha256=" | hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
         )
 
         return hmac.compare_digest(expected_signature, signature)
operator: core/ReplaceBinaryOperator_Add_BitOr, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -409,7 +409,7 @@
             command = command_match.group(1).lower()
             add_span_attributes(span, {"chatops.command": command})
 
-            if command in repo_config.approve_commands + repo_config.unapprove_commands:
+            if command in repo_config.approve_commands | repo_config.unapprove_commands:
                 has_permission = await run_in_threadpool(
                     github_client.user_has_permission,
                     installation_id,
operator: core/ReplaceBinaryOperator_Add_BitAnd, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -71,7 +71,7 @@
             return False
 
         expected_signature = (
-            "sha256=" + hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
+            "sha256=" & hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
         )
 
         return hmac.compare_digest(expected_signature, signature)
operator: core/ReplaceBinaryOperator_Add_BitAnd, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -409,7 +409,7 @@
             command = command_match.group(1).lower()
             add_span_attributes(span, {"chatops.command": command})
 
-            if command in repo_config.approve_commands + repo_config.unapprove_commands:
+            if command in repo_config.approve_commands & repo_config.unapprove_commands:
                 has_permission = await run_in_threadpool(
                     github_client.user_has_permission,
                     installation_id,
operator: core/ReplaceBinaryOperator_Add_BitXor, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -71,7 +71,7 @@
             return False
 
         expected_signature = (
-            "sha256=" + hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
+            "sha256=" ^ hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
         )
 
         return hmac.compare_digest(expected_signature, signature)
operator: core/ReplaceBinaryOperator_Add_BitXor, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -409,7 +409,7 @@
             command = command_match.group(1).lower()
             add_span_attributes(span, {"chatops.command": command})
 
-            if command in repo_config.approve_commands + repo_config.unapprove_commands:
+            if command in repo_config.approve_commands ^ repo_config.unapprove_commands:
                 has_permission = await run_in_threadpool(
                     github_client.user_has_permission,
                     installation_id,
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -647,7 +647,7 @@
                 comment,
             )
 
-            duration = time.time() - start_time
+            duration = time.time() + start_time
             pr_approval_duration_seconds.observe(duration)
 
             status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -711,7 +711,7 @@
                         pr_number,
                         extra={"repo": repo_full_name, "pr_number": pr_number},
                     )
-                    duration = time.time() - start_time
+                    duration = time.time() + start_time
                     pr_dismissal_duration_seconds.observe(duration)
                     pr_dismissals_total.labels(trigger_type=trigger_type, status="success").inc()
                     add_span_attributes(span, {"dismissal.result": "no_reviews"})
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -731,7 +731,7 @@
                     )
                     success = success and result
 
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 pr_dismissal_duration_seconds.observe(duration)
 
                 status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -743,7 +743,7 @@
                 return success
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 pr_dismissal_duration_seconds.observe(duration)
                 pr_dismissals_total.labels(trigger_type=trigger_type, status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -647,7 +647,7 @@
                 comment,
             )
 
-            duration = time.time() - start_time
+            duration = time.time() * start_time
             pr_approval_duration_seconds.observe(duration)
 
             status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -711,7 +711,7 @@
                         pr_number,
                         extra={"repo": repo_full_name, "pr_number": pr_number},
                     )
-                    duration = time.time() - start_time
+                    duration = time.time() * start_time
                     pr_dismissal_duration_seconds.observe(duration)
                     pr_dismissals_total.labels(trigger_type=trigger_type, status="success").inc()
                     add_span_attributes(span, {"dismissal.result": "no_reviews"})
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -731,7 +731,7 @@
                     )
                     success = success and result
 
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 pr_dismissal_duration_seconds.observe(duration)
 
                 status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -743,7 +743,7 @@
                 return success
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 pr_dismissal_duration_seconds.observe(duration)
                 pr_dismissals_total.labels(trigger_type=trigger_type, status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -647,7 +647,7 @@
                 comment,
             )
 
-            duration = time.time() - start_time
+            duration = time.time() / start_time
             pr_approval_duration_seconds.observe(duration)
 
             status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -711,7 +711,7 @@
                         pr_number,
                         extra={"repo": repo_full_name, "pr_number": pr_number},
                     )
-                    duration = time.time() - start_time
+                    duration = time.time() / start_time
                     pr_dismissal_duration_seconds.observe(duration)
                     pr_dismissals_total.labels(trigger_type=trigger_type, status="success").inc()
                     add_span_attributes(span, {"dismissal.result": "no_reviews"})
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -731,7 +731,7 @@
                     )
                     success = success and result
 
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 pr_dismissal_duration_seconds.observe(duration)
 
                 status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -743,7 +743,7 @@
                 return success
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 pr_dismissal_duration_seconds.observe(duration)
                 pr_dismissals_total.labels(trigger_type=trigger_type, status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -647,7 +647,7 @@
                 comment,
             )
 
-            duration = time.time() - start_time
+            duration = time.time() // start_time
             pr_approval_duration_seconds.observe(duration)
 
             status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -711,7 +711,7 @@
                         pr_number,
                         extra={"repo": repo_full_name, "pr_number": pr_number},
                     )
-                    duration = time.time() - start_time
+                    duration = time.time() // start_time
                     pr_dismissal_duration_seconds.observe(duration)
                     pr_dismissals_total.labels(trigger_type=trigger_type, status="success").inc()
                     add_span_attributes(span, {"dismissal.result": "no_reviews"})
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -731,7 +731,7 @@
                     )
                     success = success and result
 
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 pr_dismissal_duration_seconds.observe(duration)
 
                 status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -743,7 +743,7 @@
                 return success
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 pr_dismissal_duration_seconds.observe(duration)
                 pr_dismissals_total.labels(trigger_type=trigger_type, status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -647,7 +647,7 @@
                 comment,
             )
 
-            duration = time.time() - start_time
+            duration = time.time() % start_time
             pr_approval_duration_seconds.observe(duration)
 
             status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -711,7 +711,7 @@
                         pr_number,
                         extra={"repo": repo_full_name, "pr_number": pr_number},
                     )
-                    duration = time.time() - start_time
+                    duration = time.time() % start_time
                     pr_dismissal_duration_seconds.observe(duration)
                     pr_dismissals_total.labels(trigger_type=trigger_type, status="success").inc()
                     add_span_attributes(span, {"dismissal.result": "no_reviews"})
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -731,7 +731,7 @@
                     )
                     success = success and result
 
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 pr_dismissal_duration_seconds.observe(duration)
 
                 status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -743,7 +743,7 @@
                 return success
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 pr_dismissal_duration_seconds.observe(duration)
                 pr_dismissals_total.labels(trigger_type=trigger_type, status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -647,7 +647,7 @@
                 comment,
             )
 
-            duration = time.time() - start_time
+            duration = time.time() ** start_time
             pr_approval_duration_seconds.observe(duration)
 
             status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -711,7 +711,7 @@
                         pr_number,
                         extra={"repo": repo_full_name, "pr_number": pr_number},
                     )
-                    duration = time.time() - start_time
+                    duration = time.time() ** start_time
                     pr_dismissal_duration_seconds.observe(duration)
                     pr_dismissals_total.labels(trigger_type=trigger_type, status="success").inc()
                     add_span_attributes(span, {"dismissal.result": "no_reviews"})
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -731,7 +731,7 @@
                     )
                     success = success and result
 
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 pr_dismissal_duration_seconds.observe(duration)
 
                 status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -743,7 +743,7 @@
                 return success
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 pr_dismissal_duration_seconds.observe(duration)
                 pr_dismissals_total.labels(trigger_type=trigger_type, status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -647,7 +647,7 @@
                 comment,
             )
 
-            duration = time.time() - start_time
+            duration = time.time() >> start_time
             pr_approval_duration_seconds.observe(duration)
 
             status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -711,7 +711,7 @@
                         pr_number,
                         extra={"repo": repo_full_name, "pr_number": pr_number},
                     )
-                    duration = time.time() - start_time
+                    duration = time.time() >> start_time
                     pr_dismissal_duration_seconds.observe(duration)
                     pr_dismissals_total.labels(trigger_type=trigger_type, status="success").inc()
                     add_span_attributes(span, {"dismissal.result": "no_reviews"})
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -731,7 +731,7 @@
                     )
                     success = success and result
 
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 pr_dismissal_duration_seconds.observe(duration)
 
                 status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -743,7 +743,7 @@
                 return success
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 pr_dismissal_duration_seconds.observe(duration)
                 pr_dismissals_total.labels(trigger_type=trigger_type, status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -647,7 +647,7 @@
                 comment,
             )
 
-            duration = time.time() - start_time
+            duration = time.time() << start_time
             pr_approval_duration_seconds.observe(duration)
 
             status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -711,7 +711,7 @@
                         pr_number,
                         extra={"repo": repo_full_name, "pr_number": pr_number},
                     )
-                    duration = time.time() - start_time
+                    duration = time.time() << start_time
                     pr_dismissal_duration_seconds.observe(duration)
                     pr_dismissals_total.labels(trigger_type=trigger_type, status="success").inc()
                     add_span_attributes(span, {"dismissal.result": "no_reviews"})
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -731,7 +731,7 @@
                     )
                     success = success and result
 
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 pr_dismissal_duration_seconds.observe(duration)
 
                 status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -743,7 +743,7 @@
                 return success
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 pr_dismissal_duration_seconds.observe(duration)
                 pr_dismissals_total.labels(trigger_type=trigger_type, status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -647,7 +647,7 @@
                 comment,
             )
 
-            duration = time.time() - start_time
+            duration = time.time() | start_time
             pr_approval_duration_seconds.observe(duration)
 
             status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -711,7 +711,7 @@
                         pr_number,
                         extra={"repo": repo_full_name, "pr_number": pr_number},
                     )
-                    duration = time.time() - start_time
+                    duration = time.time() | start_time
                     pr_dismissal_duration_seconds.observe(duration)
                     pr_dismissals_total.labels(trigger_type=trigger_type, status="success").inc()
                     add_span_attributes(span, {"dismissal.result": "no_reviews"})
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -731,7 +731,7 @@
                     )
                     success = success and result
 
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 pr_dismissal_duration_seconds.observe(duration)
 
                 status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -743,7 +743,7 @@
                 return success
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 pr_dismissal_duration_seconds.observe(duration)
                 pr_dismissals_total.labels(trigger_type=trigger_type, status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -647,7 +647,7 @@
                 comment,
             )
 
-            duration = time.time() - start_time
+            duration = time.time() & start_time
             pr_approval_duration_seconds.observe(duration)
 
             status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -711,7 +711,7 @@
                         pr_number,
                         extra={"repo": repo_full_name, "pr_number": pr_number},
                     )
-                    duration = time.time() - start_time
+                    duration = time.time() & start_time
                     pr_dismissal_duration_seconds.observe(duration)
                     pr_dismissals_total.labels(trigger_type=trigger_type, status="success").inc()
                     add_span_attributes(span, {"dismissal.result": "no_reviews"})
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -731,7 +731,7 @@
                     )
                     success = success and result
 
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 pr_dismissal_duration_seconds.observe(duration)
 
                 status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -743,7 +743,7 @@
                 return success
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 pr_dismissal_duration_seconds.observe(duration)
                 pr_dismissals_total.labels(trigger_type=trigger_type, status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -647,7 +647,7 @@
                 comment,
             )
 
-            duration = time.time() - start_time
+            duration = time.time() ^ start_time
             pr_approval_duration_seconds.observe(duration)
 
             status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -711,7 +711,7 @@
                         pr_number,
                         extra={"repo": repo_full_name, "pr_number": pr_number},
                     )
-                    duration = time.time() - start_time
+                    duration = time.time() ^ start_time
                     pr_dismissal_duration_seconds.observe(duration)
                     pr_dismissals_total.labels(trigger_type=trigger_type, status="success").inc()
                     add_span_attributes(span, {"dismissal.result": "no_reviews"})
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -731,7 +731,7 @@
                     )
                     success = success and result
 
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 pr_dismissal_duration_seconds.observe(duration)
 
                 status = "success" if success else "failure"
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -743,7 +743,7 @@
                 return success
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 pr_dismissal_duration_seconds.observe(duration)
                 pr_dismissals_total.labels(trigger_type=trigger_type, status="failure").inc()
 
operator: core/ReplaceBinaryOperator_BitOr_Add, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -494,7 +494,7 @@
         installation_id: int,
         repo_full_name: str,
         default_branch: str,
-        owner_login: str | None,
+        owner_login: str + None,
         owner_type: str | None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
operator: core/ReplaceBinaryOperator_BitOr_Add, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -495,7 +495,7 @@
         repo_full_name: str,
         default_branch: str,
         owner_login: str | None,
-        owner_type: str | None,
+        owner_type: str + None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
 
operator: core/ReplaceBinaryOperator_BitOr_Sub, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -494,7 +494,7 @@
         installation_id: int,
         repo_full_name: str,
         default_branch: str,
-        owner_login: str | None,
+        owner_login: str - None,
         owner_type: str | None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
operator: core/ReplaceBinaryOperator_BitOr_Sub, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -495,7 +495,7 @@
         repo_full_name: str,
         default_branch: str,
         owner_login: str | None,
-        owner_type: str | None,
+        owner_type: str - None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
 
operator: core/ReplaceBinaryOperator_BitOr_Mul, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -494,7 +494,7 @@
         installation_id: int,
         repo_full_name: str,
         default_branch: str,
-        owner_login: str | None,
+        owner_login: str * None,
         owner_type: str | None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
operator: core/ReplaceBinaryOperator_BitOr_Mul, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -495,7 +495,7 @@
         repo_full_name: str,
         default_branch: str,
         owner_login: str | None,
-        owner_type: str | None,
+        owner_type: str * None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
 
operator: core/ReplaceBinaryOperator_BitOr_Div, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -494,7 +494,7 @@
         installation_id: int,
         repo_full_name: str,
         default_branch: str,
-        owner_login: str | None,
+        owner_login: str / None,
         owner_type: str | None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
operator: core/ReplaceBinaryOperator_BitOr_Div, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -495,7 +495,7 @@
         repo_full_name: str,
         default_branch: str,
         owner_login: str | None,
-        owner_type: str | None,
+        owner_type: str / None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
 
operator: core/ReplaceBinaryOperator_BitOr_FloorDiv, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -494,7 +494,7 @@
         installation_id: int,
         repo_full_name: str,
         default_branch: str,
-        owner_login: str | None,
+        owner_login: str // None,
         owner_type: str | None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
operator: core/ReplaceBinaryOperator_BitOr_FloorDiv, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -495,7 +495,7 @@
         repo_full_name: str,
         default_branch: str,
         owner_login: str | None,
-        owner_type: str | None,
+        owner_type: str // None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
 
operator: core/ReplaceBinaryOperator_BitOr_Mod, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -494,7 +494,7 @@
         installation_id: int,
         repo_full_name: str,
         default_branch: str,
-        owner_login: str | None,
+        owner_login: str % None,
         owner_type: str | None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
operator: core/ReplaceBinaryOperator_BitOr_Mod, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -495,7 +495,7 @@
         repo_full_name: str,
         default_branch: str,
         owner_login: str | None,
-        owner_type: str | None,
+        owner_type: str % None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
 
operator: core/ReplaceBinaryOperator_BitOr_Pow, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -494,7 +494,7 @@
         installation_id: int,
         repo_full_name: str,
         default_branch: str,
-        owner_login: str | None,
+        owner_login: str ** None,
         owner_type: str | None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
operator: core/ReplaceBinaryOperator_BitOr_Pow, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -495,7 +495,7 @@
         repo_full_name: str,
         default_branch: str,
         owner_login: str | None,
-        owner_type: str | None,
+        owner_type: str ** None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
 
operator: core/ReplaceBinaryOperator_BitOr_RShift, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -494,7 +494,7 @@
         installation_id: int,
         repo_full_name: str,
         default_branch: str,
-        owner_login: str | None,
+        owner_login: str >> None,
         owner_type: str | None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
operator: core/ReplaceBinaryOperator_BitOr_RShift, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -495,7 +495,7 @@
         repo_full_name: str,
         default_branch: str,
         owner_login: str | None,
-        owner_type: str | None,
+        owner_type: str >> None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
 
operator: core/ReplaceBinaryOperator_BitOr_LShift, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -494,7 +494,7 @@
         installation_id: int,
         repo_full_name: str,
         default_branch: str,
-        owner_login: str | None,
+        owner_login: str << None,
         owner_type: str | None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
operator: core/ReplaceBinaryOperator_BitOr_LShift, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -495,7 +495,7 @@
         repo_full_name: str,
         default_branch: str,
         owner_login: str | None,
-        owner_type: str | None,
+        owner_type: str << None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
 
operator: core/ReplaceBinaryOperator_BitOr_BitAnd, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -494,7 +494,7 @@
         installation_id: int,
         repo_full_name: str,
         default_branch: str,
-        owner_login: str | None,
+        owner_login: str & None,
         owner_type: str | None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
operator: core/ReplaceBinaryOperator_BitOr_BitAnd, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -495,7 +495,7 @@
         repo_full_name: str,
         default_branch: str,
         owner_login: str | None,
-        owner_type: str | None,
+        owner_type: str & None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
 
operator: core/ReplaceBinaryOperator_BitOr_BitXor, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -494,7 +494,7 @@
         installation_id: int,
         repo_full_name: str,
         default_branch: str,
-        owner_login: str | None,
+        owner_login: str ^ None,
         owner_type: str | None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
operator: core/ReplaceBinaryOperator_BitOr_BitXor, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -495,7 +495,7 @@
         repo_full_name: str,
         default_branch: str,
         owner_login: str | None,
-        owner_type: str | None,
+        owner_type: str ^ None,
     ) -> RepoConfig:
         """Get repository configuration from stampbot.toml.
 
operator: core/ReplaceComparisonOperator_Eq_NotEq, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -109,7 +109,7 @@
             )
 
             # Route to appropriate handler
-            if event_type == "pull_request":
+            if event_type != "pull_request":
                 result = await self._handle_pull_request(payload)
             elif event_type == "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
operator: core/ReplaceComparisonOperator_Eq_NotEq, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -111,7 +111,7 @@
             # Route to appropriate handler
             if event_type == "pull_request":
                 result = await self._handle_pull_request(payload)
-            elif event_type == "pull_request_review_comment":
+            elif event_type != "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
             elif event_type == "issue_comment":
                 # Issue comments can be on PRs too
operator: core/ReplaceComparisonOperator_Eq_NotEq, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -113,7 +113,7 @@
                 result = await self._handle_pull_request(payload)
             elif event_type == "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
-            elif event_type == "issue_comment":
+            elif event_type != "issue_comment":
                 # Issue comments can be on PRs too
                 if "pull_request" in payload.get("issue", {}):
                     result = await self._handle_pr_comment(payload)
operator: core/ReplaceComparisonOperator_Eq_NotEq, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -119,7 +119,7 @@
                     result = await self._handle_pr_comment(payload)
                 else:
                     result = {"status": "ignored", "message": "Not a PR comment"}
-            elif event_type == "ping":
+            elif event_type != "ping":
                 result = {"status": "ok", "message": "pong"}
             else:
                 result = {"status": "ignored", "message": f"Event type {event_type} not handled"}
operator: core/ReplaceComparisonOperator_Eq_NotEq, occurrence: 4
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -187,7 +187,7 @@
                     },
                 )
 
-                if action == "opened":
+                if action != "opened":
                     await run_in_threadpool(
                         github_client.create_pr_review_comment,
                         installation_id,
operator: core/ReplaceComparisonOperator_Eq_NotEq, occurrence: 5
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -206,7 +206,7 @@
                     "message": "Invalid repository configuration",
                 }
 
-            if action == "opened":
+            if action != "opened":
                 for label in repo_config.approval_labels:
                     label_exists = await run_in_threadpool(
                         github_client.repo_has_label,
operator: core/ReplaceComparisonOperator_Eq_NotEq, occurrence: 6
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -272,7 +272,7 @@
                         }
 
             # Check if we should remove approval when label is removed
-            if repo_config.auto_approve_on_label and action == "unlabeled":
+            if repo_config.auto_approve_on_label and action != "unlabeled":
                 removed_label = payload.get("label", {}).get("name")
                 if removed_label in repo_config.approval_labels:
                     logger.info(
operator: core/ReplaceComparisonOperator_Eq_NotEq, occurrence: 7
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -530,7 +530,7 @@
 
                 org_repo_full_name = None
                 if (
-                    owner_type == "Organization"
+                    owner_type != "Organization"
                     and owner_login
                     and repo_full_name != f"{owner_login}/.github"
                 ):
operator: core/ReplaceComparisonOperator_Eq_Lt, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -109,7 +109,7 @@
             )
 
             # Route to appropriate handler
-            if event_type == "pull_request":
+            if event_type < "pull_request":
                 result = await self._handle_pull_request(payload)
             elif event_type == "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
operator: core/ReplaceComparisonOperator_Eq_Lt, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -111,7 +111,7 @@
             # Route to appropriate handler
             if event_type == "pull_request":
                 result = await self._handle_pull_request(payload)
-            elif event_type == "pull_request_review_comment":
+            elif event_type < "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
             elif event_type == "issue_comment":
                 # Issue comments can be on PRs too
operator: core/ReplaceComparisonOperator_Eq_Lt, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -113,7 +113,7 @@
                 result = await self._handle_pull_request(payload)
             elif event_type == "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
-            elif event_type == "issue_comment":
+            elif event_type < "issue_comment":
                 # Issue comments can be on PRs too
                 if "pull_request" in payload.get("issue", {}):
                     result = await self._handle_pr_comment(payload)
operator: core/ReplaceComparisonOperator_Eq_Lt, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -119,7 +119,7 @@
                     result = await self._handle_pr_comment(payload)
                 else:
                     result = {"status": "ignored", "message": "Not a PR comment"}
-            elif event_type == "ping":
+            elif event_type < "ping":
                 result = {"status": "ok", "message": "pong"}
             else:
                 result = {"status": "ignored", "message": f"Event type {event_type} not handled"}
operator: core/ReplaceComparisonOperator_Eq_Lt, occurrence: 4
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -187,7 +187,7 @@
                     },
                 )
 
-                if action == "opened":
+                if action < "opened":
                     await run_in_threadpool(
                         github_client.create_pr_review_comment,
                         installation_id,
operator: core/ReplaceComparisonOperator_Eq_Lt, occurrence: 5
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -206,7 +206,7 @@
                     "message": "Invalid repository configuration",
                 }
 
-            if action == "opened":
+            if action < "opened":
                 for label in repo_config.approval_labels:
                     label_exists = await run_in_threadpool(
                         github_client.repo_has_label,
operator: core/ReplaceComparisonOperator_Eq_Lt, occurrence: 6
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -272,7 +272,7 @@
                         }
 
             # Check if we should remove approval when label is removed
-            if repo_config.auto_approve_on_label and action == "unlabeled":
+            if repo_config.auto_approve_on_label and action < "unlabeled":
                 removed_label = payload.get("label", {}).get("name")
                 if removed_label in repo_config.approval_labels:
                     logger.info(
operator: core/ReplaceComparisonOperator_Eq_Lt, occurrence: 7
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -530,7 +530,7 @@
 
                 org_repo_full_name = None
                 if (
-                    owner_type == "Organization"
+                    owner_type < "Organization"
                     and owner_login
                     and repo_full_name != f"{owner_login}/.github"
                 ):
operator: core/ReplaceComparisonOperator_Eq_LtE, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -109,7 +109,7 @@
             )
 
             # Route to appropriate handler
-            if event_type == "pull_request":
+            if event_type <= "pull_request":
                 result = await self._handle_pull_request(payload)
             elif event_type == "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
operator: core/ReplaceComparisonOperator_Eq_LtE, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -111,7 +111,7 @@
             # Route to appropriate handler
             if event_type == "pull_request":
                 result = await self._handle_pull_request(payload)
-            elif event_type == "pull_request_review_comment":
+            elif event_type <= "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
             elif event_type == "issue_comment":
                 # Issue comments can be on PRs too
operator: core/ReplaceComparisonOperator_Eq_LtE, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -113,7 +113,7 @@
                 result = await self._handle_pull_request(payload)
             elif event_type == "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
-            elif event_type == "issue_comment":
+            elif event_type <= "issue_comment":
                 # Issue comments can be on PRs too
                 if "pull_request" in payload.get("issue", {}):
                     result = await self._handle_pr_comment(payload)
operator: core/ReplaceComparisonOperator_Eq_LtE, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -119,7 +119,7 @@
                     result = await self._handle_pr_comment(payload)
                 else:
                     result = {"status": "ignored", "message": "Not a PR comment"}
-            elif event_type == "ping":
+            elif event_type <= "ping":
                 result = {"status": "ok", "message": "pong"}
             else:
                 result = {"status": "ignored", "message": f"Event type {event_type} not handled"}
operator: core/ReplaceComparisonOperator_Eq_LtE, occurrence: 4
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -187,7 +187,7 @@
                     },
                 )
 
-                if action == "opened":
+                if action <= "opened":
                     await run_in_threadpool(
                         github_client.create_pr_review_comment,
                         installation_id,
operator: core/ReplaceComparisonOperator_Eq_LtE, occurrence: 5
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -206,7 +206,7 @@
                     "message": "Invalid repository configuration",
                 }
 
-            if action == "opened":
+            if action <= "opened":
                 for label in repo_config.approval_labels:
                     label_exists = await run_in_threadpool(
                         github_client.repo_has_label,
operator: core/ReplaceComparisonOperator_Eq_LtE, occurrence: 6
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -272,7 +272,7 @@
                         }
 
             # Check if we should remove approval when label is removed
-            if repo_config.auto_approve_on_label and action == "unlabeled":
+            if repo_config.auto_approve_on_label and action <= "unlabeled":
                 removed_label = payload.get("label", {}).get("name")
                 if removed_label in repo_config.approval_labels:
                     logger.info(
operator: core/ReplaceComparisonOperator_Eq_LtE, occurrence: 7
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -530,7 +530,7 @@
 
                 org_repo_full_name = None
                 if (
-                    owner_type == "Organization"
+                    owner_type <= "Organization"
                     and owner_login
                     and repo_full_name != f"{owner_login}/.github"
                 ):
operator: core/ReplaceComparisonOperator_Eq_Gt, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -109,7 +109,7 @@
             )
 
             # Route to appropriate handler
-            if event_type == "pull_request":
+            if event_type > "pull_request":
                 result = await self._handle_pull_request(payload)
             elif event_type == "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
operator: core/ReplaceComparisonOperator_Eq_Gt, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -111,7 +111,7 @@
             # Route to appropriate handler
             if event_type == "pull_request":
                 result = await self._handle_pull_request(payload)
-            elif event_type == "pull_request_review_comment":
+            elif event_type > "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
             elif event_type == "issue_comment":
                 # Issue comments can be on PRs too
operator: core/ReplaceComparisonOperator_Eq_Gt, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -113,7 +113,7 @@
                 result = await self._handle_pull_request(payload)
             elif event_type == "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
-            elif event_type == "issue_comment":
+            elif event_type > "issue_comment":
                 # Issue comments can be on PRs too
                 if "pull_request" in payload.get("issue", {}):
                     result = await self._handle_pr_comment(payload)
operator: core/ReplaceComparisonOperator_Eq_Gt, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -119,7 +119,7 @@
                     result = await self._handle_pr_comment(payload)
                 else:
                     result = {"status": "ignored", "message": "Not a PR comment"}
-            elif event_type == "ping":
+            elif event_type > "ping":
                 result = {"status": "ok", "message": "pong"}
             else:
                 result = {"status": "ignored", "message": f"Event type {event_type} not handled"}
operator: core/ReplaceComparisonOperator_Eq_Gt, occurrence: 4
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -187,7 +187,7 @@
                     },
                 )
 
-                if action == "opened":
+                if action > "opened":
                     await run_in_threadpool(
                         github_client.create_pr_review_comment,
                         installation_id,
operator: core/ReplaceComparisonOperator_Eq_Gt, occurrence: 5
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -206,7 +206,7 @@
                     "message": "Invalid repository configuration",
                 }
 
-            if action == "opened":
+            if action > "opened":
                 for label in repo_config.approval_labels:
                     label_exists = await run_in_threadpool(
                         github_client.repo_has_label,
operator: core/ReplaceComparisonOperator_Eq_Gt, occurrence: 6
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -272,7 +272,7 @@
                         }
 
             # Check if we should remove approval when label is removed
-            if repo_config.auto_approve_on_label and action == "unlabeled":
+            if repo_config.auto_approve_on_label and action > "unlabeled":
                 removed_label = payload.get("label", {}).get("name")
                 if removed_label in repo_config.approval_labels:
                     logger.info(
operator: core/ReplaceComparisonOperator_Eq_Gt, occurrence: 7
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -530,7 +530,7 @@
 
                 org_repo_full_name = None
                 if (
-                    owner_type == "Organization"
+                    owner_type > "Organization"
                     and owner_login
                     and repo_full_name != f"{owner_login}/.github"
                 ):
operator: core/ReplaceComparisonOperator_Eq_GtE, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -109,7 +109,7 @@
             )
 
             # Route to appropriate handler
-            if event_type == "pull_request":
+            if event_type >= "pull_request":
                 result = await self._handle_pull_request(payload)
             elif event_type == "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
operator: core/ReplaceComparisonOperator_Eq_GtE, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -111,7 +111,7 @@
             # Route to appropriate handler
             if event_type == "pull_request":
                 result = await self._handle_pull_request(payload)
-            elif event_type == "pull_request_review_comment":
+            elif event_type >= "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
             elif event_type == "issue_comment":
                 # Issue comments can be on PRs too
operator: core/ReplaceComparisonOperator_Eq_GtE, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -113,7 +113,7 @@
                 result = await self._handle_pull_request(payload)
             elif event_type == "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
-            elif event_type == "issue_comment":
+            elif event_type >= "issue_comment":
                 # Issue comments can be on PRs too
                 if "pull_request" in payload.get("issue", {}):
                     result = await self._handle_pr_comment(payload)
operator: core/ReplaceComparisonOperator_Eq_GtE, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -119,7 +119,7 @@
                     result = await self._handle_pr_comment(payload)
                 else:
                     result = {"status": "ignored", "message": "Not a PR comment"}
-            elif event_type == "ping":
+            elif event_type >= "ping":
                 result = {"status": "ok", "message": "pong"}
             else:
                 result = {"status": "ignored", "message": f"Event type {event_type} not handled"}
operator: core/ReplaceComparisonOperator_Eq_GtE, occurrence: 4
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -187,7 +187,7 @@
                     },
                 )
 
-                if action == "opened":
+                if action >= "opened":
                     await run_in_threadpool(
                         github_client.create_pr_review_comment,
                         installation_id,
operator: core/ReplaceComparisonOperator_Eq_GtE, occurrence: 5
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -206,7 +206,7 @@
                     "message": "Invalid repository configuration",
                 }
 
-            if action == "opened":
+            if action >= "opened":
                 for label in repo_config.approval_labels:
                     label_exists = await run_in_threadpool(
                         github_client.repo_has_label,
operator: core/ReplaceComparisonOperator_Eq_GtE, occurrence: 6
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -272,7 +272,7 @@
                         }
 
             # Check if we should remove approval when label is removed
-            if repo_config.auto_approve_on_label and action == "unlabeled":
+            if repo_config.auto_approve_on_label and action >= "unlabeled":
                 removed_label = payload.get("label", {}).get("name")
                 if removed_label in repo_config.approval_labels:
                     logger.info(
operator: core/ReplaceComparisonOperator_Eq_GtE, occurrence: 7
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -530,7 +530,7 @@
 
                 org_repo_full_name = None
                 if (
-                    owner_type == "Organization"
+                    owner_type >= "Organization"
                     and owner_login
                     and repo_full_name != f"{owner_login}/.github"
                 ):
operator: core/ReplaceComparisonOperator_Eq_Is, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -109,7 +109,7 @@
             )
 
             # Route to appropriate handler
-            if event_type == "pull_request":
+            if event_type is "pull_request":
                 result = await self._handle_pull_request(payload)
             elif event_type == "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
operator: core/ReplaceComparisonOperator_Eq_Is, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -111,7 +111,7 @@
             # Route to appropriate handler
             if event_type == "pull_request":
                 result = await self._handle_pull_request(payload)
-            elif event_type == "pull_request_review_comment":
+            elif event_type is "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
             elif event_type == "issue_comment":
                 # Issue comments can be on PRs too
operator: core/ReplaceComparisonOperator_Eq_Is, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -113,7 +113,7 @@
                 result = await self._handle_pull_request(payload)
             elif event_type == "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
-            elif event_type == "issue_comment":
+            elif event_type is "issue_comment":
                 # Issue comments can be on PRs too
                 if "pull_request" in payload.get("issue", {}):
                     result = await self._handle_pr_comment(payload)
operator: core/ReplaceComparisonOperator_Eq_Is, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -119,7 +119,7 @@
                     result = await self._handle_pr_comment(payload)
                 else:
                     result = {"status": "ignored", "message": "Not a PR comment"}
-            elif event_type == "ping":
+            elif event_type is "ping":
                 result = {"status": "ok", "message": "pong"}
             else:
                 result = {"status": "ignored", "message": f"Event type {event_type} not handled"}
operator: core/ReplaceComparisonOperator_Eq_Is, occurrence: 4
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -187,7 +187,7 @@
                     },
                 )
 
-                if action == "opened":
+                if action is "opened":
                     await run_in_threadpool(
                         github_client.create_pr_review_comment,
                         installation_id,
operator: core/ReplaceComparisonOperator_Eq_Is, occurrence: 5
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -206,7 +206,7 @@
                     "message": "Invalid repository configuration",
                 }
 
-            if action == "opened":
+            if action is "opened":
                 for label in repo_config.approval_labels:
                     label_exists = await run_in_threadpool(
                         github_client.repo_has_label,
operator: core/ReplaceComparisonOperator_Eq_Is, occurrence: 6
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -272,7 +272,7 @@
                         }
 
             # Check if we should remove approval when label is removed
-            if repo_config.auto_approve_on_label and action == "unlabeled":
+            if repo_config.auto_approve_on_label and action is "unlabeled":
                 removed_label = payload.get("label", {}).get("name")
                 if removed_label in repo_config.approval_labels:
                     logger.info(
operator: core/ReplaceComparisonOperator_Eq_Is, occurrence: 7
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -530,7 +530,7 @@
 
                 org_repo_full_name = None
                 if (
-                    owner_type == "Organization"
+                    owner_type is "Organization"
                     and owner_login
                     and repo_full_name != f"{owner_login}/.github"
                 ):
operator: core/ReplaceComparisonOperator_Eq_IsNot, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -109,7 +109,7 @@
             )
 
             # Route to appropriate handler
-            if event_type == "pull_request":
+            if event_type is not "pull_request":
                 result = await self._handle_pull_request(payload)
             elif event_type == "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
operator: core/ReplaceComparisonOperator_Eq_IsNot, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -111,7 +111,7 @@
             # Route to appropriate handler
             if event_type == "pull_request":
                 result = await self._handle_pull_request(payload)
-            elif event_type == "pull_request_review_comment":
+            elif event_type is not "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
             elif event_type == "issue_comment":
                 # Issue comments can be on PRs too
operator: core/ReplaceComparisonOperator_Eq_IsNot, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -113,7 +113,7 @@
                 result = await self._handle_pull_request(payload)
             elif event_type == "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
-            elif event_type == "issue_comment":
+            elif event_type is not "issue_comment":
                 # Issue comments can be on PRs too
                 if "pull_request" in payload.get("issue", {}):
                     result = await self._handle_pr_comment(payload)
operator: core/ReplaceComparisonOperator_Eq_IsNot, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -119,7 +119,7 @@
                     result = await self._handle_pr_comment(payload)
                 else:
                     result = {"status": "ignored", "message": "Not a PR comment"}
-            elif event_type == "ping":
+            elif event_type is not "ping":
                 result = {"status": "ok", "message": "pong"}
             else:
                 result = {"status": "ignored", "message": f"Event type {event_type} not handled"}
operator: core/ReplaceComparisonOperator_Eq_IsNot, occurrence: 4
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -187,7 +187,7 @@
                     },
                 )
 
-                if action == "opened":
+                if action is not "opened":
                     await run_in_threadpool(
                         github_client.create_pr_review_comment,
                         installation_id,
operator: core/ReplaceComparisonOperator_Eq_IsNot, occurrence: 5
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -206,7 +206,7 @@
                     "message": "Invalid repository configuration",
                 }
 
-            if action == "opened":
+            if action is not "opened":
                 for label in repo_config.approval_labels:
                     label_exists = await run_in_threadpool(
                         github_client.repo_has_label,
operator: core/ReplaceComparisonOperator_Eq_IsNot, occurrence: 6
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -272,7 +272,7 @@
                         }
 
             # Check if we should remove approval when label is removed
-            if repo_config.auto_approve_on_label and action == "unlabeled":
+            if repo_config.auto_approve_on_label and action is not "unlabeled":
                 removed_label = payload.get("label", {}).get("name")
                 if removed_label in repo_config.approval_labels:
                     logger.info(
operator: core/ReplaceComparisonOperator_Eq_IsNot, occurrence: 7
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -530,7 +530,7 @@
 
                 org_repo_full_name = None
                 if (
-                    owner_type == "Organization"
+                    owner_type is not "Organization"
                     and owner_login
                     and repo_full_name != f"{owner_login}/.github"
                 ):
operator: core/ReplaceComparisonOperator_NotEq_Eq, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -532,7 +532,7 @@
                 if (
                     owner_type == "Organization"
                     and owner_login
-                    and repo_full_name != f"{owner_login}/.github"
+                    and repo_full_name == f"{owner_login}/.github"
                 ):
                     org_repo_full_name = f"{owner_login}/.github"
                     org_content = await run_in_threadpool(
operator: core/ReplaceComparisonOperator_NotEq_Lt, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -532,7 +532,7 @@
                 if (
                     owner_type == "Organization"
                     and owner_login
-                    and repo_full_name != f"{owner_login}/.github"
+                    and repo_full_name < f"{owner_login}/.github"
                 ):
                     org_repo_full_name = f"{owner_login}/.github"
                     org_content = await run_in_threadpool(
operator: core/ReplaceComparisonOperator_NotEq_LtE, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -532,7 +532,7 @@
                 if (
                     owner_type == "Organization"
                     and owner_login
-                    and repo_full_name != f"{owner_login}/.github"
+                    and repo_full_name <= f"{owner_login}/.github"
                 ):
                     org_repo_full_name = f"{owner_login}/.github"
                     org_content = await run_in_threadpool(
operator: core/ReplaceComparisonOperator_NotEq_Gt, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -532,7 +532,7 @@
                 if (
                     owner_type == "Organization"
                     and owner_login
-                    and repo_full_name != f"{owner_login}/.github"
+                    and repo_full_name > f"{owner_login}/.github"
                 ):
                     org_repo_full_name = f"{owner_login}/.github"
                     org_content = await run_in_threadpool(
operator: core/ReplaceComparisonOperator_NotEq_GtE, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -532,7 +532,7 @@
                 if (
                     owner_type == "Organization"
                     and owner_login
-                    and repo_full_name != f"{owner_login}/.github"
+                    and repo_full_name >= f"{owner_login}/.github"
                 ):
                     org_repo_full_name = f"{owner_login}/.github"
                     org_content = await run_in_threadpool(
operator: core/ReplaceComparisonOperator_NotEq_Is, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -532,7 +532,7 @@
                 if (
                     owner_type == "Organization"
                     and owner_login
-                    and repo_full_name != f"{owner_login}/.github"
+                    and repo_full_name is f"{owner_login}/.github"
                 ):
                     org_repo_full_name = f"{owner_login}/.github"
                     org_content = await run_in_threadpool(
operator: core/ReplaceComparisonOperator_NotEq_IsNot, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -532,7 +532,7 @@
                 if (
                     owner_type == "Organization"
                     and owner_login
-                    and repo_full_name != f"{owner_login}/.github"
+                    and repo_full_name is not f"{owner_login}/.github"
                 ):
                     org_repo_full_name = f"{owner_login}/.github"
                     org_content = await run_in_threadpool(
operator: core/ReplaceComparisonOperator_Gt_Eq, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -328,7 +328,7 @@
         comment_body = comment.get("body", "")
 
         # Security: limit comment length to prevent DoS
-        if len(comment_body) > MAX_COMMENT_LENGTH:
+        if len(comment_body) == MAX_COMMENT_LENGTH:
             return {"status": "ignored", "message": "Comment too long"}
 
         comment_body = comment_body.lower().strip()
operator: core/ReplaceComparisonOperator_Gt_NotEq, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -328,7 +328,7 @@
         comment_body = comment.get("body", "")
 
         # Security: limit comment length to prevent DoS
-        if len(comment_body) > MAX_COMMENT_LENGTH:
+        if len(comment_body) != MAX_COMMENT_LENGTH:
             return {"status": "ignored", "message": "Comment too long"}
 
         comment_body = comment_body.lower().strip()
operator: core/ReplaceComparisonOperator_Gt_Lt, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -328,7 +328,7 @@
         comment_body = comment.get("body", "")
 
         # Security: limit comment length to prevent DoS
-        if len(comment_body) > MAX_COMMENT_LENGTH:
+        if len(comment_body) < MAX_COMMENT_LENGTH:
             return {"status": "ignored", "message": "Comment too long"}
 
         comment_body = comment_body.lower().strip()
operator: core/ReplaceComparisonOperator_Gt_LtE, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -328,7 +328,7 @@
         comment_body = comment.get("body", "")
 
         # Security: limit comment length to prevent DoS
-        if len(comment_body) > MAX_COMMENT_LENGTH:
+        if len(comment_body) <= MAX_COMMENT_LENGTH:
             return {"status": "ignored", "message": "Comment too long"}
 
         comment_body = comment_body.lower().strip()
operator: core/ReplaceComparisonOperator_Gt_GtE, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -328,7 +328,7 @@
         comment_body = comment.get("body", "")
 
         # Security: limit comment length to prevent DoS
-        if len(comment_body) > MAX_COMMENT_LENGTH:
+        if len(comment_body) >= MAX_COMMENT_LENGTH:
             return {"status": "ignored", "message": "Comment too long"}
 
         comment_body = comment_body.lower().strip()
operator: core/ReplaceComparisonOperator_Gt_Is, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -328,7 +328,7 @@
         comment_body = comment.get("body", "")
 
         # Security: limit comment length to prevent DoS
-        if len(comment_body) > MAX_COMMENT_LENGTH:
+        if len(comment_body) is MAX_COMMENT_LENGTH:
             return {"status": "ignored", "message": "Comment too long"}
 
         comment_body = comment_body.lower().strip()
operator: core/ReplaceComparisonOperator_Gt_IsNot, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -328,7 +328,7 @@
         comment_body = comment.get("body", "")
 
         # Security: limit comment length to prevent DoS
-        if len(comment_body) > MAX_COMMENT_LENGTH:
+        if len(comment_body) is not MAX_COMMENT_LENGTH:
             return {"status": "ignored", "message": "Comment too long"}
 
         comment_body = comment_body.lower().strip()
operator: core/ReplaceComparisonOperator_Is_Eq, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -214,7 +214,7 @@
                         repo_full_name,
                         label,
                     )
-                    if label_exists is False:
+                    if label_exists == False:
                         logger.warning(
                             "Approval label %s not found in %s",
                             label,
operator: core/ReplaceComparisonOperator_Is_NotEq, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -214,7 +214,7 @@
                         repo_full_name,
                         label,
                     )
-                    if label_exists is False:
+                    if label_exists != False:
                         logger.warning(
                             "Approval label %s not found in %s",
                             label,
operator: core/ReplaceComparisonOperator_Is_Lt, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -214,7 +214,7 @@
                         repo_full_name,
                         label,
                     )
-                    if label_exists is False:
+                    if label_exists < False:
                         logger.warning(
                             "Approval label %s not found in %s",
                             label,
operator: core/ReplaceComparisonOperator_Is_LtE, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -214,7 +214,7 @@
                         repo_full_name,
                         label,
                     )
-                    if label_exists is False:
+                    if label_exists <= False:
                         logger.warning(
                             "Approval label %s not found in %s",
                             label,
operator: core/ReplaceComparisonOperator_Is_Gt, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -214,7 +214,7 @@
                         repo_full_name,
                         label,
                     )
-                    if label_exists is False:
+                    if label_exists > False:
                         logger.warning(
                             "Approval label %s not found in %s",
                             label,
operator: core/ReplaceComparisonOperator_Is_GtE, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -214,7 +214,7 @@
                         repo_full_name,
                         label,
                     )
-                    if label_exists is False:
+                    if label_exists >= False:
                         logger.warning(
                             "Approval label %s not found in %s",
                             label,
operator: core/ReplaceComparisonOperator_Is_IsNot, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -49,7 +49,7 @@
         Raises:
             RuntimeError: If webhook secret is not configured.
         """
-        if self._webhook_secret is None:
+        if self._webhook_secret is not None:
             if not settings.webhook_secret:
                 raise RuntimeError(
                     "Webhook secret not configured. Visit /setup to create your GitHub App."
operator: core/ReplaceComparisonOperator_Is_IsNot, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -214,7 +214,7 @@
                         repo_full_name,
                         label,
                     )
-                    if label_exists is False:
+                    if label_exists is not False:
                         logger.warning(
                             "Approval label %s not found in %s",
                             label,
operator: core/ReplaceUnaryOperator_USub_UAdd, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -341,7 +341,7 @@
         if "pull_request" in payload.get("issue", {}):
             pr_url = payload["issue"]["pull_request"]["url"]
             # Extract PR number from URL
-            pr_number = int(pr_url.split("/")[-1])
+            pr_number = int(pr_url.split("/")[+1])
         elif "pull_request" in payload:
             pr_number = payload["pull_request"]["number"]
         else:
operator: core/ReplaceUnaryOperator_USub_Invert, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -341,7 +341,7 @@
         if "pull_request" in payload.get("issue", {}):
             pr_url = payload["issue"]["pull_request"]["url"]
             # Extract PR number from URL
-            pr_number = int(pr_url.split("/")[-1])
+            pr_number = int(pr_url.split("/")[~1])
         elif "pull_request" in payload:
             pr_number = payload["pull_request"]["number"]
         else:
operator: core/ReplaceUnaryOperator_USub_Not, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -341,7 +341,7 @@
         if "pull_request" in payload.get("issue", {}):
             pr_url = payload["issue"]["pull_request"]["url"]
             # Extract PR number from URL
-            pr_number = int(pr_url.split("/")[-1])
+            pr_number = int(pr_url.split("/")[not 1])
         elif "pull_request" in payload:
             pr_number = payload["pull_request"]["number"]
         else:
operator: core/ReplaceUnaryOperator_Delete_USub, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -341,7 +341,7 @@
         if "pull_request" in payload.get("issue", {}):
             pr_url = payload["issue"]["pull_request"]["url"]
             # Extract PR number from URL
-            pr_number = int(pr_url.split("/")[-1])
+            pr_number = int(pr_url.split("/")[1])
         elif "pull_request" in payload:
             pr_number = payload["pull_request"]["number"]
         else:
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -50,7 +50,7 @@
             RuntimeError: If webhook secret is not configured.
         """
         if self._webhook_secret is None:
-            if not settings.webhook_secret:
+            if  settings.webhook_secret:
                 raise RuntimeError(
                     "Webhook secret not configured. Visit /setup to create your GitHub App."
                 )
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -67,7 +67,7 @@
         Returns:
             True if signature is valid
         """
-        if not signature:
+        if  signature:
             return False
 
         expected_signature = (
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -157,7 +157,7 @@
                 "github.action": action or "unknown",
             },
         ) as span:
-            if not all([pr_number, repo_full_name, installation_id]):
+            if  all([pr_number, repo_full_name, installation_id]):
                 logger.warning("Missing required fields in PR event")
                 add_span_attributes(span, {"webhook.result": "missing_fields"})
                 set_span_ok(span)
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -364,7 +364,7 @@
                 "chatops.commenter": commenter,
             },
         ) as span:
-            if not all([pr_number, repo_full_name, installation_id]):
+            if  all([pr_number, repo_full_name, installation_id]):
                 logger.warning("Missing required fields in comment event")
                 add_span_attributes(span, {"chatops.result": "missing_fields"})
                 set_span_ok(span)
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 4
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -393,7 +393,7 @@
                     "message": "Invalid repository configuration",
                 }
 
-            if not repo_config.chatops_enabled:
+            if  repo_config.chatops_enabled:
                 add_span_attributes(span, {"chatops.result": "disabled"})
                 set_span_ok(span)
                 return {"status": "ignored", "message": "Chatops not enabled"}
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 5
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -400,7 +400,7 @@
 
             # Parse command
             command_match = re.search(r"@stampbot\s+(\w+)", comment_body)
-            if not command_match:
+            if  command_match:
                 chatops_commands_total.labels(command="none", status="ignored").inc()
                 add_span_attributes(span, {"chatops.result": "no_command"})
                 set_span_ok(span)
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 6
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -417,7 +417,7 @@
                     commenter,
                     repo_config.chatops_required_permission,
                 )
-                if not has_permission:
+                if  has_permission:
                     chatops_commands_total.labels(command=command, status="forbidden").inc()
                     add_span_attributes(
                         span,
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 7
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -656,7 +656,7 @@
                 status=status,
             ).inc()
 
-            if not success:
+            if  success:
                 errors_total.labels(error_type="approval_failed").inc()
 
             add_span_attributes(span, {"approval.result": status})
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 8
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -705,7 +705,7 @@
 
                 add_span_attributes(span, {"dismissal.reviews_found": len(review_ids)})
 
-                if not review_ids:
+                if  review_ids:
                     logger.info(
                         "No bot approvals found on PR #%d",
                         pr_number,
operator: core/AddNot, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -49,7 +49,7 @@
         Raises:
             RuntimeError: If webhook secret is not configured.
         """
-        if self._webhook_secret is None:
+        if not self._webhook_secret is None:
             if not settings.webhook_secret:
                 raise RuntimeError(
                     "Webhook secret not configured. Visit /setup to create your GitHub App."
operator: core/AddNot, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -50,7 +50,7 @@
             RuntimeError: If webhook secret is not configured.
         """
         if self._webhook_secret is None:
-            if not settings.webhook_secret:
+            if not not settings.webhook_secret:
                 raise RuntimeError(
                     "Webhook secret not configured. Visit /setup to create your GitHub App."
                 )
operator: core/AddNot, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -67,7 +67,7 @@
         Returns:
             True if signature is valid
         """
-        if not signature:
+        if not not signature:
             return False
 
         expected_signature = (
operator: core/AddNot, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -109,7 +109,7 @@
             )
 
             # Route to appropriate handler
-            if event_type == "pull_request":
+            if not event_type == "pull_request":
                 result = await self._handle_pull_request(payload)
             elif event_type == "pull_request_review_comment":
                 result = await self._handle_pr_comment(payload)
operator: core/AddNot, occurrence: 4
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -115,7 +115,7 @@
                 result = await self._handle_pr_comment(payload)
             elif event_type == "issue_comment":
                 # Issue comments can be on PRs too
-                if "pull_request" in payload.get("issue", {}):
+                if not "pull_request" in payload.get("issue", {}):
                     result = await self._handle_pr_comment(payload)
                 else:
                     result = {"status": "ignored", "message": "Not a PR comment"}
operator: core/AddNot, occurrence: 5
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -157,7 +157,7 @@
                 "github.action": action or "unknown",
             },
         ) as span:
-            if not all([pr_number, repo_full_name, installation_id]):
+            if not not all([pr_number, repo_full_name, installation_id]):
                 logger.warning("Missing required fields in PR event")
                 add_span_attributes(span, {"webhook.result": "missing_fields"})
                 set_span_ok(span)
operator: core/AddNot, occurrence: 6
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -172,7 +172,7 @@
                 owner_type,
             )
 
-            if repo_config.config_error:
+            if not repo_config.config_error:
                 logger.warning(
                     "Invalid stampbot.toml in %s: %s",
                     repo_full_name,
operator: core/AddNot, occurrence: 7
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -187,7 +187,7 @@
                     },
                 )
 
-                if action == "opened":
+                if not action == "opened":
                     await run_in_threadpool(
                         github_client.create_pr_review_comment,
                         installation_id,
operator: core/AddNot, occurrence: 8
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -206,7 +206,7 @@
                     "message": "Invalid repository configuration",
                 }
 
-            if action == "opened":
+            if not action == "opened":
                 for label in repo_config.approval_labels:
                     label_exists = await run_in_threadpool(
                         github_client.repo_has_label,
operator: core/AddNot, occurrence: 9
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -214,7 +214,7 @@
                         repo_full_name,
                         label,
                     )
-                    if label_exists is False:
+                    if not label_exists is False:
                         logger.warning(
                             "Approval label %s not found in %s",
                             label,
operator: core/AddNot, occurrence: 10
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -223,7 +223,7 @@
                         )
 
             # Check if we should approve based on labels
-            if repo_config.auto_approve_on_label and action in [
+            if not repo_config.auto_approve_on_label and action in [
                 "opened",
                 "reopened",
                 "labeled",
operator: core/AddNot, occurrence: 11
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -232,7 +232,7 @@
                 labels = [label["name"] for label in pr.get("labels", [])]
 
                 for label in labels:
-                    if label in repo_config.approval_labels:
+                    if not label in repo_config.approval_labels:
                         logger.info(
                             "PR #%d has approval label: %s",
                             pr_number,
operator: core/AddNot, occurrence: 12
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -256,7 +256,7 @@
                         add_span_attributes(
                             span,
                             {
-                                "webhook.result": "approved" if success else "approval_failed",
+                                "webhook.result": "approved" if not success else "approval_failed",
                                 "webhook.trigger_label": label,
                             },
                         )
operator: core/AddNot, occurrence: 13
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -263,7 +263,7 @@
                         set_span_ok(span)
 
                         return {
-                            "status": "success" if success else "error",
+                            "status": "success" if not success else "error",
                             "message": (
                                 f"PR approved via label: {label}"
                                 if success
operator: core/AddNot, occurrence: 14
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -266,7 +266,7 @@
                             "status": "success" if success else "error",
                             "message": (
                                 f"PR approved via label: {label}"
-                                if success
+                                if not success
                                 else "Failed to approve PR"
                             ),
                         }
operator: core/AddNot, occurrence: 15
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -272,7 +272,7 @@
                         }
 
             # Check if we should remove approval when label is removed
-            if repo_config.auto_approve_on_label and action == "unlabeled":
+            if not repo_config.auto_approve_on_label and action == "unlabeled":
                 removed_label = payload.get("label", {}).get("name")
                 if removed_label in repo_config.approval_labels:
                     logger.info(
operator: core/AddNot, occurrence: 16
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -274,7 +274,7 @@
             # Check if we should remove approval when label is removed
             if repo_config.auto_approve_on_label and action == "unlabeled":
                 removed_label = payload.get("label", {}).get("name")
-                if removed_label in repo_config.approval_labels:
+                if not removed_label in repo_config.approval_labels:
                     logger.info(
                         "Approval label %s removed from PR #%d",
                         removed_label,
operator: core/AddNot, occurrence: 17
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -298,7 +298,7 @@
                     add_span_attributes(
                         span,
                         {
-                            "webhook.result": "dismissed" if success else "dismiss_failed",
+                            "webhook.result": "dismissed" if not success else "dismiss_failed",
                             "webhook.removed_label": removed_label,
                         },
                     )
operator: core/AddNot, occurrence: 18
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -305,7 +305,7 @@
                     set_span_ok(span)
 
                     return {
-                        "status": "success" if success else "error",
+                        "status": "success" if not success else "error",
                         "message": (
                             "Approvals dismissed" if success else "Failed to dismiss approvals"
                         ),
operator: core/AddNot, occurrence: 19
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -307,7 +307,7 @@
                     return {
                         "status": "success" if success else "error",
                         "message": (
-                            "Approvals dismissed" if success else "Failed to dismiss approvals"
+                            "Approvals dismissed" if not success else "Failed to dismiss approvals"
                         ),
                     }
 
operator: core/AddNot, occurrence: 20
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -328,7 +328,7 @@
         comment_body = comment.get("body", "")
 
         # Security: limit comment length to prevent DoS
-        if len(comment_body) > MAX_COMMENT_LENGTH:
+        if not len(comment_body) > MAX_COMMENT_LENGTH:
             return {"status": "ignored", "message": "Comment too long"}
 
         comment_body = comment_body.lower().strip()
operator: core/AddNot, occurrence: 21
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -334,7 +334,7 @@
         comment_body = comment_body.lower().strip()
 
         # Check if bot is mentioned
-        if "@stampbot" not in comment_body:
+        if not "@stampbot" not in comment_body:
             return {"status": "ignored", "message": "Bot not mentioned"}
 
         # Extract PR info
operator: core/AddNot, occurrence: 22
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -338,7 +338,7 @@
             return {"status": "ignored", "message": "Bot not mentioned"}
 
         # Extract PR info
-        if "pull_request" in payload.get("issue", {}):
+        if not "pull_request" in payload.get("issue", {}):
             pr_url = payload["issue"]["pull_request"]["url"]
             # Extract PR number from URL
             pr_number = int(pr_url.split("/")[-1])
operator: core/AddNot, occurrence: 23
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -364,7 +364,7 @@
                 "chatops.commenter": commenter,
             },
         ) as span:
-            if not all([pr_number, repo_full_name, installation_id]):
+            if not not all([pr_number, repo_full_name, installation_id]):
                 logger.warning("Missing required fields in comment event")
                 add_span_attributes(span, {"chatops.result": "missing_fields"})
                 set_span_ok(span)
operator: core/AddNot, occurrence: 24
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -379,7 +379,7 @@
                 owner_type,
             )
 
-            if repo_config.config_error:
+            if not repo_config.config_error:
                 add_span_attributes(
                     span,
                     {
operator: core/AddNot, occurrence: 25
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -393,7 +393,7 @@
                     "message": "Invalid repository configuration",
                 }
 
-            if not repo_config.chatops_enabled:
+            if not not repo_config.chatops_enabled:
                 add_span_attributes(span, {"chatops.result": "disabled"})
                 set_span_ok(span)
                 return {"status": "ignored", "message": "Chatops not enabled"}
operator: core/AddNot, occurrence: 26
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -400,7 +400,7 @@
 
             # Parse command
             command_match = re.search(r"@stampbot\s+(\w+)", comment_body)
-            if not command_match:
+            if not not command_match:
                 chatops_commands_total.labels(command="none", status="ignored").inc()
                 add_span_attributes(span, {"chatops.result": "no_command"})
                 set_span_ok(span)
operator: core/AddNot, occurrence: 27
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -409,7 +409,7 @@
             command = command_match.group(1).lower()
             add_span_attributes(span, {"chatops.command": command})
 
-            if command in repo_config.approve_commands + repo_config.unapprove_commands:
+            if not command in repo_config.approve_commands + repo_config.unapprove_commands:
                 has_permission = await run_in_threadpool(
                     github_client.user_has_permission,
                     installation_id,
operator: core/AddNot, occurrence: 28
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -417,7 +417,7 @@
                     commenter,
                     repo_config.chatops_required_permission,
                 )
-                if not has_permission:
+                if not not has_permission:
                     chatops_commands_total.labels(command=command, status="forbidden").inc()
                     add_span_attributes(
                         span,
operator: core/AddNot, occurrence: 29
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -435,7 +435,7 @@
                     }
 
             # Handle approve commands
-            if command in repo_config.approve_commands:
+            if not command in repo_config.approve_commands:
                 success = await self._approve_pr(
                     installation_id,
                     repo_full_name,
operator: core/AddNot, occurrence: 30
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -446,7 +446,7 @@
 
                 chatops_commands_total.labels(
                     command="approve",
-                    status="success" if success else "failure",
+                    status="success" if not success else "failure",
                 ).inc()
 
                 add_span_attributes(
operator: core/AddNot, occurrence: 31
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -450,7 +450,7 @@
                 ).inc()
 
                 add_span_attributes(
-                    span, {"chatops.result": "approved" if success else "approval_failed"}
+                    span, {"chatops.result": "approved" if not success else "approval_failed"}
                 )
                 set_span_ok(span)
 
operator: core/AddNot, occurrence: 32
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -455,7 +455,7 @@
                 set_span_ok(span)
 
                 return {
-                    "status": "success" if success else "error",
+                    "status": "success" if not success else "error",
                     "message": "PR approved" if success else "Failed to approve PR",
                 }
 
operator: core/AddNot, occurrence: 33
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -456,7 +456,7 @@
 
                 return {
                     "status": "success" if success else "error",
-                    "message": "PR approved" if success else "Failed to approve PR",
+                    "message": "PR approved" if not success else "Failed to approve PR",
                 }
 
             # Handle unapprove commands
operator: core/AddNot, occurrence: 34
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -471,7 +471,7 @@
 
                 chatops_commands_total.labels(
                     command="unapprove",
-                    status="success" if success else "failure",
+                    status="success" if not success else "failure",
                 ).inc()
 
                 add_span_attributes(
operator: core/AddNot, occurrence: 35
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -475,7 +475,7 @@
                 ).inc()
 
                 add_span_attributes(
-                    span, {"chatops.result": "unapproved" if success else "unapprove_failed"}
+                    span, {"chatops.result": "unapproved" if not success else "unapprove_failed"}
                 )
                 set_span_ok(span)
 
operator: core/AddNot, occurrence: 36
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -480,7 +480,7 @@
                 set_span_ok(span)
 
                 return {
-                    "status": "success" if success else "error",
+                    "status": "success" if not success else "error",
                     "message": "Approvals dismissed" if success else "Failed to dismiss approvals",
                 }
 
operator: core/AddNot, occurrence: 37
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -481,7 +481,7 @@
 
                 return {
                     "status": "success" if success else "error",
-                    "message": "Approvals dismissed" if success else "Failed to dismiss approvals",
+                    "message": "Approvals dismissed" if not success else "Failed to dismiss approvals",
                 }
 
             chatops_commands_total.labels(command="unknown", status="ignored").inc()
operator: core/AddNot, occurrence: 38
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -525,7 +525,7 @@
                     default_branch,
                 )
 
-                if content:
+                if not content:
                     return self._parse_repo_config(span, content, source_repo=repo_full_name)
 
                 org_repo_full_name = None
operator: core/AddNot, occurrence: 39
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -529,7 +529,7 @@
                     return self._parse_repo_config(span, content, source_repo=repo_full_name)
 
                 org_repo_full_name = None
-                if (
+                if not (
                     owner_type == "Organization"
                     and owner_login
                     and repo_full_name != f"{owner_login}/.github"
operator: core/AddNot, occurrence: 40
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -542,7 +542,7 @@
                         "stampbot.toml",
                         None,
                     )
-                    if org_content:
+                    if not org_content:
                         return self._parse_repo_config(
                             span, org_content, source_repo=org_repo_full_name
                         )
operator: core/AddNot, occurrence: 41
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -551,7 +551,7 @@
                 logger.info(
                     "No stampbot.toml found in %s%s, using defaults",
                     repo_full_name,
-                    f" or {org_repo_full_name}" if org_repo_full_name else "",
+                    f" or {org_repo_full_name}" if not org_repo_full_name else "",
                     extra={"repo": repo_full_name, "org_repo": org_repo_full_name},
                 )
                 add_span_attributes(span, {"config.result": "default"})
operator: core/AddNot, occurrence: 42
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -650,7 +650,7 @@
             duration = time.time() - start_time
             pr_approval_duration_seconds.observe(duration)
 
-            status = "success" if success else "failure"
+            status = "success" if not success else "failure"
             pr_approvals_total.labels(
                 trigger_type=trigger_type,
                 status=status,
operator: core/AddNot, occurrence: 43
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -656,7 +656,7 @@
                 status=status,
             ).inc()
 
-            if not success:
+            if not not success:
                 errors_total.labels(error_type="approval_failed").inc()
 
             add_span_attributes(span, {"approval.result": status})
operator: core/AddNot, occurrence: 44
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -705,7 +705,7 @@
 
                 add_span_attributes(span, {"dismissal.reviews_found": len(review_ids)})
 
-                if not review_ids:
+                if not not review_ids:
                     logger.info(
                         "No bot approvals found on PR #%d",
                         pr_number,
operator: core/AddNot, occurrence: 45
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -734,7 +734,7 @@
                 duration = time.time() - start_time
                 pr_dismissal_duration_seconds.observe(duration)
 
-                status = "success" if success else "failure"
+                status = "success" if not success else "failure"
                 pr_dismissals_total.labels(trigger_type=trigger_type, status=status).inc()
 
                 add_span_attributes(span, {"dismissal.result": status})
operator: core/ReplaceTrueWithFalse, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -716,7 +716,7 @@
                     pr_dismissals_total.labels(trigger_type=trigger_type, status="success").inc()
                     add_span_attributes(span, {"dismissal.result": "no_reviews"})
                     set_span_ok(span)
-                    return True
+                    return False
 
                 # Dismiss each review
                 success = True
operator: core/ReplaceTrueWithFalse, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -719,7 +719,7 @@
                     return True
 
                 # Dismiss each review
-                success = True
+                success = False
                 for review_id in review_ids:
                     result = await run_in_threadpool(
                         github_client.dismiss_approval,
operator: core/ReplaceFalseWithTrue, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -68,7 +68,7 @@
             True if signature is valid
         """
         if not signature:
-            return False
+            return True
 
         expected_signature = (
             "sha256=" + hmac.new(self.webhook_secret, payload, hashlib.sha256).hexdigest()
operator: core/ReplaceFalseWithTrue, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -214,7 +214,7 @@
                         repo_full_name,
                         label,
                     )
-                    if label_exists is False:
+                    if label_exists is True:
                         logger.warning(
                             "Approval label %s not found in %s",
                             label,
operator: core/ReplaceFalseWithTrue, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -759,7 +759,7 @@
                 errors_total.labels(error_type="dismiss_failed").inc()
 
                 set_span_error(span, e)
-                return False
+                return True
 
 
 # Global handler instance
operator: core/ReplaceAndWithOr, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -223,7 +223,7 @@
                         )
 
             # Check if we should approve based on labels
-            if repo_config.auto_approve_on_label and action in [
+            if repo_config.auto_approve_on_label or action in [
                 "opened",
                 "reopened",
                 "labeled",
operator: core/ReplaceAndWithOr, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -272,7 +272,7 @@
                         }
 
             # Check if we should remove approval when label is removed
-            if repo_config.auto_approve_on_label and action == "unlabeled":
+            if repo_config.auto_approve_on_label or action == "unlabeled":
                 removed_label = payload.get("label", {}).get("name")
                 if removed_label in repo_config.approval_labels:
                     logger.info(
operator: core/ReplaceAndWithOr, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -531,7 +531,7 @@
                 org_repo_full_name = None
                 if (
                     owner_type == "Organization"
-                    and owner_login
+                    or owner_login
                     and repo_full_name != f"{owner_login}/.github"
                 ):
                     org_repo_full_name = f"{owner_login}/.github"
operator: core/ReplaceAndWithOr, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -532,7 +532,7 @@
                 if (
                     owner_type == "Organization"
                     and owner_login
-                    and repo_full_name != f"{owner_login}/.github"
+                    or repo_full_name != f"{owner_login}/.github"
                 ):
                     org_repo_full_name = f"{owner_login}/.github"
                     org_content = await run_in_threadpool(
operator: core/ReplaceAndWithOr, occurrence: 4
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -729,7 +729,7 @@
                         review_id,
                         message,
                     )
-                    success = success and result
+                    success = success or result
 
                 duration = time.time() - start_time
                 pr_dismissal_duration_seconds.observe(duration)
operator: core/ReplaceOrWithAnd, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -143,7 +143,7 @@
         pr_number = pr.get("number")
         repo = payload.get("repository", {})
         repo_full_name = repo.get("full_name")
-        repo_default_branch = repo.get("default_branch") or "main"
+        repo_default_branch = repo.get("default_branch") and "main"
         repo_owner = repo.get("owner", {})
         owner_login = repo_owner.get("login")
         owner_type = repo_owner.get("type")
operator: core/ReplaceOrWithAnd, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -152,7 +152,7 @@
         with create_span(
             "webhook.handle_pull_request",
             {
-                "github.repo": repo_full_name or "unknown",
+                "github.repo": repo_full_name and "unknown",
                 "github.pr_number": pr_number or 0,
                 "github.action": action or "unknown",
             },
operator: core/ReplaceOrWithAnd, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -153,7 +153,7 @@
             "webhook.handle_pull_request",
             {
                 "github.repo": repo_full_name or "unknown",
-                "github.pr_number": pr_number or 0,
+                "github.pr_number": pr_number and 0,
                 "github.action": action or "unknown",
             },
         ) as span:
operator: core/ReplaceOrWithAnd, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -154,7 +154,7 @@
             {
                 "github.repo": repo_full_name or "unknown",
                 "github.pr_number": pr_number or 0,
-                "github.action": action or "unknown",
+                "github.action": action and "unknown",
             },
         ) as span:
             if not all([pr_number, repo_full_name, installation_id]):
operator: core/ReplaceOrWithAnd, occurrence: 4
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -349,7 +349,7 @@
 
         repo = payload.get("repository", {})
         repo_full_name = repo.get("full_name")
-        repo_default_branch = repo.get("default_branch") or "main"
+        repo_default_branch = repo.get("default_branch") and "main"
         repo_owner = repo.get("owner", {})
         owner_login = repo_owner.get("login")
         owner_type = repo_owner.get("type")
operator: core/ReplaceOrWithAnd, occurrence: 5
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -359,7 +359,7 @@
         with create_span(
             "webhook.handle_chatops",
             {
-                "github.repo": repo_full_name or "unknown",
+                "github.repo": repo_full_name and "unknown",
                 "github.pr_number": pr_number,
                 "chatops.commenter": commenter,
             },
operator: core/ReplaceOrWithAnd, occurrence: 6
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -514,7 +514,7 @@
         """
         with create_span(
             "webhook.get_repo_config",
-            {"github.repo": repo_full_name, "github.ref": default_branch or "default"},
+            {"github.repo": repo_full_name, "github.ref": default_branch and "default"},
         ) as span:
             try:
                 content = await run_in_threadpool(
operator: core/ExceptionReplacer, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -558,7 +558,7 @@
                 set_span_ok(span)
                 return RepoConfig.default()
 
-            except Exception as e:
+            except CosmicRayTestingException as e:
                 repo_config_loads_total.labels(status="error").inc()
                 logger.warning(
                     "Error loading config from %s: %s, using defaults",
operator: core/ExceptionReplacer, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -588,7 +588,7 @@
         """
         try:
             repo_config = RepoConfig.from_toml(toml_content)
-        except ValueError as e:
+        except CosmicRayTestingException as e:
             repo_config_loads_total.labels(status="error").inc()
             add_span_attributes(
                 span,
operator: core/ExceptionReplacer, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -742,7 +742,7 @@
 
                 return success
 
-            except Exception as e:
+            except CosmicRayTestingException as e:
                 duration = time.time() - start_time
                 pr_dismissal_duration_seconds.observe(duration)
                 pr_dismissals_total.labels(trigger_type=trigger_type, status="failure").inc()
operator: core/NumberReplacer, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -29,7 +29,7 @@
 logger = get_logger(__name__)
 
 # Security: Maximum length for user-controlled strings to prevent DoS
-MAX_COMMENT_LENGTH = 65536  # 64KB - generous but prevents abuse
+MAX_COMMENT_LENGTH = 65537  # 64KB - generous but prevents abuse
 
 
 class WebhookHandler:
operator: core/NumberReplacer, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -29,7 +29,7 @@
 logger = get_logger(__name__)
 
 # Security: Maximum length for user-controlled strings to prevent DoS
-MAX_COMMENT_LENGTH = 65536  # 64KB - generous but prevents abuse
+MAX_COMMENT_LENGTH = 65535  # 64KB - generous but prevents abuse
 
 
 class WebhookHandler:
operator: core/NumberReplacer, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -153,7 +153,7 @@
             "webhook.handle_pull_request",
             {
                 "github.repo": repo_full_name or "unknown",
-                "github.pr_number": pr_number or 0,
+                "github.pr_number": pr_number or 1,
                 "github.action": action or "unknown",
             },
         ) as span:
operator: core/NumberReplacer, occurrence: 3
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -153,7 +153,7 @@
             "webhook.handle_pull_request",
             {
                 "github.repo": repo_full_name or "unknown",
-                "github.pr_number": pr_number or 0,
+                "github.pr_number": pr_number or -1,
                 "github.action": action or "unknown",
             },
         ) as span:
operator: core/NumberReplacer, occurrence: 4
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -341,7 +341,7 @@
         if "pull_request" in payload.get("issue", {}):
             pr_url = payload["issue"]["pull_request"]["url"]
             # Extract PR number from URL
-            pr_number = int(pr_url.split("/")[-1])
+            pr_number = int(pr_url.split("/")[- 2])
         elif "pull_request" in payload:
             pr_number = payload["pull_request"]["number"]
         else:
operator: core/NumberReplacer, occurrence: 5
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -341,7 +341,7 @@
         if "pull_request" in payload.get("issue", {}):
             pr_url = payload["issue"]["pull_request"]["url"]
             # Extract PR number from URL
-            pr_number = int(pr_url.split("/")[-1])
+            pr_number = int(pr_url.split("/")[- 0])
         elif "pull_request" in payload:
             pr_number = payload["pull_request"]["number"]
         else:
operator: core/NumberReplacer, occurrence: 6
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -406,7 +406,7 @@
                 set_span_ok(span)
                 return {"status": "ignored", "message": "No command found"}
 
-            command = command_match.group(1).lower()
+            command = command_match.group( 2).lower()
             add_span_attributes(span, {"chatops.command": command})
 
             if command in repo_config.approve_commands + repo_config.unapprove_commands:
operator: core/NumberReplacer, occurrence: 7
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -406,7 +406,7 @@
                 set_span_ok(span)
                 return {"status": "ignored", "message": "No command found"}
 
-            command = command_match.group(1).lower()
+            command = command_match.group( 0).lower()
             add_span_attributes(span, {"chatops.command": command})
 
             if command in repo_config.approve_commands + repo_config.unapprove_commands:
operator: core/RemoveDecorator, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -38,8 +38,6 @@
     def __init__(self) -> None:
         """Initialize webhook handler (lazy initialization)."""
         self._webhook_secret: bytes | None = None
-
-    @property
     def webhook_secret(self) -> bytes:
         """Get webhook secret, initializing if needed.
 
operator: core/ZeroIterationForLoop, occurrence: 0
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -207,7 +207,7 @@
                 }
 
             if action == "opened":
-                for label in repo_config.approval_labels:
+                for label in []:
                     label_exists = await run_in_threadpool(
                         github_client.repo_has_label,
                         installation_id,
operator: core/ZeroIterationForLoop, occurrence: 1
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -231,7 +231,7 @@
             ]:
                 labels = [label["name"] for label in pr.get("labels", [])]
 
-                for label in labels:
+                for label in []:
                     if label in repo_config.approval_labels:
                         logger.info(
                             "PR #%d has approval label: %s",
operator: core/ZeroIterationForLoop, occurrence: 2
--- mutation diff ---
--- astampbot/webhook_handler.py
+++ bstampbot/webhook_handler.py
@@ -720,7 +720,7 @@
 
                 # Dismiss each review
                 success = True
-                for review_id in review_ids:
+                for review_id in []:
                     result = await run_in_threadpool(
                         github_client.dismiss_approval,
                         installation_id,
operator: core/ReplaceBinaryOperator_BitOr_Add, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -21,7 +21,7 @@
 logger = get_logger(__name__)
 
 
-def configure_telemetry() -> TracerProvider | None:
+def configure_telemetry() -> TracerProvider + None:
     """Configure OpenTelemetry if enabled.
 
     Returns:
operator: core/ReplaceBinaryOperator_BitOr_Add, occurrence: 1
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -101,7 +101,7 @@
 @contextmanager
 def create_span(
     name: str,
-    attributes: dict[str, Any] | None = None,
+    attributes: dict[str, Any] + None = None,
     record_exception: bool = True,
 ) -> Iterator[Span | None]:
     """Create a span context manager for tracing operations.
operator: core/ReplaceBinaryOperator_BitOr_Add, occurrence: 2
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -103,7 +103,7 @@
     name: str,
     attributes: dict[str, Any] | None = None,
     record_exception: bool = True,
-) -> Iterator[Span | None]:
+) -> Iterator[Span + None]:
     """Create a span context manager for tracing operations.
 
     This is a convenience wrapper that handles span creation, attribute setting,
operator: core/ReplaceBinaryOperator_BitOr_Add, occurrence: 3
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -143,7 +143,7 @@
             raise
 
 
-def set_span_error(span: Span | None, error: Exception) -> None:
+def set_span_error(span: Span + None, error: Exception) -> None:
     """Set error status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Add, occurrence: 4
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -155,7 +155,7 @@
         span.set_status(Status(StatusCode.ERROR, str(error)))
 
 
-def set_span_ok(span: Span | None) -> None:
+def set_span_ok(span: Span + None) -> None:
     """Set OK status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Add, occurrence: 5
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -165,7 +165,7 @@
         span.set_status(Status(StatusCode.OK))
 
 
-def add_span_attributes(span: Span | None, attributes: dict[str, Any]) -> None:
+def add_span_attributes(span: Span + None, attributes: dict[str, Any]) -> None:
     """Add attributes to a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Sub, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -21,7 +21,7 @@
 logger = get_logger(__name__)
 
 
-def configure_telemetry() -> TracerProvider | None:
+def configure_telemetry() -> TracerProvider - None:
     """Configure OpenTelemetry if enabled.
 
     Returns:
operator: core/ReplaceBinaryOperator_BitOr_Sub, occurrence: 1
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -101,7 +101,7 @@
 @contextmanager
 def create_span(
     name: str,
-    attributes: dict[str, Any] | None = None,
+    attributes: dict[str, Any] - None = None,
     record_exception: bool = True,
 ) -> Iterator[Span | None]:
     """Create a span context manager for tracing operations.
operator: core/ReplaceBinaryOperator_BitOr_Sub, occurrence: 2
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -103,7 +103,7 @@
     name: str,
     attributes: dict[str, Any] | None = None,
     record_exception: bool = True,
-) -> Iterator[Span | None]:
+) -> Iterator[Span - None]:
     """Create a span context manager for tracing operations.
 
     This is a convenience wrapper that handles span creation, attribute setting,
operator: core/ReplaceBinaryOperator_BitOr_Sub, occurrence: 3
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -143,7 +143,7 @@
             raise
 
 
-def set_span_error(span: Span | None, error: Exception) -> None:
+def set_span_error(span: Span - None, error: Exception) -> None:
     """Set error status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Sub, occurrence: 4
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -155,7 +155,7 @@
         span.set_status(Status(StatusCode.ERROR, str(error)))
 
 
-def set_span_ok(span: Span | None) -> None:
+def set_span_ok(span: Span - None) -> None:
     """Set OK status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Sub, occurrence: 5
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -165,7 +165,7 @@
         span.set_status(Status(StatusCode.OK))
 
 
-def add_span_attributes(span: Span | None, attributes: dict[str, Any]) -> None:
+def add_span_attributes(span: Span - None, attributes: dict[str, Any]) -> None:
     """Add attributes to a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Mul, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -21,7 +21,7 @@
 logger = get_logger(__name__)
 
 
-def configure_telemetry() -> TracerProvider | None:
+def configure_telemetry() -> TracerProvider * None:
     """Configure OpenTelemetry if enabled.
 
     Returns:
operator: core/ReplaceBinaryOperator_BitOr_Mul, occurrence: 1
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -101,7 +101,7 @@
 @contextmanager
 def create_span(
     name: str,
-    attributes: dict[str, Any] | None = None,
+    attributes: dict[str, Any] * None = None,
     record_exception: bool = True,
 ) -> Iterator[Span | None]:
     """Create a span context manager for tracing operations.
operator: core/ReplaceBinaryOperator_BitOr_Mul, occurrence: 2
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -103,7 +103,7 @@
     name: str,
     attributes: dict[str, Any] | None = None,
     record_exception: bool = True,
-) -> Iterator[Span | None]:
+) -> Iterator[Span * None]:
     """Create a span context manager for tracing operations.
 
     This is a convenience wrapper that handles span creation, attribute setting,
operator: core/ReplaceBinaryOperator_BitOr_Mul, occurrence: 3
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -143,7 +143,7 @@
             raise
 
 
-def set_span_error(span: Span | None, error: Exception) -> None:
+def set_span_error(span: Span * None, error: Exception) -> None:
     """Set error status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Mul, occurrence: 4
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -155,7 +155,7 @@
         span.set_status(Status(StatusCode.ERROR, str(error)))
 
 
-def set_span_ok(span: Span | None) -> None:
+def set_span_ok(span: Span * None) -> None:
     """Set OK status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Mul, occurrence: 5
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -165,7 +165,7 @@
         span.set_status(Status(StatusCode.OK))
 
 
-def add_span_attributes(span: Span | None, attributes: dict[str, Any]) -> None:
+def add_span_attributes(span: Span * None, attributes: dict[str, Any]) -> None:
     """Add attributes to a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Div, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -21,7 +21,7 @@
 logger = get_logger(__name__)
 
 
-def configure_telemetry() -> TracerProvider | None:
+def configure_telemetry() -> TracerProvider / None:
     """Configure OpenTelemetry if enabled.
 
     Returns:
operator: core/ReplaceBinaryOperator_BitOr_Div, occurrence: 1
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -101,7 +101,7 @@
 @contextmanager
 def create_span(
     name: str,
-    attributes: dict[str, Any] | None = None,
+    attributes: dict[str, Any] / None = None,
     record_exception: bool = True,
 ) -> Iterator[Span | None]:
     """Create a span context manager for tracing operations.
operator: core/ReplaceBinaryOperator_BitOr_Div, occurrence: 2
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -103,7 +103,7 @@
     name: str,
     attributes: dict[str, Any] | None = None,
     record_exception: bool = True,
-) -> Iterator[Span | None]:
+) -> Iterator[Span / None]:
     """Create a span context manager for tracing operations.
 
     This is a convenience wrapper that handles span creation, attribute setting,
operator: core/ReplaceBinaryOperator_BitOr_Div, occurrence: 3
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -143,7 +143,7 @@
             raise
 
 
-def set_span_error(span: Span | None, error: Exception) -> None:
+def set_span_error(span: Span / None, error: Exception) -> None:
     """Set error status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Div, occurrence: 4
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -155,7 +155,7 @@
         span.set_status(Status(StatusCode.ERROR, str(error)))
 
 
-def set_span_ok(span: Span | None) -> None:
+def set_span_ok(span: Span / None) -> None:
     """Set OK status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Div, occurrence: 5
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -165,7 +165,7 @@
         span.set_status(Status(StatusCode.OK))
 
 
-def add_span_attributes(span: Span | None, attributes: dict[str, Any]) -> None:
+def add_span_attributes(span: Span / None, attributes: dict[str, Any]) -> None:
     """Add attributes to a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_FloorDiv, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -21,7 +21,7 @@
 logger = get_logger(__name__)
 
 
-def configure_telemetry() -> TracerProvider | None:
+def configure_telemetry() -> TracerProvider // None:
     """Configure OpenTelemetry if enabled.
 
     Returns:
operator: core/ReplaceBinaryOperator_BitOr_FloorDiv, occurrence: 1
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -101,7 +101,7 @@
 @contextmanager
 def create_span(
     name: str,
-    attributes: dict[str, Any] | None = None,
+    attributes: dict[str, Any] // None = None,
     record_exception: bool = True,
 ) -> Iterator[Span | None]:
     """Create a span context manager for tracing operations.
operator: core/ReplaceBinaryOperator_BitOr_FloorDiv, occurrence: 2
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -103,7 +103,7 @@
     name: str,
     attributes: dict[str, Any] | None = None,
     record_exception: bool = True,
-) -> Iterator[Span | None]:
+) -> Iterator[Span // None]:
     """Create a span context manager for tracing operations.
 
     This is a convenience wrapper that handles span creation, attribute setting,
operator: core/ReplaceBinaryOperator_BitOr_FloorDiv, occurrence: 3
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -143,7 +143,7 @@
             raise
 
 
-def set_span_error(span: Span | None, error: Exception) -> None:
+def set_span_error(span: Span // None, error: Exception) -> None:
     """Set error status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_FloorDiv, occurrence: 4
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -155,7 +155,7 @@
         span.set_status(Status(StatusCode.ERROR, str(error)))
 
 
-def set_span_ok(span: Span | None) -> None:
+def set_span_ok(span: Span // None) -> None:
     """Set OK status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_FloorDiv, occurrence: 5
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -165,7 +165,7 @@
         span.set_status(Status(StatusCode.OK))
 
 
-def add_span_attributes(span: Span | None, attributes: dict[str, Any]) -> None:
+def add_span_attributes(span: Span // None, attributes: dict[str, Any]) -> None:
     """Add attributes to a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Mod, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -21,7 +21,7 @@
 logger = get_logger(__name__)
 
 
-def configure_telemetry() -> TracerProvider | None:
+def configure_telemetry() -> TracerProvider % None:
     """Configure OpenTelemetry if enabled.
 
     Returns:
operator: core/ReplaceBinaryOperator_BitOr_Mod, occurrence: 1
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -101,7 +101,7 @@
 @contextmanager
 def create_span(
     name: str,
-    attributes: dict[str, Any] | None = None,
+    attributes: dict[str, Any] % None = None,
     record_exception: bool = True,
 ) -> Iterator[Span | None]:
     """Create a span context manager for tracing operations.
operator: core/ReplaceBinaryOperator_BitOr_Mod, occurrence: 2
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -103,7 +103,7 @@
     name: str,
     attributes: dict[str, Any] | None = None,
     record_exception: bool = True,
-) -> Iterator[Span | None]:
+) -> Iterator[Span % None]:
     """Create a span context manager for tracing operations.
 
     This is a convenience wrapper that handles span creation, attribute setting,
operator: core/ReplaceBinaryOperator_BitOr_Mod, occurrence: 3
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -143,7 +143,7 @@
             raise
 
 
-def set_span_error(span: Span | None, error: Exception) -> None:
+def set_span_error(span: Span % None, error: Exception) -> None:
     """Set error status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Mod, occurrence: 4
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -155,7 +155,7 @@
         span.set_status(Status(StatusCode.ERROR, str(error)))
 
 
-def set_span_ok(span: Span | None) -> None:
+def set_span_ok(span: Span % None) -> None:
     """Set OK status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Mod, occurrence: 5
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -165,7 +165,7 @@
         span.set_status(Status(StatusCode.OK))
 
 
-def add_span_attributes(span: Span | None, attributes: dict[str, Any]) -> None:
+def add_span_attributes(span: Span % None, attributes: dict[str, Any]) -> None:
     """Add attributes to a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Pow, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -21,7 +21,7 @@
 logger = get_logger(__name__)
 
 
-def configure_telemetry() -> TracerProvider | None:
+def configure_telemetry() -> TracerProvider ** None:
     """Configure OpenTelemetry if enabled.
 
     Returns:
operator: core/ReplaceBinaryOperator_BitOr_Pow, occurrence: 1
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -101,7 +101,7 @@
 @contextmanager
 def create_span(
     name: str,
-    attributes: dict[str, Any] | None = None,
+    attributes: dict[str, Any] ** None = None,
     record_exception: bool = True,
 ) -> Iterator[Span | None]:
     """Create a span context manager for tracing operations.
operator: core/ReplaceBinaryOperator_BitOr_Pow, occurrence: 2
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -103,7 +103,7 @@
     name: str,
     attributes: dict[str, Any] | None = None,
     record_exception: bool = True,
-) -> Iterator[Span | None]:
+) -> Iterator[Span ** None]:
     """Create a span context manager for tracing operations.
 
     This is a convenience wrapper that handles span creation, attribute setting,
operator: core/ReplaceBinaryOperator_BitOr_Pow, occurrence: 3
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -143,7 +143,7 @@
             raise
 
 
-def set_span_error(span: Span | None, error: Exception) -> None:
+def set_span_error(span: Span ** None, error: Exception) -> None:
     """Set error status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Pow, occurrence: 4
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -155,7 +155,7 @@
         span.set_status(Status(StatusCode.ERROR, str(error)))
 
 
-def set_span_ok(span: Span | None) -> None:
+def set_span_ok(span: Span ** None) -> None:
     """Set OK status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_Pow, occurrence: 5
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -165,7 +165,7 @@
         span.set_status(Status(StatusCode.OK))
 
 
-def add_span_attributes(span: Span | None, attributes: dict[str, Any]) -> None:
+def add_span_attributes(span: Span ** None, attributes: dict[str, Any]) -> None:
     """Add attributes to a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_RShift, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -21,7 +21,7 @@
 logger = get_logger(__name__)
 
 
-def configure_telemetry() -> TracerProvider | None:
+def configure_telemetry() -> TracerProvider >> None:
     """Configure OpenTelemetry if enabled.
 
     Returns:
operator: core/ReplaceBinaryOperator_BitOr_RShift, occurrence: 1
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -101,7 +101,7 @@
 @contextmanager
 def create_span(
     name: str,
-    attributes: dict[str, Any] | None = None,
+    attributes: dict[str, Any] >> None = None,
     record_exception: bool = True,
 ) -> Iterator[Span | None]:
     """Create a span context manager for tracing operations.
operator: core/ReplaceBinaryOperator_BitOr_RShift, occurrence: 2
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -103,7 +103,7 @@
     name: str,
     attributes: dict[str, Any] | None = None,
     record_exception: bool = True,
-) -> Iterator[Span | None]:
+) -> Iterator[Span >> None]:
     """Create a span context manager for tracing operations.
 
     This is a convenience wrapper that handles span creation, attribute setting,
operator: core/ReplaceBinaryOperator_BitOr_RShift, occurrence: 3
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -143,7 +143,7 @@
             raise
 
 
-def set_span_error(span: Span | None, error: Exception) -> None:
+def set_span_error(span: Span >> None, error: Exception) -> None:
     """Set error status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_RShift, occurrence: 4
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -155,7 +155,7 @@
         span.set_status(Status(StatusCode.ERROR, str(error)))
 
 
-def set_span_ok(span: Span | None) -> None:
+def set_span_ok(span: Span >> None) -> None:
     """Set OK status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_RShift, occurrence: 5
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -165,7 +165,7 @@
         span.set_status(Status(StatusCode.OK))
 
 
-def add_span_attributes(span: Span | None, attributes: dict[str, Any]) -> None:
+def add_span_attributes(span: Span >> None, attributes: dict[str, Any]) -> None:
     """Add attributes to a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_LShift, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -21,7 +21,7 @@
 logger = get_logger(__name__)
 
 
-def configure_telemetry() -> TracerProvider | None:
+def configure_telemetry() -> TracerProvider << None:
     """Configure OpenTelemetry if enabled.
 
     Returns:
operator: core/ReplaceBinaryOperator_BitOr_LShift, occurrence: 1
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -101,7 +101,7 @@
 @contextmanager
 def create_span(
     name: str,
-    attributes: dict[str, Any] | None = None,
+    attributes: dict[str, Any] << None = None,
     record_exception: bool = True,
 ) -> Iterator[Span | None]:
     """Create a span context manager for tracing operations.
operator: core/ReplaceBinaryOperator_BitOr_LShift, occurrence: 2
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -103,7 +103,7 @@
     name: str,
     attributes: dict[str, Any] | None = None,
     record_exception: bool = True,
-) -> Iterator[Span | None]:
+) -> Iterator[Span << None]:
     """Create a span context manager for tracing operations.
 
     This is a convenience wrapper that handles span creation, attribute setting,
operator: core/ReplaceBinaryOperator_BitOr_LShift, occurrence: 3
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -143,7 +143,7 @@
             raise
 
 
-def set_span_error(span: Span | None, error: Exception) -> None:
+def set_span_error(span: Span << None, error: Exception) -> None:
     """Set error status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_LShift, occurrence: 4
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -155,7 +155,7 @@
         span.set_status(Status(StatusCode.ERROR, str(error)))
 
 
-def set_span_ok(span: Span | None) -> None:
+def set_span_ok(span: Span << None) -> None:
     """Set OK status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_LShift, occurrence: 5
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -165,7 +165,7 @@
         span.set_status(Status(StatusCode.OK))
 
 
-def add_span_attributes(span: Span | None, attributes: dict[str, Any]) -> None:
+def add_span_attributes(span: Span << None, attributes: dict[str, Any]) -> None:
     """Add attributes to a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_BitAnd, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -21,7 +21,7 @@
 logger = get_logger(__name__)
 
 
-def configure_telemetry() -> TracerProvider | None:
+def configure_telemetry() -> TracerProvider & None:
     """Configure OpenTelemetry if enabled.
 
     Returns:
operator: core/ReplaceBinaryOperator_BitOr_BitAnd, occurrence: 1
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -101,7 +101,7 @@
 @contextmanager
 def create_span(
     name: str,
-    attributes: dict[str, Any] | None = None,
+    attributes: dict[str, Any] & None = None,
     record_exception: bool = True,
 ) -> Iterator[Span | None]:
     """Create a span context manager for tracing operations.
operator: core/ReplaceBinaryOperator_BitOr_BitAnd, occurrence: 2
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -103,7 +103,7 @@
     name: str,
     attributes: dict[str, Any] | None = None,
     record_exception: bool = True,
-) -> Iterator[Span | None]:
+) -> Iterator[Span & None]:
     """Create a span context manager for tracing operations.
 
     This is a convenience wrapper that handles span creation, attribute setting,
operator: core/ReplaceBinaryOperator_BitOr_BitAnd, occurrence: 3
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -143,7 +143,7 @@
             raise
 
 
-def set_span_error(span: Span | None, error: Exception) -> None:
+def set_span_error(span: Span & None, error: Exception) -> None:
     """Set error status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_BitAnd, occurrence: 4
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -155,7 +155,7 @@
         span.set_status(Status(StatusCode.ERROR, str(error)))
 
 
-def set_span_ok(span: Span | None) -> None:
+def set_span_ok(span: Span & None) -> None:
     """Set OK status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_BitAnd, occurrence: 5
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -165,7 +165,7 @@
         span.set_status(Status(StatusCode.OK))
 
 
-def add_span_attributes(span: Span | None, attributes: dict[str, Any]) -> None:
+def add_span_attributes(span: Span & None, attributes: dict[str, Any]) -> None:
     """Add attributes to a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_BitXor, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -21,7 +21,7 @@
 logger = get_logger(__name__)
 
 
-def configure_telemetry() -> TracerProvider | None:
+def configure_telemetry() -> TracerProvider ^ None:
     """Configure OpenTelemetry if enabled.
 
     Returns:
operator: core/ReplaceBinaryOperator_BitOr_BitXor, occurrence: 1
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -101,7 +101,7 @@
 @contextmanager
 def create_span(
     name: str,
-    attributes: dict[str, Any] | None = None,
+    attributes: dict[str, Any] ^ None = None,
     record_exception: bool = True,
 ) -> Iterator[Span | None]:
     """Create a span context manager for tracing operations.
operator: core/ReplaceBinaryOperator_BitOr_BitXor, occurrence: 2
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -103,7 +103,7 @@
     name: str,
     attributes: dict[str, Any] | None = None,
     record_exception: bool = True,
-) -> Iterator[Span | None]:
+) -> Iterator[Span ^ None]:
     """Create a span context manager for tracing operations.
 
     This is a convenience wrapper that handles span creation, attribute setting,
operator: core/ReplaceBinaryOperator_BitOr_BitXor, occurrence: 3
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -143,7 +143,7 @@
             raise
 
 
-def set_span_error(span: Span | None, error: Exception) -> None:
+def set_span_error(span: Span ^ None, error: Exception) -> None:
     """Set error status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_BitXor, occurrence: 4
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -155,7 +155,7 @@
         span.set_status(Status(StatusCode.ERROR, str(error)))
 
 
-def set_span_ok(span: Span | None) -> None:
+def set_span_ok(span: Span ^ None) -> None:
     """Set OK status on a span.
 
     Args:
operator: core/ReplaceBinaryOperator_BitOr_BitXor, occurrence: 5
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -165,7 +165,7 @@
         span.set_status(Status(StatusCode.OK))
 
 
-def add_span_attributes(span: Span | None, attributes: dict[str, Any]) -> None:
+def add_span_attributes(span: Span ^ None, attributes: dict[str, Any]) -> None:
     """Add attributes to a span.
 
     Args:
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -27,7 +27,7 @@
     Returns:
         TracerProvider if telemetry is enabled, None otherwise
     """
-    if not settings.otel_enabled:
+    if  settings.otel_enabled:
         logger.info("OpenTelemetry disabled")
         return None
 
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 1
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -31,7 +31,7 @@
         logger.info("OpenTelemetry disabled")
         return None
 
-    if not settings.otel_endpoint:
+    if  settings.otel_endpoint:
         logger.warning("OpenTelemetry enabled but no endpoint configured")
         return None
 
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 2
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -124,7 +124,7 @@
             if span:
                 span.set_attribute("result", "success")
     """
-    if not settings.otel_enabled:
+    if  settings.otel_enabled:
         yield None
         return
 
operator: core/AddNot, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -27,7 +27,7 @@
     Returns:
         TracerProvider if telemetry is enabled, None otherwise
     """
-    if not settings.otel_enabled:
+    if not not settings.otel_enabled:
         logger.info("OpenTelemetry disabled")
         return None
 
operator: core/AddNot, occurrence: 1
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -31,7 +31,7 @@
         logger.info("OpenTelemetry disabled")
         return None
 
-    if not settings.otel_endpoint:
+    if not not settings.otel_endpoint:
         logger.warning("OpenTelemetry enabled but no endpoint configured")
         return None
 
operator: core/AddNot, occurrence: 2
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -78,7 +78,7 @@
     Args:
         app: FastAPI application instance
     """
-    if settings.otel_enabled:
+    if not settings.otel_enabled:
         try:
             FastAPIInstrumentor.instrument_app(app)
             logger.info("FastAPI instrumented with OpenTelemetry")
operator: core/AddNot, occurrence: 3
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -124,7 +124,7 @@
             if span:
                 span.set_attribute("result", "success")
     """
-    if not settings.otel_enabled:
+    if not not settings.otel_enabled:
         yield None
         return
 
operator: core/AddNot, occurrence: 4
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -132,7 +132,7 @@
 
     with tracer.start_as_current_span(name) as span:
         try:
-            if attributes:
+            if not attributes:
                 for key, value in attributes.items():
                     span.set_attribute(key, value)
             yield span
operator: core/AddNot, occurrence: 5
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -137,7 +137,7 @@
                     span.set_attribute(key, value)
             yield span
         except Exception as e:
-            if record_exception:
+            if not record_exception:
                 span.record_exception(e)
                 span.set_status(Status(StatusCode.ERROR, str(e)))
             raise
operator: core/AddNot, occurrence: 6
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -150,7 +150,7 @@
         span: The span to update (can be None if telemetry disabled)
         error: The exception that occurred
     """
-    if span:
+    if not span:
         span.record_exception(error)
         span.set_status(Status(StatusCode.ERROR, str(error)))
 
operator: core/AddNot, occurrence: 7
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -161,7 +161,7 @@
     Args:
         span: The span to update (can be None if telemetry disabled)
     """
-    if span:
+    if not span:
         span.set_status(Status(StatusCode.OK))
 
 
operator: core/AddNot, occurrence: 8
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -172,7 +172,7 @@
         span: The span to update (can be None if telemetry disabled)
         attributes: Attributes to add
     """
-    if span:
+    if not span:
         for key, value in attributes.items():
             span.set_attribute(key, value)
 
operator: core/ReplaceTrueWithFalse, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -50,7 +50,7 @@
         # Create OTLP exporter
         otlp_exporter = OTLPSpanExporter(
             endpoint=settings.otel_endpoint,
-            insecure=True,  # Use TLS in production
+            insecure=False,  # Use TLS in production
         )
 
         # Add span processor
operator: core/ReplaceTrueWithFalse, occurrence: 1
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -102,7 +102,7 @@
 def create_span(
     name: str,
     attributes: dict[str, Any] | None = None,
-    record_exception: bool = True,
+    record_exception: bool = False,
 ) -> Iterator[Span | None]:
     """Create a span context manager for tracing operations.
 
operator: core/ExceptionReplacer, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -67,7 +67,7 @@
 
         return provider
 
-    except Exception as e:
+    except CosmicRayTestingException as e:
         logger.error("Failed to configure OpenTelemetry: %s", e, extra={"error": str(e)})
         return None
 
operator: core/ExceptionReplacer, occurrence: 1
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -82,7 +82,7 @@
         try:
             FastAPIInstrumentor.instrument_app(app)
             logger.info("FastAPI instrumented with OpenTelemetry")
-        except Exception as e:
+        except CosmicRayTestingException as e:
             logger.error("Failed to instrument FastAPI: %s", e, extra={"error": str(e)})
 
 
operator: core/ExceptionReplacer, occurrence: 2
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -136,7 +136,7 @@
                 for key, value in attributes.items():
                     span.set_attribute(key, value)
             yield span
-        except Exception as e:
+        except CosmicRayTestingException as e:
             if record_exception:
                 span.record_exception(e)
                 span.set_status(Status(StatusCode.ERROR, str(e)))
operator: core/RemoveDecorator, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -96,9 +96,6 @@
         Tracer instance (no-op if telemetry disabled)
     """
     return trace.get_tracer(name)
-
-
-@contextmanager
 def create_span(
     name: str,
     attributes: dict[str, Any] | None = None,
operator: core/ZeroIterationForLoop, occurrence: 0
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -133,7 +133,7 @@
     with tracer.start_as_current_span(name) as span:
         try:
             if attributes:
-                for key, value in attributes.items():
+                for key, value in []:
                     span.set_attribute(key, value)
             yield span
         except Exception as e:
operator: core/ZeroIterationForLoop, occurrence: 1
--- mutation diff ---
--- astampbot/telemetry.py
+++ bstampbot/telemetry.py
@@ -173,6 +173,6 @@
         attributes: Attributes to add
     """
     if span:
-        for key, value in attributes.items():
+        for key, value in []:
             span.set_attribute(key, value)
 
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -151,7 +151,7 @@
                     retry=retry,
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -159,7 +159,7 @@
                 return client
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="failure").inc()
                 set_span_error(span, e)
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -223,7 +223,7 @@
                     event="APPROVE",
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 3
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -243,7 +243,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 4
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -300,7 +300,7 @@
                 review = pr.get_review(review_id)
                 review.dismiss(message)
 
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 5
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -321,7 +321,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 6
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -373,7 +373,7 @@
 
                 content = repo.get_contents(file_path, ref=ref)  # type: ignore[arg-type]
                 if isinstance(content, list):
-                    duration = time.time() - start_time
+                    duration = time.time() + start_time
                     github_api_request_duration_seconds.labels(operation="get_file").observe(
                         duration
                     )
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 7
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -382,7 +382,7 @@
                     set_span_ok(span)
                     return None
 
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 8
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -394,7 +394,7 @@
                 return content.decoded_content.decode("utf-8")
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="not_found").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 9
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -451,7 +451,7 @@
                     if review.user.login == bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 10
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -467,7 +467,7 @@
                 return bot_review_ids
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 11
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -521,7 +521,7 @@
 
                 pr.create_review(body=message, event="COMMENT")
 
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 12
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -543,7 +543,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 13
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -594,7 +594,7 @@
                 repo = client.get_repo(repo_full_name)
                 repo.get_label(label_name)
 
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 14
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -605,7 +605,7 @@
                 return True
 
             except GithubException as e:
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 15
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -630,7 +630,7 @@
                 return None
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 16
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -693,7 +693,7 @@
 
                 has_permission = permission_index >= required_index
 
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 17
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -713,7 +713,7 @@
                 return has_permission
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() + start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -151,7 +151,7 @@
                     retry=retry,
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -159,7 +159,7 @@
                 return client
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="failure").inc()
                 set_span_error(span, e)
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -223,7 +223,7 @@
                     event="APPROVE",
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 3
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -243,7 +243,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 4
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -300,7 +300,7 @@
                 review = pr.get_review(review_id)
                 review.dismiss(message)
 
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 5
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -321,7 +321,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 6
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -373,7 +373,7 @@
 
                 content = repo.get_contents(file_path, ref=ref)  # type: ignore[arg-type]
                 if isinstance(content, list):
-                    duration = time.time() - start_time
+                    duration = time.time() * start_time
                     github_api_request_duration_seconds.labels(operation="get_file").observe(
                         duration
                     )
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 7
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -382,7 +382,7 @@
                     set_span_ok(span)
                     return None
 
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 8
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -394,7 +394,7 @@
                 return content.decoded_content.decode("utf-8")
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="not_found").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 9
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -451,7 +451,7 @@
                     if review.user.login == bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 10
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -467,7 +467,7 @@
                 return bot_review_ids
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 11
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -521,7 +521,7 @@
 
                 pr.create_review(body=message, event="COMMENT")
 
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 12
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -543,7 +543,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 13
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -594,7 +594,7 @@
                 repo = client.get_repo(repo_full_name)
                 repo.get_label(label_name)
 
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 14
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -605,7 +605,7 @@
                 return True
 
             except GithubException as e:
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 15
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -630,7 +630,7 @@
                 return None
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 16
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -693,7 +693,7 @@
 
                 has_permission = permission_index >= required_index
 
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 17
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -713,7 +713,7 @@
                 return has_permission
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() * start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -151,7 +151,7 @@
                     retry=retry,
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -159,7 +159,7 @@
                 return client
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="failure").inc()
                 set_span_error(span, e)
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -223,7 +223,7 @@
                     event="APPROVE",
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 3
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -243,7 +243,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 4
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -300,7 +300,7 @@
                 review = pr.get_review(review_id)
                 review.dismiss(message)
 
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 5
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -321,7 +321,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 6
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -373,7 +373,7 @@
 
                 content = repo.get_contents(file_path, ref=ref)  # type: ignore[arg-type]
                 if isinstance(content, list):
-                    duration = time.time() - start_time
+                    duration = time.time() / start_time
                     github_api_request_duration_seconds.labels(operation="get_file").observe(
                         duration
                     )
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 7
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -382,7 +382,7 @@
                     set_span_ok(span)
                     return None
 
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 8
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -394,7 +394,7 @@
                 return content.decoded_content.decode("utf-8")
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="not_found").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 9
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -451,7 +451,7 @@
                     if review.user.login == bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 10
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -467,7 +467,7 @@
                 return bot_review_ids
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 11
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -521,7 +521,7 @@
 
                 pr.create_review(body=message, event="COMMENT")
 
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 12
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -543,7 +543,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 13
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -594,7 +594,7 @@
                 repo = client.get_repo(repo_full_name)
                 repo.get_label(label_name)
 
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 14
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -605,7 +605,7 @@
                 return True
 
             except GithubException as e:
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 15
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -630,7 +630,7 @@
                 return None
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 16
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -693,7 +693,7 @@
 
                 has_permission = permission_index >= required_index
 
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 17
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -713,7 +713,7 @@
                 return has_permission
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() / start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -151,7 +151,7 @@
                     retry=retry,
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -159,7 +159,7 @@
                 return client
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="failure").inc()
                 set_span_error(span, e)
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -223,7 +223,7 @@
                     event="APPROVE",
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 3
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -243,7 +243,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 4
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -300,7 +300,7 @@
                 review = pr.get_review(review_id)
                 review.dismiss(message)
 
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 5
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -321,7 +321,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 6
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -373,7 +373,7 @@
 
                 content = repo.get_contents(file_path, ref=ref)  # type: ignore[arg-type]
                 if isinstance(content, list):
-                    duration = time.time() - start_time
+                    duration = time.time() // start_time
                     github_api_request_duration_seconds.labels(operation="get_file").observe(
                         duration
                     )
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 7
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -382,7 +382,7 @@
                     set_span_ok(span)
                     return None
 
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 8
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -394,7 +394,7 @@
                 return content.decoded_content.decode("utf-8")
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="not_found").inc()
 
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 9
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -451,7 +451,7 @@
                     if review.user.login == bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 10
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -467,7 +467,7 @@
                 return bot_review_ids
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 11
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -521,7 +521,7 @@
 
                 pr.create_review(body=message, event="COMMENT")
 
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 12
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -543,7 +543,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 13
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -594,7 +594,7 @@
                 repo = client.get_repo(repo_full_name)
                 repo.get_label(label_name)
 
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 14
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -605,7 +605,7 @@
                 return True
 
             except GithubException as e:
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 15
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -630,7 +630,7 @@
                 return None
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 16
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -693,7 +693,7 @@
 
                 has_permission = permission_index >= required_index
 
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 17
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -713,7 +713,7 @@
                 return has_permission
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() // start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -151,7 +151,7 @@
                     retry=retry,
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -159,7 +159,7 @@
                 return client
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="failure").inc()
                 set_span_error(span, e)
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -223,7 +223,7 @@
                     event="APPROVE",
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 3
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -243,7 +243,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 4
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -300,7 +300,7 @@
                 review = pr.get_review(review_id)
                 review.dismiss(message)
 
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 5
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -321,7 +321,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 6
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -373,7 +373,7 @@
 
                 content = repo.get_contents(file_path, ref=ref)  # type: ignore[arg-type]
                 if isinstance(content, list):
-                    duration = time.time() - start_time
+                    duration = time.time() % start_time
                     github_api_request_duration_seconds.labels(operation="get_file").observe(
                         duration
                     )
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 7
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -382,7 +382,7 @@
                     set_span_ok(span)
                     return None
 
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 8
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -394,7 +394,7 @@
                 return content.decoded_content.decode("utf-8")
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="not_found").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 9
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -451,7 +451,7 @@
                     if review.user.login == bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 10
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -467,7 +467,7 @@
                 return bot_review_ids
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 11
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -521,7 +521,7 @@
 
                 pr.create_review(body=message, event="COMMENT")
 
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 12
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -543,7 +543,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 13
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -594,7 +594,7 @@
                 repo = client.get_repo(repo_full_name)
                 repo.get_label(label_name)
 
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 14
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -605,7 +605,7 @@
                 return True
 
             except GithubException as e:
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 15
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -630,7 +630,7 @@
                 return None
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 16
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -693,7 +693,7 @@
 
                 has_permission = permission_index >= required_index
 
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 17
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -713,7 +713,7 @@
                 return has_permission
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() % start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -151,7 +151,7 @@
                     retry=retry,
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -159,7 +159,7 @@
                 return client
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="failure").inc()
                 set_span_error(span, e)
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -223,7 +223,7 @@
                     event="APPROVE",
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 3
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -243,7 +243,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 4
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -300,7 +300,7 @@
                 review = pr.get_review(review_id)
                 review.dismiss(message)
 
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 5
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -321,7 +321,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 6
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -373,7 +373,7 @@
 
                 content = repo.get_contents(file_path, ref=ref)  # type: ignore[arg-type]
                 if isinstance(content, list):
-                    duration = time.time() - start_time
+                    duration = time.time() ** start_time
                     github_api_request_duration_seconds.labels(operation="get_file").observe(
                         duration
                     )
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 7
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -382,7 +382,7 @@
                     set_span_ok(span)
                     return None
 
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 8
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -394,7 +394,7 @@
                 return content.decoded_content.decode("utf-8")
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="not_found").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 9
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -451,7 +451,7 @@
                     if review.user.login == bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 10
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -467,7 +467,7 @@
                 return bot_review_ids
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 11
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -521,7 +521,7 @@
 
                 pr.create_review(body=message, event="COMMENT")
 
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 12
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -543,7 +543,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 13
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -594,7 +594,7 @@
                 repo = client.get_repo(repo_full_name)
                 repo.get_label(label_name)
 
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 14
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -605,7 +605,7 @@
                 return True
 
             except GithubException as e:
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 15
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -630,7 +630,7 @@
                 return None
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 16
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -693,7 +693,7 @@
 
                 has_permission = permission_index >= required_index
 
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 17
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -713,7 +713,7 @@
                 return has_permission
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ** start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -151,7 +151,7 @@
                     retry=retry,
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -159,7 +159,7 @@
                 return client
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="failure").inc()
                 set_span_error(span, e)
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -223,7 +223,7 @@
                     event="APPROVE",
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 3
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -243,7 +243,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 4
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -300,7 +300,7 @@
                 review = pr.get_review(review_id)
                 review.dismiss(message)
 
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 5
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -321,7 +321,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 6
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -373,7 +373,7 @@
 
                 content = repo.get_contents(file_path, ref=ref)  # type: ignore[arg-type]
                 if isinstance(content, list):
-                    duration = time.time() - start_time
+                    duration = time.time() >> start_time
                     github_api_request_duration_seconds.labels(operation="get_file").observe(
                         duration
                     )
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 7
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -382,7 +382,7 @@
                     set_span_ok(span)
                     return None
 
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 8
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -394,7 +394,7 @@
                 return content.decoded_content.decode("utf-8")
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="not_found").inc()
 
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 9
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -451,7 +451,7 @@
                     if review.user.login == bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 10
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -467,7 +467,7 @@
                 return bot_review_ids
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 11
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -521,7 +521,7 @@
 
                 pr.create_review(body=message, event="COMMENT")
 
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 12
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -543,7 +543,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 13
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -594,7 +594,7 @@
                 repo = client.get_repo(repo_full_name)
                 repo.get_label(label_name)
 
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 14
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -605,7 +605,7 @@
                 return True
 
             except GithubException as e:
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 15
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -630,7 +630,7 @@
                 return None
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 16
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -693,7 +693,7 @@
 
                 has_permission = permission_index >= required_index
 
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 17
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -713,7 +713,7 @@
                 return has_permission
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() >> start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -151,7 +151,7 @@
                     retry=retry,
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -159,7 +159,7 @@
                 return client
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="failure").inc()
                 set_span_error(span, e)
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -223,7 +223,7 @@
                     event="APPROVE",
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 3
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -243,7 +243,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 4
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -300,7 +300,7 @@
                 review = pr.get_review(review_id)
                 review.dismiss(message)
 
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 5
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -321,7 +321,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 6
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -373,7 +373,7 @@
 
                 content = repo.get_contents(file_path, ref=ref)  # type: ignore[arg-type]
                 if isinstance(content, list):
-                    duration = time.time() - start_time
+                    duration = time.time() << start_time
                     github_api_request_duration_seconds.labels(operation="get_file").observe(
                         duration
                     )
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 7
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -382,7 +382,7 @@
                     set_span_ok(span)
                     return None
 
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 8
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -394,7 +394,7 @@
                 return content.decoded_content.decode("utf-8")
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="not_found").inc()
 
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 9
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -451,7 +451,7 @@
                     if review.user.login == bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 10
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -467,7 +467,7 @@
                 return bot_review_ids
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 11
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -521,7 +521,7 @@
 
                 pr.create_review(body=message, event="COMMENT")
 
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 12
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -543,7 +543,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 13
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -594,7 +594,7 @@
                 repo = client.get_repo(repo_full_name)
                 repo.get_label(label_name)
 
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 14
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -605,7 +605,7 @@
                 return True
 
             except GithubException as e:
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 15
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -630,7 +630,7 @@
                 return None
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 16
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -693,7 +693,7 @@
 
                 has_permission = permission_index >= required_index
 
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 17
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -713,7 +713,7 @@
                 return has_permission
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() << start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -151,7 +151,7 @@
                     retry=retry,
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -159,7 +159,7 @@
                 return client
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="failure").inc()
                 set_span_error(span, e)
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -223,7 +223,7 @@
                     event="APPROVE",
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 3
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -243,7 +243,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 4
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -300,7 +300,7 @@
                 review = pr.get_review(review_id)
                 review.dismiss(message)
 
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 5
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -321,7 +321,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 6
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -373,7 +373,7 @@
 
                 content = repo.get_contents(file_path, ref=ref)  # type: ignore[arg-type]
                 if isinstance(content, list):
-                    duration = time.time() - start_time
+                    duration = time.time() | start_time
                     github_api_request_duration_seconds.labels(operation="get_file").observe(
                         duration
                     )
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 7
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -382,7 +382,7 @@
                     set_span_ok(span)
                     return None
 
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 8
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -394,7 +394,7 @@
                 return content.decoded_content.decode("utf-8")
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="not_found").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 9
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -451,7 +451,7 @@
                     if review.user.login == bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 10
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -467,7 +467,7 @@
                 return bot_review_ids
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 11
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -521,7 +521,7 @@
 
                 pr.create_review(body=message, event="COMMENT")
 
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 12
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -543,7 +543,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 13
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -594,7 +594,7 @@
                 repo = client.get_repo(repo_full_name)
                 repo.get_label(label_name)
 
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 14
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -605,7 +605,7 @@
                 return True
 
             except GithubException as e:
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 15
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -630,7 +630,7 @@
                 return None
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 16
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -693,7 +693,7 @@
 
                 has_permission = permission_index >= required_index
 
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 17
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -713,7 +713,7 @@
                 return has_permission
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() | start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -151,7 +151,7 @@
                     retry=retry,
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -159,7 +159,7 @@
                 return client
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="failure").inc()
                 set_span_error(span, e)
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -223,7 +223,7 @@
                     event="APPROVE",
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 3
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -243,7 +243,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 4
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -300,7 +300,7 @@
                 review = pr.get_review(review_id)
                 review.dismiss(message)
 
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 5
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -321,7 +321,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 6
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -373,7 +373,7 @@
 
                 content = repo.get_contents(file_path, ref=ref)  # type: ignore[arg-type]
                 if isinstance(content, list):
-                    duration = time.time() - start_time
+                    duration = time.time() & start_time
                     github_api_request_duration_seconds.labels(operation="get_file").observe(
                         duration
                     )
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 7
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -382,7 +382,7 @@
                     set_span_ok(span)
                     return None
 
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 8
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -394,7 +394,7 @@
                 return content.decoded_content.decode("utf-8")
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="not_found").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 9
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -451,7 +451,7 @@
                     if review.user.login == bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 10
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -467,7 +467,7 @@
                 return bot_review_ids
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 11
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -521,7 +521,7 @@
 
                 pr.create_review(body=message, event="COMMENT")
 
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 12
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -543,7 +543,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 13
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -594,7 +594,7 @@
                 repo = client.get_repo(repo_full_name)
                 repo.get_label(label_name)
 
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 14
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -605,7 +605,7 @@
                 return True
 
             except GithubException as e:
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 15
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -630,7 +630,7 @@
                 return None
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 16
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -693,7 +693,7 @@
 
                 has_permission = permission_index >= required_index
 
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 17
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -713,7 +713,7 @@
                 return has_permission
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() & start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -151,7 +151,7 @@
                     retry=retry,
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -159,7 +159,7 @@
                 return client
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="failure").inc()
                 set_span_error(span, e)
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -223,7 +223,7 @@
                     event="APPROVE",
                 )
 
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 3
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -243,7 +243,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 4
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -300,7 +300,7 @@
                 review = pr.get_review(review_id)
                 review.dismiss(message)
 
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 5
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -321,7 +321,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 6
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -373,7 +373,7 @@
 
                 content = repo.get_contents(file_path, ref=ref)  # type: ignore[arg-type]
                 if isinstance(content, list):
-                    duration = time.time() - start_time
+                    duration = time.time() ^ start_time
                     github_api_request_duration_seconds.labels(operation="get_file").observe(
                         duration
                     )
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 7
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -382,7 +382,7 @@
                     set_span_ok(span)
                     return None
 
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 8
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -394,7 +394,7 @@
                 return content.decoded_content.decode("utf-8")
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="not_found").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 9
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -451,7 +451,7 @@
                     if review.user.login == bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 10
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -467,7 +467,7 @@
                 return bot_review_ids
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 11
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -521,7 +521,7 @@
 
                 pr.create_review(body=message, event="COMMENT")
 
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 12
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -543,7 +543,7 @@
                 return True
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 13
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -594,7 +594,7 @@
                 repo = client.get_repo(repo_full_name)
                 repo.get_label(label_name)
 
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="success").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 14
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -605,7 +605,7 @@
                 return True
 
             except GithubException as e:
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 15
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -630,7 +630,7 @@
                 return None
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 16
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -693,7 +693,7 @@
 
                 has_permission = permission_index >= required_index
 
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 17
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -713,7 +713,7 @@
                 return has_permission
 
             except Exception as e:
-                duration = time.time() - start_time
+                duration = time.time() ^ start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
                 )
operator: core/ReplaceBinaryOperator_BitOr_Add, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -343,7 +343,7 @@
         installation_id: int,
         repo_full_name: str,
         file_path: str,
-        ref: str | None = None,
+        ref: str + None = None,
     ) -> str | None:
         """Get file content from repository.
 
operator: core/ReplaceBinaryOperator_BitOr_Add, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -344,7 +344,7 @@
         repo_full_name: str,
         file_path: str,
         ref: str | None = None,
-    ) -> str | None:
+    ) -> str + None:
         """Get file content from repository.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_Add, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -568,7 +568,7 @@
         installation_id: int,
         repo_full_name: str,
         label_name: str,
-    ) -> bool | None:
+    ) -> bool + None:
         """Check whether a repository has a label.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_Sub, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -343,7 +343,7 @@
         installation_id: int,
         repo_full_name: str,
         file_path: str,
-        ref: str | None = None,
+        ref: str - None = None,
     ) -> str | None:
         """Get file content from repository.
 
operator: core/ReplaceBinaryOperator_BitOr_Sub, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -344,7 +344,7 @@
         repo_full_name: str,
         file_path: str,
         ref: str | None = None,
-    ) -> str | None:
+    ) -> str - None:
         """Get file content from repository.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_Sub, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -568,7 +568,7 @@
         installation_id: int,
         repo_full_name: str,
         label_name: str,
-    ) -> bool | None:
+    ) -> bool - None:
         """Check whether a repository has a label.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_Mul, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -343,7 +343,7 @@
         installation_id: int,
         repo_full_name: str,
         file_path: str,
-        ref: str | None = None,
+        ref: str * None = None,
     ) -> str | None:
         """Get file content from repository.
 
operator: core/ReplaceBinaryOperator_BitOr_Mul, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -344,7 +344,7 @@
         repo_full_name: str,
         file_path: str,
         ref: str | None = None,
-    ) -> str | None:
+    ) -> str * None:
         """Get file content from repository.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_Mul, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -568,7 +568,7 @@
         installation_id: int,
         repo_full_name: str,
         label_name: str,
-    ) -> bool | None:
+    ) -> bool * None:
         """Check whether a repository has a label.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_Div, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -343,7 +343,7 @@
         installation_id: int,
         repo_full_name: str,
         file_path: str,
-        ref: str | None = None,
+        ref: str / None = None,
     ) -> str | None:
         """Get file content from repository.
 
operator: core/ReplaceBinaryOperator_BitOr_Div, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -344,7 +344,7 @@
         repo_full_name: str,
         file_path: str,
         ref: str | None = None,
-    ) -> str | None:
+    ) -> str / None:
         """Get file content from repository.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_Div, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -568,7 +568,7 @@
         installation_id: int,
         repo_full_name: str,
         label_name: str,
-    ) -> bool | None:
+    ) -> bool / None:
         """Check whether a repository has a label.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_FloorDiv, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -343,7 +343,7 @@
         installation_id: int,
         repo_full_name: str,
         file_path: str,
-        ref: str | None = None,
+        ref: str // None = None,
     ) -> str | None:
         """Get file content from repository.
 
operator: core/ReplaceBinaryOperator_BitOr_FloorDiv, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -344,7 +344,7 @@
         repo_full_name: str,
         file_path: str,
         ref: str | None = None,
-    ) -> str | None:
+    ) -> str // None:
         """Get file content from repository.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_FloorDiv, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -568,7 +568,7 @@
         installation_id: int,
         repo_full_name: str,
         label_name: str,
-    ) -> bool | None:
+    ) -> bool // None:
         """Check whether a repository has a label.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_Mod, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -343,7 +343,7 @@
         installation_id: int,
         repo_full_name: str,
         file_path: str,
-        ref: str | None = None,
+        ref: str % None = None,
     ) -> str | None:
         """Get file content from repository.
 
operator: core/ReplaceBinaryOperator_BitOr_Mod, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -344,7 +344,7 @@
         repo_full_name: str,
         file_path: str,
         ref: str | None = None,
-    ) -> str | None:
+    ) -> str % None:
         """Get file content from repository.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_Mod, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -568,7 +568,7 @@
         installation_id: int,
         repo_full_name: str,
         label_name: str,
-    ) -> bool | None:
+    ) -> bool % None:
         """Check whether a repository has a label.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_Pow, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -343,7 +343,7 @@
         installation_id: int,
         repo_full_name: str,
         file_path: str,
-        ref: str | None = None,
+        ref: str ** None = None,
     ) -> str | None:
         """Get file content from repository.
 
operator: core/ReplaceBinaryOperator_BitOr_Pow, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -344,7 +344,7 @@
         repo_full_name: str,
         file_path: str,
         ref: str | None = None,
-    ) -> str | None:
+    ) -> str ** None:
         """Get file content from repository.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_Pow, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -568,7 +568,7 @@
         installation_id: int,
         repo_full_name: str,
         label_name: str,
-    ) -> bool | None:
+    ) -> bool ** None:
         """Check whether a repository has a label.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_RShift, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -343,7 +343,7 @@
         installation_id: int,
         repo_full_name: str,
         file_path: str,
-        ref: str | None = None,
+        ref: str >> None = None,
     ) -> str | None:
         """Get file content from repository.
 
operator: core/ReplaceBinaryOperator_BitOr_RShift, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -344,7 +344,7 @@
         repo_full_name: str,
         file_path: str,
         ref: str | None = None,
-    ) -> str | None:
+    ) -> str >> None:
         """Get file content from repository.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_RShift, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -568,7 +568,7 @@
         installation_id: int,
         repo_full_name: str,
         label_name: str,
-    ) -> bool | None:
+    ) -> bool >> None:
         """Check whether a repository has a label.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_LShift, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -343,7 +343,7 @@
         installation_id: int,
         repo_full_name: str,
         file_path: str,
-        ref: str | None = None,
+        ref: str << None = None,
     ) -> str | None:
         """Get file content from repository.
 
operator: core/ReplaceBinaryOperator_BitOr_LShift, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -344,7 +344,7 @@
         repo_full_name: str,
         file_path: str,
         ref: str | None = None,
-    ) -> str | None:
+    ) -> str << None:
         """Get file content from repository.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_LShift, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -568,7 +568,7 @@
         installation_id: int,
         repo_full_name: str,
         label_name: str,
-    ) -> bool | None:
+    ) -> bool << None:
         """Check whether a repository has a label.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_BitAnd, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -343,7 +343,7 @@
         installation_id: int,
         repo_full_name: str,
         file_path: str,
-        ref: str | None = None,
+        ref: str & None = None,
     ) -> str | None:
         """Get file content from repository.
 
operator: core/ReplaceBinaryOperator_BitOr_BitAnd, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -344,7 +344,7 @@
         repo_full_name: str,
         file_path: str,
         ref: str | None = None,
-    ) -> str | None:
+    ) -> str & None:
         """Get file content from repository.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_BitAnd, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -568,7 +568,7 @@
         installation_id: int,
         repo_full_name: str,
         label_name: str,
-    ) -> bool | None:
+    ) -> bool & None:
         """Check whether a repository has a label.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_BitXor, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -343,7 +343,7 @@
         installation_id: int,
         repo_full_name: str,
         file_path: str,
-        ref: str | None = None,
+        ref: str ^ None = None,
     ) -> str | None:
         """Get file content from repository.
 
operator: core/ReplaceBinaryOperator_BitOr_BitXor, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -344,7 +344,7 @@
         repo_full_name: str,
         file_path: str,
         ref: str | None = None,
-    ) -> str | None:
+    ) -> str ^ None:
         """Get file content from repository.
 
         Args:
operator: core/ReplaceBinaryOperator_BitOr_BitXor, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -568,7 +568,7 @@
         installation_id: int,
         repo_full_name: str,
         label_name: str,
-    ) -> bool | None:
+    ) -> bool ^ None:
         """Check whether a repository has a label.
 
         Args:
operator: core/ReplaceComparisonOperator_Eq_NotEq, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -448,7 +448,7 @@
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
                 for review in pr.get_reviews():
-                    if review.user.login == bot_user and review.state == "APPROVED":
+                    if review.user.login != bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
                 duration = time.time() - start_time
operator: core/ReplaceComparisonOperator_Eq_NotEq, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -448,7 +448,7 @@
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
                 for review in pr.get_reviews():
-                    if review.user.login == bot_user and review.state == "APPROVED":
+                    if review.user.login == bot_user and review.state != "APPROVED":
                         bot_review_ids.append(review.id)
 
                 duration = time.time() - start_time
operator: core/ReplaceComparisonOperator_Eq_NotEq, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -609,7 +609,7 @@
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
-                if e.status == 404:
+                if e.status != 404:
                     add_span_attributes(span, {"github.label_found": False})
                     set_span_ok(span)
                     return False
operator: core/ReplaceComparisonOperator_Eq_Lt, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -448,7 +448,7 @@
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
                 for review in pr.get_reviews():
-                    if review.user.login == bot_user and review.state == "APPROVED":
+                    if review.user.login < bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
                 duration = time.time() - start_time
operator: core/ReplaceComparisonOperator_Eq_Lt, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -448,7 +448,7 @@
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
                 for review in pr.get_reviews():
-                    if review.user.login == bot_user and review.state == "APPROVED":
+                    if review.user.login == bot_user and review.state < "APPROVED":
                         bot_review_ids.append(review.id)
 
                 duration = time.time() - start_time
operator: core/ReplaceComparisonOperator_Eq_Lt, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -609,7 +609,7 @@
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
-                if e.status == 404:
+                if e.status < 404:
                     add_span_attributes(span, {"github.label_found": False})
                     set_span_ok(span)
                     return False
operator: core/ReplaceComparisonOperator_Eq_LtE, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -448,7 +448,7 @@
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
                 for review in pr.get_reviews():
-                    if review.user.login == bot_user and review.state == "APPROVED":
+                    if review.user.login <= bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
                 duration = time.time() - start_time
operator: core/ReplaceComparisonOperator_Eq_LtE, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -448,7 +448,7 @@
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
                 for review in pr.get_reviews():
-                    if review.user.login == bot_user and review.state == "APPROVED":
+                    if review.user.login == bot_user and review.state <= "APPROVED":
                         bot_review_ids.append(review.id)
 
                 duration = time.time() - start_time
operator: core/ReplaceComparisonOperator_Eq_LtE, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -609,7 +609,7 @@
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
-                if e.status == 404:
+                if e.status <= 404:
                     add_span_attributes(span, {"github.label_found": False})
                     set_span_ok(span)
                     return False
operator: core/ReplaceComparisonOperator_Eq_Gt, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -448,7 +448,7 @@
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
                 for review in pr.get_reviews():
-                    if review.user.login == bot_user and review.state == "APPROVED":
+                    if review.user.login > bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
                 duration = time.time() - start_time
operator: core/ReplaceComparisonOperator_Eq_Gt, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -448,7 +448,7 @@
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
                 for review in pr.get_reviews():
-                    if review.user.login == bot_user and review.state == "APPROVED":
+                    if review.user.login == bot_user and review.state > "APPROVED":
                         bot_review_ids.append(review.id)
 
                 duration = time.time() - start_time
operator: core/ReplaceComparisonOperator_Eq_Gt, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -609,7 +609,7 @@
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
-                if e.status == 404:
+                if e.status > 404:
                     add_span_attributes(span, {"github.label_found": False})
                     set_span_ok(span)
                     return False
operator: core/ReplaceComparisonOperator_Eq_GtE, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -448,7 +448,7 @@
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
                 for review in pr.get_reviews():
-                    if review.user.login == bot_user and review.state == "APPROVED":
+                    if review.user.login >= bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
                 duration = time.time() - start_time
operator: core/ReplaceComparisonOperator_Eq_GtE, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -448,7 +448,7 @@
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
                 for review in pr.get_reviews():
-                    if review.user.login == bot_user and review.state == "APPROVED":
+                    if review.user.login == bot_user and review.state >= "APPROVED":
                         bot_review_ids.append(review.id)
 
                 duration = time.time() - start_time
operator: core/ReplaceComparisonOperator_Eq_GtE, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -609,7 +609,7 @@
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
-                if e.status == 404:
+                if e.status >= 404:
                     add_span_attributes(span, {"github.label_found": False})
                     set_span_ok(span)
                     return False
operator: core/ReplaceComparisonOperator_Eq_Is, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -448,7 +448,7 @@
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
                 for review in pr.get_reviews():
-                    if review.user.login == bot_user and review.state == "APPROVED":
+                    if review.user.login is bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
                 duration = time.time() - start_time
operator: core/ReplaceComparisonOperator_Eq_Is, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -448,7 +448,7 @@
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
                 for review in pr.get_reviews():
-                    if review.user.login == bot_user and review.state == "APPROVED":
+                    if review.user.login == bot_user and review.state is "APPROVED":
                         bot_review_ids.append(review.id)
 
                 duration = time.time() - start_time
operator: core/ReplaceComparisonOperator_Eq_IsNot, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -448,7 +448,7 @@
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
                 for review in pr.get_reviews():
-                    if review.user.login == bot_user and review.state == "APPROVED":
+                    if review.user.login is not bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
                 duration = time.time() - start_time
operator: core/ReplaceComparisonOperator_Eq_IsNot, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -448,7 +448,7 @@
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
                 for review in pr.get_reviews():
-                    if review.user.login == bot_user and review.state == "APPROVED":
+                    if review.user.login == bot_user and review.state is not "APPROVED":
                         bot_review_ids.append(review.id)
 
                 duration = time.time() - start_time
operator: core/ReplaceComparisonOperator_GtE_Eq, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -691,7 +691,7 @@
                     permission_index = -1
                     required_index = 99
 
-                has_permission = permission_index >= required_index
+                has_permission = permission_index == required_index
 
                 duration = time.time() - start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
operator: core/ReplaceComparisonOperator_GtE_NotEq, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -691,7 +691,7 @@
                     permission_index = -1
                     required_index = 99
 
-                has_permission = permission_index >= required_index
+                has_permission = permission_index != required_index
 
                 duration = time.time() - start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
operator: core/ReplaceComparisonOperator_GtE_Lt, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -691,7 +691,7 @@
                     permission_index = -1
                     required_index = 99
 
-                has_permission = permission_index >= required_index
+                has_permission = permission_index < required_index
 
                 duration = time.time() - start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
operator: core/ReplaceComparisonOperator_GtE_LtE, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -691,7 +691,7 @@
                     permission_index = -1
                     required_index = 99
 
-                has_permission = permission_index >= required_index
+                has_permission = permission_index <= required_index
 
                 duration = time.time() - start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
operator: core/ReplaceComparisonOperator_GtE_Gt, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -691,7 +691,7 @@
                     permission_index = -1
                     required_index = 99
 
-                has_permission = permission_index >= required_index
+                has_permission = permission_index > required_index
 
                 duration = time.time() - start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
operator: core/ReplaceComparisonOperator_GtE_Is, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -691,7 +691,7 @@
                     permission_index = -1
                     required_index = 99
 
-                has_permission = permission_index >= required_index
+                has_permission = permission_index is required_index
 
                 duration = time.time() - start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
operator: core/ReplaceComparisonOperator_GtE_IsNot, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -691,7 +691,7 @@
                     permission_index = -1
                     required_index = 99
 
-                has_permission = permission_index >= required_index
+                has_permission = permission_index is not required_index
 
                 duration = time.time() - start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
operator: core/ReplaceComparisonOperator_Is_IsNot, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -50,7 +50,7 @@
 
         # is_configured() guarantees app_id is set, but check for type safety
         app_id = settings.app_id
-        if app_id is None:
+        if app_id is not None:
             raise RuntimeError("App ID not configured")
 
         private_key = self._load_private_key()
operator: core/ReplaceComparisonOperator_Is_IsNot, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -85,7 +85,7 @@
         """
         key: str | None = settings.private_key
 
-        if key is None:
+        if key is not None:
             raise RuntimeError("Private key not configured")
 
         # If it looks like PEM content, use directly
operator: core/ReplaceComparisonOperator_IsNot_Is, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -69,7 +69,7 @@
             RuntimeError: If GitHub App credentials are not configured.
         """
         self._ensure_initialized()
-        assert self._integration is not None  # guaranteed by _ensure_initialized
+        assert self._integration is None  # guaranteed by _ensure_initialized
         return self._integration
 
     def _load_private_key(self) -> str:
operator: core/ReplaceUnaryOperator_USub_UAdd, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -688,7 +688,7 @@
                     permission_index = permission_order.index(permission)
                     required_index = permission_order.index(required_permission)
                 except ValueError:
-                    permission_index = -1
+                    permission_index = +1
                     required_index = 99
 
                 has_permission = permission_index >= required_index
operator: core/ReplaceUnaryOperator_USub_Invert, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -688,7 +688,7 @@
                     permission_index = permission_order.index(permission)
                     required_index = permission_order.index(required_permission)
                 except ValueError:
-                    permission_index = -1
+                    permission_index = ~1
                     required_index = 99
 
                 has_permission = permission_index >= required_index
operator: core/ReplaceUnaryOperator_USub_Not, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -688,7 +688,7 @@
                     permission_index = permission_order.index(permission)
                     required_index = permission_order.index(required_permission)
                 except ValueError:
-                    permission_index = -1
+                    permission_index = not 1
                     required_index = 99
 
                 has_permission = permission_index >= required_index
operator: core/ReplaceUnaryOperator_Delete_USub, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -688,7 +688,7 @@
                     permission_index = permission_order.index(permission)
                     required_index = permission_order.index(required_permission)
                 except ValueError:
-                    permission_index = -1
+                    permission_index = 1
                     required_index = 99
 
                 has_permission = permission_index >= required_index
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -45,7 +45,7 @@
         if self._initialized:
             return
 
-        if not is_configured():
+        if  is_configured():
             raise RuntimeError("GitHub App not configured. Visit /setup to create your GitHub App.")
 
         # is_configured() guarantees app_id is set, but check for type safety
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -100,7 +100,7 @@
 
             # Security: prevent path traversal by ensuring the path doesn't escape
             # expected directories and doesn't follow symlinks to unexpected locations
-            if ".." in str(key_path) or not os.path.isfile(key_path):
+            if ".." in str(key_path) or  os.path.isfile(key_path):
                 raise ValueError(f"Invalid private key path: {key}")
 
             try:
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -111,7 +111,7 @@
                 raise
 
         # Validate the content is actually a PEM-formatted key
-        if not pem_content.strip().startswith("-----BEGIN"):
+        if  pem_content.strip().startswith("-----BEGIN"):
             raise ValueError("Private key must be in PEM format")
 
         return pem_content
operator: core/AddNot, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -42,7 +42,7 @@
         Raises:
             RuntimeError: If GitHub App credentials are not configured.
         """
-        if self._initialized:
+        if not self._initialized:
             return
 
         if not is_configured():
operator: core/AddNot, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -45,7 +45,7 @@
         if self._initialized:
             return
 
-        if not is_configured():
+        if not not is_configured():
             raise RuntimeError("GitHub App not configured. Visit /setup to create your GitHub App.")
 
         # is_configured() guarantees app_id is set, but check for type safety
operator: core/AddNot, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -50,7 +50,7 @@
 
         # is_configured() guarantees app_id is set, but check for type safety
         app_id = settings.app_id
-        if app_id is None:
+        if not app_id is None:
             raise RuntimeError("App ID not configured")
 
         private_key = self._load_private_key()
operator: core/AddNot, occurrence: 3
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -69,7 +69,7 @@
             RuntimeError: If GitHub App credentials are not configured.
         """
         self._ensure_initialized()
-        assert self._integration is not None  # guaranteed by _ensure_initialized
+        assert not self._integration is not None  # guaranteed by _ensure_initialized
         return self._integration
 
     def _load_private_key(self) -> str:
operator: core/AddNot, occurrence: 4
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -85,7 +85,7 @@
         """
         key: str | None = settings.private_key
 
-        if key is None:
+        if not key is None:
             raise RuntimeError("Private key not configured")
 
         # If it looks like PEM content, use directly
operator: core/AddNot, occurrence: 5
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -89,7 +89,7 @@
             raise RuntimeError("Private key not configured")
 
         # If it looks like PEM content, use directly
-        if key.startswith("-----BEGIN"):
+        if not key.startswith("-----BEGIN"):
             pem_content = key
         else:
             # Treat as file path - read the file
operator: core/AddNot, occurrence: 6
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -100,7 +100,7 @@
 
             # Security: prevent path traversal by ensuring the path doesn't escape
             # expected directories and doesn't follow symlinks to unexpected locations
-            if ".." in str(key_path) or not os.path.isfile(key_path):
+            if not ".." in str(key_path) or not os.path.isfile(key_path):
                 raise ValueError(f"Invalid private key path: {key}")
 
             try:
operator: core/AddNot, occurrence: 7
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -111,7 +111,7 @@
                 raise
 
         # Validate the content is actually a PEM-formatted key
-        if not pem_content.strip().startswith("-----BEGIN"):
+        if not not pem_content.strip().startswith("-----BEGIN"):
             raise ValueError("Private key must be in PEM format")
 
         return pem_content
operator: core/AddNot, occurrence: 8
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -372,7 +372,7 @@
                 repo = client.get_repo(repo_full_name)
 
                 content = repo.get_contents(file_path, ref=ref)  # type: ignore[arg-type]
-                if isinstance(content, list):
+                if not isinstance(content, list):
                     duration = time.time() - start_time
                     github_api_request_duration_seconds.labels(operation="get_file").observe(
                         duration
operator: core/AddNot, occurrence: 9
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -448,7 +448,7 @@
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
                 for review in pr.get_reviews():
-                    if review.user.login == bot_user and review.state == "APPROVED":
+                    if not review.user.login == bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
                 duration = time.time() - start_time
operator: core/AddNot, occurrence: 10
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -609,7 +609,7 @@
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
-                if e.status == 404:
+                if not e.status == 404:
                     add_span_attributes(span, {"github.label_found": False})
                     set_span_ok(span)
                     return False
operator: core/ReplaceTrueWithFalse, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -56,7 +56,7 @@
         private_key = self._load_private_key()
         self._auth = Auth.AppAuth(app_id, private_key)
         self._integration = GithubIntegration(auth=self._auth)
-        self._initialized = True
+        self._initialized = False
 
     @property
     def integration(self) -> GithubIntegration:
operator: core/ReplaceTrueWithFalse, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -240,7 +240,7 @@
                         "installation_id": installation_id,
                     },
                 )
-                return True
+                return False
 
             except Exception as e:
                 duration = time.time() - start_time
operator: core/ReplaceTrueWithFalse, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -318,7 +318,7 @@
                         "review_id": review_id,
                     },
                 )
-                return True
+                return False
 
             except Exception as e:
                 duration = time.time() - start_time
operator: core/ReplaceTrueWithFalse, occurrence: 3
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -540,7 +540,7 @@
                         "installation_id": installation_id,
                     },
                 )
-                return True
+                return False
 
             except Exception as e:
                 duration = time.time() - start_time
operator: core/ReplaceTrueWithFalse, occurrence: 4
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -600,7 +600,7 @@
 
                 self._update_rate_limit_metrics(client, installation_id)
 
-                add_span_attributes(span, {"github.label_found": True})
+                add_span_attributes(span, {"github.label_found": False})
                 set_span_ok(span)
                 return True
 
operator: core/ReplaceTrueWithFalse, occurrence: 5
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -602,7 +602,7 @@
 
                 add_span_attributes(span, {"github.label_found": True})
                 set_span_ok(span)
-                return True
+                return False
 
             except GithubException as e:
                 duration = time.time() - start_time
operator: core/ReplaceFalseWithTrue, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -34,7 +34,7 @@
         """Initialize GitHub App client (lazy initialization)."""
         self._auth: Auth.AppAuth | None = None
         self._integration: GithubIntegration | None = None
-        self._initialized = False
+        self._initialized = True
 
     def _ensure_initialized(self) -> None:
         """Ensure client is initialized with credentials.
operator: core/ReplaceFalseWithTrue, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -258,7 +258,7 @@
                         "error": str(e),
                     },
                 )
-                return False
+                return True
 
     def dismiss_approval(
         self,
operator: core/ReplaceFalseWithTrue, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -336,7 +336,7 @@
                         "error": str(e),
                     },
                 )
-                return False
+                return True
 
     def get_repo_file(
         self,
operator: core/ReplaceFalseWithTrue, occurrence: 3
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -561,7 +561,7 @@
                         "error": str(e),
                     },
                 )
-                return False
+                return True
 
     def repo_has_label(
         self,
operator: core/ReplaceFalseWithTrue, occurrence: 4
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -610,7 +610,7 @@
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
                 if e.status == 404:
-                    add_span_attributes(span, {"github.label_found": False})
+                    add_span_attributes(span, {"github.label_found": True})
                     set_span_ok(span)
                     return False
 
operator: core/ReplaceFalseWithTrue, occurrence: 5
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -612,7 +612,7 @@
                 if e.status == 404:
                     add_span_attributes(span, {"github.label_found": False})
                     set_span_ok(span)
-                    return False
+                    return True
 
                 set_span_error(span, e)
                 logger.debug(
operator: core/ReplaceFalseWithTrue, occurrence: 6
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -733,7 +733,7 @@
                         "error": str(e),
                     },
                 )
-                return False
+                return True
 
 
 # Global client instance
operator: core/ReplaceAndWithOr, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -448,7 +448,7 @@
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
                 for review in pr.get_reviews():
-                    if review.user.login == bot_user and review.state == "APPROVED":
+                    if review.user.login == bot_user or review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
                 duration = time.time() - start_time
operator: core/ReplaceOrWithAnd, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -100,7 +100,7 @@
 
             # Security: prevent path traversal by ensuring the path doesn't escape
             # expected directories and doesn't follow symlinks to unexpected locations
-            if ".." in str(key_path) or not os.path.isfile(key_path):
+            if ".." in str(key_path) and not os.path.isfile(key_path):
                 raise ValueError(f"Invalid private key path: {key}")
 
             try:
operator: core/ReplaceOrWithAnd, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -363,7 +363,7 @@
             {
                 "github.repo": repo_full_name,
                 "github.file_path": file_path,
-                "github.ref": ref or "default",
+                "github.ref": ref and "default",
                 "github.installation_id": installation_id,
             },
         ) as span:
operator: core/ExceptionReplacer, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -106,7 +106,7 @@
             try:
                 with open(key_path) as f:
                     pem_content = f.read()
-            except Exception as e:
+            except CosmicRayTestingException as e:
                 logger.error("Failed to read private key from file: %s", e)
                 raise
 
operator: core/ExceptionReplacer, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -158,7 +158,7 @@
                 set_span_ok(span)
                 return client
 
-            except Exception as e:
+            except CosmicRayTestingException as e:
                 duration = time.time() - start_time
                 github_api_request_duration_seconds.labels(operation="get_token").observe(duration)
                 github_api_requests_total.labels(operation="get_token", status="failure").inc()
operator: core/ExceptionReplacer, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -180,7 +180,7 @@
             github_api_rate_limit_limit.labels(installation_id=str(installation_id)).set(
                 rate_limit.core.limit  # type: ignore[attr-defined]
             )
-        except Exception:
+        except CosmicRayTestingException:
             # Don't fail operations due to rate limit metric errors
             pass
 
operator: core/ExceptionReplacer, occurrence: 3
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -242,7 +242,7 @@
                 )
                 return True
 
-            except Exception as e:
+            except CosmicRayTestingException as e:
                 duration = time.time() - start_time
                 github_api_request_duration_seconds.labels(operation="approve").observe(duration)
                 github_api_requests_total.labels(operation="approve", status="failure").inc()
operator: core/ExceptionReplacer, occurrence: 4
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -320,7 +320,7 @@
                 )
                 return True
 
-            except Exception as e:
+            except CosmicRayTestingException as e:
                 duration = time.time() - start_time
                 github_api_request_duration_seconds.labels(operation="dismiss").observe(duration)
                 github_api_requests_total.labels(operation="dismiss", status="failure").inc()
operator: core/ExceptionReplacer, occurrence: 5
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -393,7 +393,7 @@
 
                 return content.decoded_content.decode("utf-8")
 
-            except Exception as e:
+            except CosmicRayTestingException as e:
                 duration = time.time() - start_time
                 github_api_request_duration_seconds.labels(operation="get_file").observe(duration)
                 github_api_requests_total.labels(operation="get_file", status="not_found").inc()
operator: core/ExceptionReplacer, occurrence: 6
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -466,7 +466,7 @@
 
                 return bot_review_ids
 
-            except Exception as e:
+            except CosmicRayTestingException as e:
                 duration = time.time() - start_time
                 github_api_request_duration_seconds.labels(operation="find_reviews").observe(
                     duration
operator: core/ExceptionReplacer, occurrence: 7
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -542,7 +542,7 @@
                 )
                 return True
 
-            except Exception as e:
+            except CosmicRayTestingException as e:
                 duration = time.time() - start_time
                 github_api_request_duration_seconds.labels(operation="comment").observe(duration)
                 github_api_requests_total.labels(operation="comment", status="failure").inc()
operator: core/ExceptionReplacer, occurrence: 8
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -604,7 +604,7 @@
                 set_span_ok(span)
                 return True
 
-            except GithubException as e:
+            except CosmicRayTestingException as e:
                 duration = time.time() - start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
operator: core/ExceptionReplacer, occurrence: 9
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -629,7 +629,7 @@
                 )
                 return None
 
-            except Exception as e:
+            except CosmicRayTestingException as e:
                 duration = time.time() - start_time
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
operator: core/ExceptionReplacer, occurrence: 10
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -687,7 +687,7 @@
                 try:
                     permission_index = permission_order.index(permission)
                     required_index = permission_order.index(required_permission)
-                except ValueError:
+                except CosmicRayTestingException:
                     permission_index = -1
                     required_index = 99
 
operator: core/ExceptionReplacer, occurrence: 11
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -712,7 +712,7 @@
 
                 return has_permission
 
-            except Exception as e:
+            except CosmicRayTestingException as e:
                 duration = time.time() - start_time
                 github_api_request_duration_seconds.labels(operation="get_permission").observe(
                     duration
operator: core/NumberReplacer, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -20,7 +20,7 @@
 from stampbot.telemetry import add_span_attributes, create_span, set_span_error, set_span_ok
 
 # GitHub API configuration
-GITHUB_API_TIMEOUT = 30  # seconds
+GITHUB_API_TIMEOUT = 31  # seconds
 GITHUB_API_RETRY_TOTAL = 3
 GITHUB_API_RETRY_BACKOFF = 0.5  # exponential backoff factor
 
operator: core/NumberReplacer, occurrence: 1
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -20,7 +20,7 @@
 from stampbot.telemetry import add_span_attributes, create_span, set_span_error, set_span_ok
 
 # GitHub API configuration
-GITHUB_API_TIMEOUT = 30  # seconds
+GITHUB_API_TIMEOUT = 29  # seconds
 GITHUB_API_RETRY_TOTAL = 3
 GITHUB_API_RETRY_BACKOFF = 0.5  # exponential backoff factor
 
operator: core/NumberReplacer, occurrence: 2
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -21,7 +21,7 @@
 
 # GitHub API configuration
 GITHUB_API_TIMEOUT = 30  # seconds
-GITHUB_API_RETRY_TOTAL = 3
+GITHUB_API_RETRY_TOTAL = 4
 GITHUB_API_RETRY_BACKOFF = 0.5  # exponential backoff factor
 
 logger = get_logger(__name__)
operator: core/NumberReplacer, occurrence: 3
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -21,7 +21,7 @@
 
 # GitHub API configuration
 GITHUB_API_TIMEOUT = 30  # seconds
-GITHUB_API_RETRY_TOTAL = 3
+GITHUB_API_RETRY_TOTAL = 2
 GITHUB_API_RETRY_BACKOFF = 0.5  # exponential backoff factor
 
 logger = get_logger(__name__)
operator: core/NumberReplacer, occurrence: 4
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -22,7 +22,7 @@
 # GitHub API configuration
 GITHUB_API_TIMEOUT = 30  # seconds
 GITHUB_API_RETRY_TOTAL = 3
-GITHUB_API_RETRY_BACKOFF = 0.5  # exponential backoff factor
+GITHUB_API_RETRY_BACKOFF = 1.5  # exponential backoff factor
 
 logger = get_logger(__name__)
 
operator: core/NumberReplacer, occurrence: 5
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -22,7 +22,7 @@
 # GitHub API configuration
 GITHUB_API_TIMEOUT = 30  # seconds
 GITHUB_API_RETRY_TOTAL = 3
-GITHUB_API_RETRY_BACKOFF = 0.5  # exponential backoff factor
+GITHUB_API_RETRY_BACKOFF = -0.5  # exponential backoff factor
 
 logger = get_logger(__name__)
 
operator: core/NumberReplacer, occurrence: 6
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -141,7 +141,7 @@
                 retry = Retry(
                     total=GITHUB_API_RETRY_TOTAL,
                     backoff_factor=GITHUB_API_RETRY_BACKOFF,
-                    status_forcelist=[500, 502, 503, 504],
+                    status_forcelist=[ 501, 502, 503, 504],
                     allowed_methods=["GET", "POST", "PUT", "DELETE", "PATCH"],
                 )
 
operator: core/NumberReplacer, occurrence: 7
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -141,7 +141,7 @@
                 retry = Retry(
                     total=GITHUB_API_RETRY_TOTAL,
                     backoff_factor=GITHUB_API_RETRY_BACKOFF,
-                    status_forcelist=[500, 502, 503, 504],
+                    status_forcelist=[ 499, 502, 503, 504],
                     allowed_methods=["GET", "POST", "PUT", "DELETE", "PATCH"],
                 )
 
operator: core/NumberReplacer, occurrence: 8
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -141,7 +141,7 @@
                 retry = Retry(
                     total=GITHUB_API_RETRY_TOTAL,
                     backoff_factor=GITHUB_API_RETRY_BACKOFF,
-                    status_forcelist=[500, 502, 503, 504],
+                    status_forcelist=[500, 503, 503, 504],
                     allowed_methods=["GET", "POST", "PUT", "DELETE", "PATCH"],
                 )
 
operator: core/NumberReplacer, occurrence: 9
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -141,7 +141,7 @@
                 retry = Retry(
                     total=GITHUB_API_RETRY_TOTAL,
                     backoff_factor=GITHUB_API_RETRY_BACKOFF,
-                    status_forcelist=[500, 502, 503, 504],
+                    status_forcelist=[500, 501, 503, 504],
                     allowed_methods=["GET", "POST", "PUT", "DELETE", "PATCH"],
                 )
 
operator: core/NumberReplacer, occurrence: 10
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -141,7 +141,7 @@
                 retry = Retry(
                     total=GITHUB_API_RETRY_TOTAL,
                     backoff_factor=GITHUB_API_RETRY_BACKOFF,
-                    status_forcelist=[500, 502, 503, 504],
+                    status_forcelist=[500, 502, 504, 504],
                     allowed_methods=["GET", "POST", "PUT", "DELETE", "PATCH"],
                 )
 
operator: core/NumberReplacer, occurrence: 11
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -141,7 +141,7 @@
                 retry = Retry(
                     total=GITHUB_API_RETRY_TOTAL,
                     backoff_factor=GITHUB_API_RETRY_BACKOFF,
-                    status_forcelist=[500, 502, 503, 504],
+                    status_forcelist=[500, 502, 502, 504],
                     allowed_methods=["GET", "POST", "PUT", "DELETE", "PATCH"],
                 )
 
operator: core/NumberReplacer, occurrence: 12
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -141,7 +141,7 @@
                 retry = Retry(
                     total=GITHUB_API_RETRY_TOTAL,
                     backoff_factor=GITHUB_API_RETRY_BACKOFF,
-                    status_forcelist=[500, 502, 503, 504],
+                    status_forcelist=[500, 502, 503, 505],
                     allowed_methods=["GET", "POST", "PUT", "DELETE", "PATCH"],
                 )
 
operator: core/NumberReplacer, occurrence: 13
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -141,7 +141,7 @@
                 retry = Retry(
                     total=GITHUB_API_RETRY_TOTAL,
                     backoff_factor=GITHUB_API_RETRY_BACKOFF,
-                    status_forcelist=[500, 502, 503, 504],
+                    status_forcelist=[500, 502, 503, 503],
                     allowed_methods=["GET", "POST", "PUT", "DELETE", "PATCH"],
                 )
 
operator: core/NumberReplacer, occurrence: 14
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -609,7 +609,7 @@
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
-                if e.status == 404:
+                if e.status == 405:
                     add_span_attributes(span, {"github.label_found": False})
                     set_span_ok(span)
                     return False
operator: core/NumberReplacer, occurrence: 15
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -609,7 +609,7 @@
                 github_api_request_duration_seconds.labels(operation="get_label").observe(duration)
                 github_api_requests_total.labels(operation="get_label", status="failure").inc()
 
-                if e.status == 404:
+                if e.status == 403:
                     add_span_attributes(span, {"github.label_found": False})
                     set_span_ok(span)
                     return False
operator: core/NumberReplacer, occurrence: 16
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -688,7 +688,7 @@
                     permission_index = permission_order.index(permission)
                     required_index = permission_order.index(required_permission)
                 except ValueError:
-                    permission_index = -1
+                    permission_index = - 2
                     required_index = 99
 
                 has_permission = permission_index >= required_index
operator: core/NumberReplacer, occurrence: 17
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -688,7 +688,7 @@
                     permission_index = permission_order.index(permission)
                     required_index = permission_order.index(required_permission)
                 except ValueError:
-                    permission_index = -1
+                    permission_index = - 0
                     required_index = 99
 
                 has_permission = permission_index >= required_index
operator: core/NumberReplacer, occurrence: 18
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -689,7 +689,7 @@
                     required_index = permission_order.index(required_permission)
                 except ValueError:
                     permission_index = -1
-                    required_index = 99
+                    required_index = 100
 
                 has_permission = permission_index >= required_index
 
operator: core/NumberReplacer, occurrence: 19
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -689,7 +689,7 @@
                     required_index = permission_order.index(required_permission)
                 except ValueError:
                     permission_index = -1
-                    required_index = 99
+                    required_index = 98
 
                 has_permission = permission_index >= required_index
 
operator: core/RemoveDecorator, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -57,8 +57,6 @@
         self._auth = Auth.AppAuth(app_id, private_key)
         self._integration = GithubIntegration(auth=self._auth)
         self._initialized = True
-
-    @property
     def integration(self) -> GithubIntegration:
         """Get GitHub integration, initializing if needed.
 
operator: core/ZeroIterationForLoop, occurrence: 0
--- mutation diff ---
--- astampbot/github_client.py
+++ bstampbot/github_client.py
@@ -447,7 +447,7 @@
 
                 # Find all reviews by bot that are approvals
                 bot_review_ids = []
-                for review in pr.get_reviews():
+                for review in []:
                     if review.user.login == bot_user and review.state == "APPROVED":
                         bot_review_ids.append(review.id)
 
operator: core/ReplaceBinaryOperator_Pow_Add, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {+defaults, **repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_Add, occurrence: 1
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {**defaults, +repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_Sub, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {-defaults, **repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_Sub, occurrence: 1
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {**defaults, -repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_Mul, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {*defaults, **repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_Mul, occurrence: 1
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {**defaults, *repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_Div, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {/defaults, **repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_Div, occurrence: 1
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {**defaults, /repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_FloorDiv, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {//defaults, **repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_FloorDiv, occurrence: 1
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {**defaults, //repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_Mod, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {%defaults, **repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_Mod, occurrence: 1
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {**defaults, %repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_RShift, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {>>defaults, **repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_RShift, occurrence: 1
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {**defaults, >>repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_LShift, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {<<defaults, **repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_LShift, occurrence: 1
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {**defaults, <<repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_BitOr, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {|defaults, **repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_BitOr, occurrence: 1
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {**defaults, |repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_BitAnd, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {&defaults, **repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_BitAnd, occurrence: 1
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {**defaults, &repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_BitXor, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {^defaults, **repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_Pow_BitXor, occurrence: 1
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -155,7 +155,7 @@
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
-        merged = {**defaults, **repo_settings}
+        merged = {**defaults, ^repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
         if required_permission not in REPO_PERMISSION_LEVELS:
operator: core/ReplaceBinaryOperator_BitOr_Add, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -77,7 +77,7 @@
         chatops_required_permission: str,
         approve_commands: list[str],
         unapprove_commands: list[str],
-        config_error: str | None = None,
+        config_error: str + None = None,
     ):
         """Initialize repo configuration.
 
operator: core/ReplaceBinaryOperator_BitOr_Sub, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -77,7 +77,7 @@
         chatops_required_permission: str,
         approve_commands: list[str],
         unapprove_commands: list[str],
-        config_error: str | None = None,
+        config_error: str - None = None,
     ):
         """Initialize repo configuration.
 
operator: core/ReplaceBinaryOperator_BitOr_Mul, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -77,7 +77,7 @@
         chatops_required_permission: str,
         approve_commands: list[str],
         unapprove_commands: list[str],
-        config_error: str | None = None,
+        config_error: str * None = None,
     ):
         """Initialize repo configuration.
 
operator: core/ReplaceBinaryOperator_BitOr_Div, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -77,7 +77,7 @@
         chatops_required_permission: str,
         approve_commands: list[str],
         unapprove_commands: list[str],
-        config_error: str | None = None,
+        config_error: str / None = None,
     ):
         """Initialize repo configuration.
 
operator: core/ReplaceBinaryOperator_BitOr_FloorDiv, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -77,7 +77,7 @@
         chatops_required_permission: str,
         approve_commands: list[str],
         unapprove_commands: list[str],
-        config_error: str | None = None,
+        config_error: str // None = None,
     ):
         """Initialize repo configuration.
 
operator: core/ReplaceBinaryOperator_BitOr_Mod, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -77,7 +77,7 @@
         chatops_required_permission: str,
         approve_commands: list[str],
         unapprove_commands: list[str],
-        config_error: str | None = None,
+        config_error: str % None = None,
     ):
         """Initialize repo configuration.
 
operator: core/ReplaceBinaryOperator_BitOr_Pow, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -77,7 +77,7 @@
         chatops_required_permission: str,
         approve_commands: list[str],
         unapprove_commands: list[str],
-        config_error: str | None = None,
+        config_error: str ** None = None,
     ):
         """Initialize repo configuration.
 
operator: core/ReplaceBinaryOperator_BitOr_RShift, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -77,7 +77,7 @@
         chatops_required_permission: str,
         approve_commands: list[str],
         unapprove_commands: list[str],
-        config_error: str | None = None,
+        config_error: str >> None = None,
     ):
         """Initialize repo configuration.
 
operator: core/ReplaceBinaryOperator_BitOr_LShift, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -77,7 +77,7 @@
         chatops_required_permission: str,
         approve_commands: list[str],
         unapprove_commands: list[str],
-        config_error: str | None = None,
+        config_error: str << None = None,
     ):
         """Initialize repo configuration.
 
operator: core/ReplaceBinaryOperator_BitOr_BitAnd, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -77,7 +77,7 @@
         chatops_required_permission: str,
         approve_commands: list[str],
         unapprove_commands: list[str],
-        config_error: str | None = None,
+        config_error: str & None = None,
     ):
         """Initialize repo configuration.
 
operator: core/ReplaceBinaryOperator_BitOr_BitXor, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -77,7 +77,7 @@
         chatops_required_permission: str,
         approve_commands: list[str],
         unapprove_commands: list[str],
-        config_error: str | None = None,
+        config_error: str ^ None = None,
     ):
         """Initialize repo configuration.
 
operator: core/AddNot, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -122,7 +122,7 @@
         defaults = REPO_CONFIG_DEFAULTS.copy()
 
         # Allow overriding defaults via settings.toml [defaults] section
-        if settings.get("defaults"):
+        if not settings.get("defaults"):
             settings_defaults = settings.defaults
             for key in defaults:
                 if hasattr(settings_defaults, key):
operator: core/AddNot, occurrence: 1
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -125,7 +125,7 @@
         if settings.get("defaults"):
             settings_defaults = settings.defaults
             for key in defaults:
-                if hasattr(settings_defaults, key):
+                if not hasattr(settings_defaults, key):
                     defaults[key] = getattr(settings_defaults, key)
 
         return defaults
operator: core/AddNot, occurrence: 2
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -151,7 +151,7 @@
 
         # Parse the repo-specific TOML
         repo_settings: dict[str, Any] = {}
-        if toml_content:
+        if not toml_content:
             repo_settings = toml.loads(toml_content)
 
         # Merge: repo settings override defaults
operator: core/AddNot, occurrence: 3
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -158,7 +158,7 @@
         merged = {**defaults, **repo_settings}
 
         required_permission = merged.get("chatops_required_permission", "maintain")
-        if required_permission not in REPO_PERMISSION_LEVELS:
+        if not required_permission not in REPO_PERMISSION_LEVELS:
             raise ValueError(
                 "Invalid chatops_required_permission: "
                 f"{required_permission}. "
operator: core/ReplaceTrueWithFalse, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -13,7 +13,7 @@
 # These can be overridden in settings.toml or per-repo stampbot.toml
 REPO_CONFIG_DEFAULTS = {
     "approval_labels": ["autoapprove", "stamp"],
-    "auto_approve_on_label": True,
+    "auto_approve_on_label": False,
     "chatops_enabled": True,
     "chatops_required_permission": "maintain",
     "approve_commands": ["approve", "stamp"],
operator: core/ReplaceTrueWithFalse, occurrence: 1
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -14,7 +14,7 @@
 REPO_CONFIG_DEFAULTS = {
     "approval_labels": ["autoapprove", "stamp"],
     "auto_approve_on_label": True,
-    "chatops_enabled": True,
+    "chatops_enabled": False,
     "chatops_required_permission": "maintain",
     "approve_commands": ["approve", "stamp"],
     "unapprove_commands": ["unapprove", "unstamp"],
operator: core/ReplaceTrueWithFalse, occurrence: 2
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -30,7 +30,7 @@
     envvar_prefix="STAMPBOT",
     settings_files=["settings.toml", ".secrets.toml"],
     environments=False,  # We don't use [development]/[production] sections
-    load_dotenv=True,
+    load_dotenv=False,
 )
 
 
operator: core/ReplaceTrueWithFalse, occurrence: 3
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -167,7 +167,7 @@
 
         return cls(
             approval_labels=merged.get("approval_labels", []),
-            auto_approve_on_label=merged.get("auto_approve_on_label", True),
+            auto_approve_on_label=merged.get("auto_approve_on_label", False),
             chatops_enabled=merged.get("chatops_enabled", True),
             chatops_required_permission=required_permission,
             approve_commands=merged.get("approve_commands", ["approve", "stamp"]),
operator: core/ReplaceTrueWithFalse, occurrence: 4
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -168,7 +168,7 @@
         return cls(
             approval_labels=merged.get("approval_labels", []),
             auto_approve_on_label=merged.get("auto_approve_on_label", True),
-            chatops_enabled=merged.get("chatops_enabled", True),
+            chatops_enabled=merged.get("chatops_enabled", False),
             chatops_required_permission=required_permission,
             approve_commands=merged.get("approve_commands", ["approve", "stamp"]),
             unapprove_commands=merged.get("unapprove_commands", ["unapprove", "unstamp"]),
operator: core/ReplaceFalseWithTrue, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -29,7 +29,7 @@
 settings = Dynaconf(
     envvar_prefix="STAMPBOT",
     settings_files=["settings.toml", ".secrets.toml"],
-    environments=False,  # We don't use [development]/[production] sections
+    environments=True,  # We don't use [development]/[production] sections
     load_dotenv=True,
 )
 
operator: core/RemoveDecorator, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -109,8 +109,6 @@
         """
         self.config_error = message
         return self
-
-    @classmethod
     def _get_defaults(cls) -> dict[str, Any]:
         """Get default repo config values.
 
operator: core/RemoveDecorator, occurrence: 1
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -129,8 +129,6 @@
                     defaults[key] = getattr(settings_defaults, key)
 
         return defaults
-
-    @classmethod
     def from_toml(cls, toml_content: str) -> RepoConfig:
         """Parse TOML content and merge with app defaults.
 
operator: core/RemoveDecorator, occurrence: 2
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -173,8 +173,6 @@
             approve_commands=merged.get("approve_commands", ["approve", "stamp"]),
             unapprove_commands=merged.get("unapprove_commands", ["unapprove", "unstamp"]),
         )
-
-    @classmethod
     def default(cls) -> RepoConfig:
         """Return default configuration from app settings.
 
operator: core/ZeroIterationForLoop, occurrence: 0
--- mutation diff ---
--- astampbot/config.py
+++ bstampbot/config.py
@@ -124,7 +124,7 @@
         # Allow overriding defaults via settings.toml [defaults] section
         if settings.get("defaults"):
             settings_defaults = settings.defaults
-            for key in defaults:
+            for key in []:
                 if hasattr(settings_defaults, key):
                     defaults[key] = getattr(settings_defaults, key)
 
operator: core/ReplaceComparisonOperator_Eq_NotEq, occurrence: 0
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -33,7 +33,7 @@
     """
     log_format = settings.log_format.lower()
 
-    if log_format == "json":
+    if log_format != "json":
         return structlog.processors.JSONRenderer()
     elif log_format == "console":
         return structlog.dev.ConsoleRenderer(colors=True)
operator: core/ReplaceComparisonOperator_Eq_NotEq, occurrence: 1
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -35,7 +35,7 @@
 
     if log_format == "json":
         return structlog.processors.JSONRenderer()
-    elif log_format == "console":
+    elif log_format != "console":
         return structlog.dev.ConsoleRenderer(colors=True)
     elif log_format == "auto":
         # Auto-detect: use JSON in Kubernetes, console otherwise
operator: core/ReplaceComparisonOperator_Eq_NotEq, occurrence: 2
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -37,7 +37,7 @@
         return structlog.processors.JSONRenderer()
     elif log_format == "console":
         return structlog.dev.ConsoleRenderer(colors=True)
-    elif log_format == "auto":
+    elif log_format != "auto":
         # Auto-detect: use JSON in Kubernetes, console otherwise
         if is_running_in_kubernetes():
             return structlog.processors.JSONRenderer()
operator: core/ReplaceComparisonOperator_Eq_Lt, occurrence: 0
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -33,7 +33,7 @@
     """
     log_format = settings.log_format.lower()
 
-    if log_format == "json":
+    if log_format < "json":
         return structlog.processors.JSONRenderer()
     elif log_format == "console":
         return structlog.dev.ConsoleRenderer(colors=True)
operator: core/ReplaceComparisonOperator_Eq_Lt, occurrence: 1
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -35,7 +35,7 @@
 
     if log_format == "json":
         return structlog.processors.JSONRenderer()
-    elif log_format == "console":
+    elif log_format < "console":
         return structlog.dev.ConsoleRenderer(colors=True)
     elif log_format == "auto":
         # Auto-detect: use JSON in Kubernetes, console otherwise
operator: core/ReplaceComparisonOperator_Eq_Lt, occurrence: 2
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -37,7 +37,7 @@
         return structlog.processors.JSONRenderer()
     elif log_format == "console":
         return structlog.dev.ConsoleRenderer(colors=True)
-    elif log_format == "auto":
+    elif log_format < "auto":
         # Auto-detect: use JSON in Kubernetes, console otherwise
         if is_running_in_kubernetes():
             return structlog.processors.JSONRenderer()
operator: core/ReplaceComparisonOperator_Eq_LtE, occurrence: 0
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -33,7 +33,7 @@
     """
     log_format = settings.log_format.lower()
 
-    if log_format == "json":
+    if log_format <= "json":
         return structlog.processors.JSONRenderer()
     elif log_format == "console":
         return structlog.dev.ConsoleRenderer(colors=True)
operator: core/ReplaceComparisonOperator_Eq_LtE, occurrence: 1
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -35,7 +35,7 @@
 
     if log_format == "json":
         return structlog.processors.JSONRenderer()
-    elif log_format == "console":
+    elif log_format <= "console":
         return structlog.dev.ConsoleRenderer(colors=True)
     elif log_format == "auto":
         # Auto-detect: use JSON in Kubernetes, console otherwise
operator: core/ReplaceComparisonOperator_Eq_LtE, occurrence: 2
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -37,7 +37,7 @@
         return structlog.processors.JSONRenderer()
     elif log_format == "console":
         return structlog.dev.ConsoleRenderer(colors=True)
-    elif log_format == "auto":
+    elif log_format <= "auto":
         # Auto-detect: use JSON in Kubernetes, console otherwise
         if is_running_in_kubernetes():
             return structlog.processors.JSONRenderer()
operator: core/ReplaceComparisonOperator_Eq_Gt, occurrence: 0
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -33,7 +33,7 @@
     """
     log_format = settings.log_format.lower()
 
-    if log_format == "json":
+    if log_format > "json":
         return structlog.processors.JSONRenderer()
     elif log_format == "console":
         return structlog.dev.ConsoleRenderer(colors=True)
operator: core/ReplaceComparisonOperator_Eq_Gt, occurrence: 1
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -35,7 +35,7 @@
 
     if log_format == "json":
         return structlog.processors.JSONRenderer()
-    elif log_format == "console":
+    elif log_format > "console":
         return structlog.dev.ConsoleRenderer(colors=True)
     elif log_format == "auto":
         # Auto-detect: use JSON in Kubernetes, console otherwise
operator: core/ReplaceComparisonOperator_Eq_Gt, occurrence: 2
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -37,7 +37,7 @@
         return structlog.processors.JSONRenderer()
     elif log_format == "console":
         return structlog.dev.ConsoleRenderer(colors=True)
-    elif log_format == "auto":
+    elif log_format > "auto":
         # Auto-detect: use JSON in Kubernetes, console otherwise
         if is_running_in_kubernetes():
             return structlog.processors.JSONRenderer()
operator: core/ReplaceComparisonOperator_Eq_GtE, occurrence: 0
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -33,7 +33,7 @@
     """
     log_format = settings.log_format.lower()
 
-    if log_format == "json":
+    if log_format >= "json":
         return structlog.processors.JSONRenderer()
     elif log_format == "console":
         return structlog.dev.ConsoleRenderer(colors=True)
operator: core/ReplaceComparisonOperator_Eq_GtE, occurrence: 1
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -35,7 +35,7 @@
 
     if log_format == "json":
         return structlog.processors.JSONRenderer()
-    elif log_format == "console":
+    elif log_format >= "console":
         return structlog.dev.ConsoleRenderer(colors=True)
     elif log_format == "auto":
         # Auto-detect: use JSON in Kubernetes, console otherwise
operator: core/ReplaceComparisonOperator_Eq_GtE, occurrence: 2
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -37,7 +37,7 @@
         return structlog.processors.JSONRenderer()
     elif log_format == "console":
         return structlog.dev.ConsoleRenderer(colors=True)
-    elif log_format == "auto":
+    elif log_format >= "auto":
         # Auto-detect: use JSON in Kubernetes, console otherwise
         if is_running_in_kubernetes():
             return structlog.processors.JSONRenderer()
operator: core/ReplaceComparisonOperator_Eq_Is, occurrence: 0
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -33,7 +33,7 @@
     """
     log_format = settings.log_format.lower()
 
-    if log_format == "json":
+    if log_format is "json":
         return structlog.processors.JSONRenderer()
     elif log_format == "console":
         return structlog.dev.ConsoleRenderer(colors=True)
operator: core/ReplaceComparisonOperator_Eq_Is, occurrence: 1
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -35,7 +35,7 @@
 
     if log_format == "json":
         return structlog.processors.JSONRenderer()
-    elif log_format == "console":
+    elif log_format is "console":
         return structlog.dev.ConsoleRenderer(colors=True)
     elif log_format == "auto":
         # Auto-detect: use JSON in Kubernetes, console otherwise
operator: core/ReplaceComparisonOperator_Eq_Is, occurrence: 2
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -37,7 +37,7 @@
         return structlog.processors.JSONRenderer()
     elif log_format == "console":
         return structlog.dev.ConsoleRenderer(colors=True)
-    elif log_format == "auto":
+    elif log_format is "auto":
         # Auto-detect: use JSON in Kubernetes, console otherwise
         if is_running_in_kubernetes():
             return structlog.processors.JSONRenderer()
operator: core/ReplaceComparisonOperator_Eq_IsNot, occurrence: 0
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -33,7 +33,7 @@
     """
     log_format = settings.log_format.lower()
 
-    if log_format == "json":
+    if log_format is not "json":
         return structlog.processors.JSONRenderer()
     elif log_format == "console":
         return structlog.dev.ConsoleRenderer(colors=True)
operator: core/ReplaceComparisonOperator_Eq_IsNot, occurrence: 1
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -35,7 +35,7 @@
 
     if log_format == "json":
         return structlog.processors.JSONRenderer()
-    elif log_format == "console":
+    elif log_format is not "console":
         return structlog.dev.ConsoleRenderer(colors=True)
     elif log_format == "auto":
         # Auto-detect: use JSON in Kubernetes, console otherwise
operator: core/ReplaceComparisonOperator_Eq_IsNot, occurrence: 2
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -37,7 +37,7 @@
         return structlog.processors.JSONRenderer()
     elif log_format == "console":
         return structlog.dev.ConsoleRenderer(colors=True)
-    elif log_format == "auto":
+    elif log_format is not "auto":
         # Auto-detect: use JSON in Kubernetes, console otherwise
         if is_running_in_kubernetes():
             return structlog.processors.JSONRenderer()
operator: core/AddNot, occurrence: 0
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -33,7 +33,7 @@
     """
     log_format = settings.log_format.lower()
 
-    if log_format == "json":
+    if not log_format == "json":
         return structlog.processors.JSONRenderer()
     elif log_format == "console":
         return structlog.dev.ConsoleRenderer(colors=True)
operator: core/AddNot, occurrence: 1
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -39,7 +39,7 @@
         return structlog.dev.ConsoleRenderer(colors=True)
     elif log_format == "auto":
         # Auto-detect: use JSON in Kubernetes, console otherwise
-        if is_running_in_kubernetes():
+        if not is_running_in_kubernetes():
             return structlog.processors.JSONRenderer()
         else:
             return structlog.dev.ConsoleRenderer(colors=True)
operator: core/AddNot, occurrence: 2
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -77,7 +77,7 @@
     )
 
     # Instrument logging with OpenTelemetry if enabled
-    if settings.otel_enabled:
+    if not settings.otel_enabled:
         LoggingInstrumentor().instrument(set_logging_format=True)
 
 
operator: core/ReplaceTrueWithFalse, occurrence: 0
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -36,7 +36,7 @@
     if log_format == "json":
         return structlog.processors.JSONRenderer()
     elif log_format == "console":
-        return structlog.dev.ConsoleRenderer(colors=True)
+        return structlog.dev.ConsoleRenderer(colors=False)
     elif log_format == "auto":
         # Auto-detect: use JSON in Kubernetes, console otherwise
         if is_running_in_kubernetes():
operator: core/ReplaceTrueWithFalse, occurrence: 1
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -42,7 +42,7 @@
         if is_running_in_kubernetes():
             return structlog.processors.JSONRenderer()
         else:
-            return structlog.dev.ConsoleRenderer(colors=True)
+            return structlog.dev.ConsoleRenderer(colors=False)
     else:
         # Unknown format, default to JSON for safety
         return structlog.processors.JSONRenderer()
operator: core/ReplaceTrueWithFalse, occurrence: 2
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -66,7 +66,7 @@
         ),
         context_class=dict,
         logger_factory=structlog.PrintLoggerFactory(),
-        cache_logger_on_first_use=True,
+        cache_logger_on_first_use=False,
     )
 
     # Configure standard logging
operator: core/ReplaceTrueWithFalse, occurrence: 3
--- mutation diff ---
--- astampbot/logger.py
+++ bstampbot/logger.py
@@ -78,7 +78,7 @@
 
     # Instrument logging with OpenTelemetry if enabled
     if settings.otel_enabled:
-        LoggingInstrumentor().instrument(set_logging_format=True)
+        LoggingInstrumentor().instrument(set_logging_format=False)
 
 
 def get_logger(name: str) -> structlog.BoundLogger:
operator: core/ReplaceComparisonOperator_Eq_NotEq, occurrence: 0
--- mutation diff ---
--- astampbot/__main__.py
+++ bstampbot/__main__.py
@@ -7,7 +7,7 @@
 
 from stampbot.config import settings
 
-if __name__ == "__main__":
+if __name__ != "__main__":
     uvicorn.run(
         "stampbot.main:app",
         host=settings.host,
operator: core/ReplaceComparisonOperator_Eq_Lt, occurrence: 0
--- mutation diff ---
--- astampbot/__main__.py
+++ bstampbot/__main__.py
@@ -7,7 +7,7 @@
 
 from stampbot.config import settings
 
-if __name__ == "__main__":
+if __name__ < "__main__":
     uvicorn.run(
         "stampbot.main:app",
         host=settings.host,
operator: core/ReplaceComparisonOperator_Eq_LtE, occurrence: 0
--- mutation diff ---
--- astampbot/__main__.py
+++ bstampbot/__main__.py
@@ -7,7 +7,7 @@
 
 from stampbot.config import settings
 
-if __name__ == "__main__":
+if __name__ <= "__main__":
     uvicorn.run(
         "stampbot.main:app",
         host=settings.host,
operator: core/ReplaceComparisonOperator_Eq_Gt, occurrence: 0
--- mutation diff ---
--- astampbot/__main__.py
+++ bstampbot/__main__.py
@@ -7,7 +7,7 @@
 
 from stampbot.config import settings
 
-if __name__ == "__main__":
+if __name__ > "__main__":
     uvicorn.run(
         "stampbot.main:app",
         host=settings.host,
operator: core/ReplaceComparisonOperator_Eq_GtE, occurrence: 0
--- mutation diff ---
--- astampbot/__main__.py
+++ bstampbot/__main__.py
@@ -7,7 +7,7 @@
 
 from stampbot.config import settings
 
-if __name__ == "__main__":
+if __name__ >= "__main__":
     uvicorn.run(
         "stampbot.main:app",
         host=settings.host,
operator: core/ReplaceComparisonOperator_Eq_Is, occurrence: 0
--- mutation diff ---
--- astampbot/__main__.py
+++ bstampbot/__main__.py
@@ -7,7 +7,7 @@
 
 from stampbot.config import settings
 
-if __name__ == "__main__":
+if __name__ is "__main__":
     uvicorn.run(
         "stampbot.main:app",
         host=settings.host,
operator: core/ReplaceComparisonOperator_Eq_IsNot, occurrence: 0
--- mutation diff ---
--- astampbot/__main__.py
+++ bstampbot/__main__.py
@@ -7,7 +7,7 @@
 
 from stampbot.config import settings
 
-if __name__ == "__main__":
+if __name__ is not "__main__":
     uvicorn.run(
         "stampbot.main:app",
         host=settings.host,
operator: core/AddNot, occurrence: 0
--- mutation diff ---
--- astampbot/__main__.py
+++ bstampbot/__main__.py
@@ -7,7 +7,7 @@
 
 from stampbot.config import settings
 
-if __name__ == "__main__":
+if not __name__ == "__main__":
     uvicorn.run(
         "stampbot.main:app",
         host=settings.host,
operator: core/ReplaceFalseWithTrue, occurrence: 0
--- mutation diff ---
--- astampbot/__main__.py
+++ bstampbot/__main__.py
@@ -13,6 +13,6 @@
         host=settings.host,
         port=settings.port,
         log_level=settings.log_level.lower(),
-        reload=False,
+        reload=True,
     )
 
operator: core/ReplaceBinaryOperator_BitOr_Add, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -60,7 +60,7 @@
 
 def create_manifest(
     redirect_url: str,
-    webhook_url: str | None = None,
+    webhook_url: str + None = None,
     app_name: str = "Stampbot",
     app_description: str = "GitHub PR Auto-Approval Bot",
 ) -> dict[str, Any]:
operator: core/ReplaceBinaryOperator_BitOr_Sub, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -60,7 +60,7 @@
 
 def create_manifest(
     redirect_url: str,
-    webhook_url: str | None = None,
+    webhook_url: str - None = None,
     app_name: str = "Stampbot",
     app_description: str = "GitHub PR Auto-Approval Bot",
 ) -> dict[str, Any]:
operator: core/ReplaceBinaryOperator_BitOr_Mul, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -60,7 +60,7 @@
 
 def create_manifest(
     redirect_url: str,
-    webhook_url: str | None = None,
+    webhook_url: str * None = None,
     app_name: str = "Stampbot",
     app_description: str = "GitHub PR Auto-Approval Bot",
 ) -> dict[str, Any]:
operator: core/ReplaceBinaryOperator_BitOr_Div, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -60,7 +60,7 @@
 
 def create_manifest(
     redirect_url: str,
-    webhook_url: str | None = None,
+    webhook_url: str / None = None,
     app_name: str = "Stampbot",
     app_description: str = "GitHub PR Auto-Approval Bot",
 ) -> dict[str, Any]:
operator: core/ReplaceBinaryOperator_BitOr_FloorDiv, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -60,7 +60,7 @@
 
 def create_manifest(
     redirect_url: str,
-    webhook_url: str | None = None,
+    webhook_url: str // None = None,
     app_name: str = "Stampbot",
     app_description: str = "GitHub PR Auto-Approval Bot",
 ) -> dict[str, Any]:
operator: core/ReplaceBinaryOperator_BitOr_Mod, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -60,7 +60,7 @@
 
 def create_manifest(
     redirect_url: str,
-    webhook_url: str | None = None,
+    webhook_url: str % None = None,
     app_name: str = "Stampbot",
     app_description: str = "GitHub PR Auto-Approval Bot",
 ) -> dict[str, Any]:
operator: core/ReplaceBinaryOperator_BitOr_Pow, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -60,7 +60,7 @@
 
 def create_manifest(
     redirect_url: str,
-    webhook_url: str | None = None,
+    webhook_url: str ** None = None,
     app_name: str = "Stampbot",
     app_description: str = "GitHub PR Auto-Approval Bot",
 ) -> dict[str, Any]:
operator: core/ReplaceBinaryOperator_BitOr_RShift, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -60,7 +60,7 @@
 
 def create_manifest(
     redirect_url: str,
-    webhook_url: str | None = None,
+    webhook_url: str >> None = None,
     app_name: str = "Stampbot",
     app_description: str = "GitHub PR Auto-Approval Bot",
 ) -> dict[str, Any]:
operator: core/ReplaceBinaryOperator_BitOr_LShift, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -60,7 +60,7 @@
 
 def create_manifest(
     redirect_url: str,
-    webhook_url: str | None = None,
+    webhook_url: str << None = None,
     app_name: str = "Stampbot",
     app_description: str = "GitHub PR Auto-Approval Bot",
 ) -> dict[str, Any]:
operator: core/ReplaceBinaryOperator_BitOr_BitAnd, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -60,7 +60,7 @@
 
 def create_manifest(
     redirect_url: str,
-    webhook_url: str | None = None,
+    webhook_url: str & None = None,
     app_name: str = "Stampbot",
     app_description: str = "GitHub PR Auto-Approval Bot",
 ) -> dict[str, Any]:
operator: core/ReplaceBinaryOperator_BitOr_BitXor, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -60,7 +60,7 @@
 
 def create_manifest(
     redirect_url: str,
-    webhook_url: str | None = None,
+    webhook_url: str ^ None = None,
     app_name: str = "Stampbot",
     app_description: str = "GitHub PR Auto-Approval Bot",
 ) -> dict[str, Any]:
operator: core/ReplaceComparisonOperator_Eq_NotEq, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -31,7 +31,7 @@
         raise ValueError(f"Invalid {name}: must be a complete URL")
 
     # Allow http only for localhost (development)
-    if parsed.scheme == "http":
+    if parsed.scheme != "http":
         if parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
             raise ValueError(f"Invalid {name}: must use HTTPS (HTTP only allowed for localhost)")
     elif parsed.scheme != "https":
operator: core/ReplaceComparisonOperator_Eq_Lt, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -31,7 +31,7 @@
         raise ValueError(f"Invalid {name}: must be a complete URL")
 
     # Allow http only for localhost (development)
-    if parsed.scheme == "http":
+    if parsed.scheme < "http":
         if parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
             raise ValueError(f"Invalid {name}: must use HTTPS (HTTP only allowed for localhost)")
     elif parsed.scheme != "https":
operator: core/ReplaceComparisonOperator_Eq_LtE, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -31,7 +31,7 @@
         raise ValueError(f"Invalid {name}: must be a complete URL")
 
     # Allow http only for localhost (development)
-    if parsed.scheme == "http":
+    if parsed.scheme <= "http":
         if parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
             raise ValueError(f"Invalid {name}: must use HTTPS (HTTP only allowed for localhost)")
     elif parsed.scheme != "https":
operator: core/ReplaceComparisonOperator_Eq_Gt, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -31,7 +31,7 @@
         raise ValueError(f"Invalid {name}: must be a complete URL")
 
     # Allow http only for localhost (development)
-    if parsed.scheme == "http":
+    if parsed.scheme > "http":
         if parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
             raise ValueError(f"Invalid {name}: must use HTTPS (HTTP only allowed for localhost)")
     elif parsed.scheme != "https":
operator: core/ReplaceComparisonOperator_Eq_GtE, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -31,7 +31,7 @@
         raise ValueError(f"Invalid {name}: must be a complete URL")
 
     # Allow http only for localhost (development)
-    if parsed.scheme == "http":
+    if parsed.scheme >= "http":
         if parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
             raise ValueError(f"Invalid {name}: must use HTTPS (HTTP only allowed for localhost)")
     elif parsed.scheme != "https":
operator: core/ReplaceComparisonOperator_Eq_Is, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -31,7 +31,7 @@
         raise ValueError(f"Invalid {name}: must be a complete URL")
 
     # Allow http only for localhost (development)
-    if parsed.scheme == "http":
+    if parsed.scheme is "http":
         if parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
             raise ValueError(f"Invalid {name}: must use HTTPS (HTTP only allowed for localhost)")
     elif parsed.scheme != "https":
operator: core/ReplaceComparisonOperator_Eq_IsNot, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -31,7 +31,7 @@
         raise ValueError(f"Invalid {name}: must be a complete URL")
 
     # Allow http only for localhost (development)
-    if parsed.scheme == "http":
+    if parsed.scheme is not "http":
         if parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
             raise ValueError(f"Invalid {name}: must use HTTPS (HTTP only allowed for localhost)")
     elif parsed.scheme != "https":
operator: core/ReplaceComparisonOperator_NotEq_Eq, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -34,7 +34,7 @@
     if parsed.scheme == "http":
         if parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
             raise ValueError(f"Invalid {name}: must use HTTPS (HTTP only allowed for localhost)")
-    elif parsed.scheme != "https":
+    elif parsed.scheme == "https":
         raise ValueError(f"Invalid {name}: must use HTTPS")
 
 
operator: core/ReplaceComparisonOperator_NotEq_Lt, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -34,7 +34,7 @@
     if parsed.scheme == "http":
         if parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
             raise ValueError(f"Invalid {name}: must use HTTPS (HTTP only allowed for localhost)")
-    elif parsed.scheme != "https":
+    elif parsed.scheme < "https":
         raise ValueError(f"Invalid {name}: must use HTTPS")
 
 
operator: core/ReplaceComparisonOperator_NotEq_LtE, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -34,7 +34,7 @@
     if parsed.scheme == "http":
         if parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
             raise ValueError(f"Invalid {name}: must use HTTPS (HTTP only allowed for localhost)")
-    elif parsed.scheme != "https":
+    elif parsed.scheme <= "https":
         raise ValueError(f"Invalid {name}: must use HTTPS")
 
 
operator: core/ReplaceComparisonOperator_NotEq_Gt, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -34,7 +34,7 @@
     if parsed.scheme == "http":
         if parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
             raise ValueError(f"Invalid {name}: must use HTTPS (HTTP only allowed for localhost)")
-    elif parsed.scheme != "https":
+    elif parsed.scheme > "https":
         raise ValueError(f"Invalid {name}: must use HTTPS")
 
 
operator: core/ReplaceComparisonOperator_NotEq_GtE, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -34,7 +34,7 @@
     if parsed.scheme == "http":
         if parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
             raise ValueError(f"Invalid {name}: must use HTTPS (HTTP only allowed for localhost)")
-    elif parsed.scheme != "https":
+    elif parsed.scheme >= "https":
         raise ValueError(f"Invalid {name}: must use HTTPS")
 
 
operator: core/ReplaceComparisonOperator_NotEq_Is, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -34,7 +34,7 @@
     if parsed.scheme == "http":
         if parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
             raise ValueError(f"Invalid {name}: must use HTTPS (HTTP only allowed for localhost)")
-    elif parsed.scheme != "https":
+    elif parsed.scheme is "https":
         raise ValueError(f"Invalid {name}: must use HTTPS")
 
 
operator: core/ReplaceComparisonOperator_NotEq_IsNot, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -34,7 +34,7 @@
     if parsed.scheme == "http":
         if parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
             raise ValueError(f"Invalid {name}: must use HTTPS (HTTP only allowed for localhost)")
-    elif parsed.scheme != "https":
+    elif parsed.scheme is not "https":
         raise ValueError(f"Invalid {name}: must use HTTPS")
 
 
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -27,7 +27,7 @@
     """
     parsed = urlparse(url)
 
-    if not parsed.scheme or not parsed.netloc:
+    if  parsed.scheme or not parsed.netloc:
         raise ValueError(f"Invalid {name}: must be a complete URL")
 
     # Allow http only for localhost (development)
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 1
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -27,7 +27,7 @@
     """
     parsed = urlparse(url)
 
-    if not parsed.scheme or not parsed.netloc:
+    if not parsed.scheme or  parsed.netloc:
         raise ValueError(f"Invalid {name}: must be a complete URL")
 
     # Allow http only for localhost (development)
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 2
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -144,7 +144,7 @@
         ValueError: If code contains invalid characters
     """
     # Validate code to prevent SSRF - GitHub codes are alphanumeric
-    if not code or not code.isalnum():
+    if  code or not code.isalnum():
         raise ValueError("Invalid manifest code format")
 
     url = GITHUB_MANIFEST_CONVERSION_URL.format(code=code)
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 3
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -144,7 +144,7 @@
         ValueError: If code contains invalid characters
     """
     # Validate code to prevent SSRF - GitHub codes are alphanumeric
-    if not code or not code.isalnum():
+    if not code or  code.isalnum():
         raise ValueError("Invalid manifest code format")
 
     url = GITHUB_MANIFEST_CONVERSION_URL.format(code=code)
operator: core/AddNot, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -27,7 +27,7 @@
     """
     parsed = urlparse(url)
 
-    if not parsed.scheme or not parsed.netloc:
+    if not not parsed.scheme or not parsed.netloc:
         raise ValueError(f"Invalid {name}: must be a complete URL")
 
     # Allow http only for localhost (development)
operator: core/AddNot, occurrence: 1
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -31,7 +31,7 @@
         raise ValueError(f"Invalid {name}: must be a complete URL")
 
     # Allow http only for localhost (development)
-    if parsed.scheme == "http":
+    if not parsed.scheme == "http":
         if parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
             raise ValueError(f"Invalid {name}: must use HTTPS (HTTP only allowed for localhost)")
     elif parsed.scheme != "https":
operator: core/AddNot, occurrence: 2
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -32,7 +32,7 @@
 
     # Allow http only for localhost (development)
     if parsed.scheme == "http":
-        if parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
+        if not parsed.hostname not in ("localhost", "127.0.0.1", "::1"):
             raise ValueError(f"Invalid {name}: must use HTTPS (HTTP only allowed for localhost)")
     elif parsed.scheme != "https":
         raise ValueError(f"Invalid {name}: must use HTTPS")
operator: core/AddNot, occurrence: 3
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -95,7 +95,7 @@
     }
 
     # Only include webhook URL if provided; GitHub will prompt for it otherwise
-    if webhook_url:
+    if not webhook_url:
         _validate_url(webhook_url, "webhook_url")
         manifest["hook_attributes"] = {
             "url": webhook_url,
operator: core/AddNot, occurrence: 4
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -144,7 +144,7 @@
         ValueError: If code contains invalid characters
     """
     # Validate code to prevent SSRF - GitHub codes are alphanumeric
-    if not code or not code.isalnum():
+    if not not code or not code.isalnum():
         raise ValueError("Invalid manifest code format")
 
     url = GITHUB_MANIFEST_CONVERSION_URL.format(code=code)
operator: core/ReplaceTrueWithFalse, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -99,7 +99,7 @@
         _validate_url(webhook_url, "webhook_url")
         manifest["hook_attributes"] = {
             "url": webhook_url,
-            "active": True,
+            "active": False,
         }
 
     return manifest
operator: core/ReplaceFalseWithTrue, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -89,7 +89,7 @@
         "description": app_description,
         "url": base_url,
         "redirect_url": redirect_url,
-        "public": False,
+        "public": True,
         "default_permissions": MANIFEST_PERMISSIONS,
         "default_events": MANIFEST_EVENTS,
     }
operator: core/ReplaceOrWithAnd, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -27,7 +27,7 @@
     """
     parsed = urlparse(url)
 
-    if not parsed.scheme or not parsed.netloc:
+    if not parsed.scheme and not parsed.netloc:
         raise ValueError(f"Invalid {name}: must be a complete URL")
 
     # Allow http only for localhost (development)
operator: core/ReplaceOrWithAnd, occurrence: 1
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -144,7 +144,7 @@
         ValueError: If code contains invalid characters
     """
     # Validate code to prevent SSRF - GitHub codes are alphanumeric
-    if not code or not code.isalnum():
+    if not code and not code.isalnum():
         raise ValueError("Invalid manifest code format")
 
     url = GITHUB_MANIFEST_CONVERSION_URL.format(code=code)
operator: core/NumberReplacer, occurrence: 0
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -41,7 +41,7 @@
 # GitHub App Manifest URLs
 GITHUB_MANIFEST_URL = "https://github.com/settings/apps/new"
 GITHUB_MANIFEST_CONVERSION_URL = "https://api.github.com/app-manifests/{code}/conversions"
-GITHUB_MANIFEST_TIMEOUT_SECONDS = 10.0
+GITHUB_MANIFEST_TIMEOUT_SECONDS = 11.0
 
 # Required permissions for stampbot
 MANIFEST_PERMISSIONS = {
operator: core/NumberReplacer, occurrence: 1
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -41,7 +41,7 @@
 # GitHub App Manifest URLs
 GITHUB_MANIFEST_URL = "https://github.com/settings/apps/new"
 GITHUB_MANIFEST_CONVERSION_URL = "https://api.github.com/app-manifests/{code}/conversions"
-GITHUB_MANIFEST_TIMEOUT_SECONDS = 10.0
+GITHUB_MANIFEST_TIMEOUT_SECONDS = 9.0
 
 # Required permissions for stampbot
 MANIFEST_PERMISSIONS = {
operator: core/NumberReplacer, occurrence: 2
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -82,7 +82,7 @@
     _validate_url(redirect_url, "redirect_url")
 
     # Extract base URL from redirect URL
-    base_url = redirect_url.rsplit("/setup/callback", 1)[0]
+    base_url = redirect_url.rsplit("/setup/callback", 2)[0]
 
     manifest: dict[str, Any] = {
         "name": app_name,
operator: core/NumberReplacer, occurrence: 3
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -82,7 +82,7 @@
     _validate_url(redirect_url, "redirect_url")
 
     # Extract base URL from redirect URL
-    base_url = redirect_url.rsplit("/setup/callback", 1)[0]
+    base_url = redirect_url.rsplit("/setup/callback", 0)[0]
 
     manifest: dict[str, Any] = {
         "name": app_name,
operator: core/NumberReplacer, occurrence: 4
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -82,7 +82,7 @@
     _validate_url(redirect_url, "redirect_url")
 
     # Extract base URL from redirect URL
-    base_url = redirect_url.rsplit("/setup/callback", 1)[0]
+    base_url = redirect_url.rsplit("/setup/callback", 1)[ 1]
 
     manifest: dict[str, Any] = {
         "name": app_name,
operator: core/NumberReplacer, occurrence: 5
--- mutation diff ---
--- astampbot/manifest.py
+++ bstampbot/manifest.py
@@ -82,7 +82,7 @@
     _validate_url(redirect_url, "redirect_url")
 
     # Extract base URL from redirect URL
-    base_url = redirect_url.rsplit("/setup/callback", 1)[0]
+    base_url = redirect_url.rsplit("/setup/callback", 1)[ -1]
 
     manifest: dict[str, Any] = {
         "name": app_name,
operator: core/ReplaceBinaryOperator_Add_Sub, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' - APP_VERSION + '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_Sub, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' + APP_VERSION - '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_Mul, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' * APP_VERSION + '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_Mul, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' + APP_VERSION * '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_Div, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' / APP_VERSION + '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_Div, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' + APP_VERSION / '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_FloorDiv, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' // APP_VERSION + '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_FloorDiv, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' + APP_VERSION // '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_Mod, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' % APP_VERSION + '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_Mod, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' + APP_VERSION % '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_Pow, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' ** APP_VERSION + '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_Pow, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' + APP_VERSION ** '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_RShift, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' >> APP_VERSION + '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_RShift, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' + APP_VERSION >> '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_LShift, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' << APP_VERSION + '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_LShift, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' + APP_VERSION << '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_BitOr, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' | APP_VERSION + '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_BitOr, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' + APP_VERSION | '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_BitAnd, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' & APP_VERSION + '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_BitAnd, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' + APP_VERSION & '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_BitXor, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' ^ APP_VERSION + '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Add_BitXor, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -158,7 +158,7 @@
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
-        content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
+        content='{"app": "stampbot", "version": "' + APP_VERSION ^ '", "status": "running"}',
         media_type="application/json",
     )
 
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -111,7 +111,7 @@
     try:
         response = await call_next(request)
 
-        duration = time.time() - start_time
+        duration = time.time() + start_time
 
         # Track request metrics
         http_requests_total.labels(
operator: core/ReplaceBinaryOperator_Sub_Add, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -252,7 +252,7 @@
     try:
         start_time = time.time()
         result = await webhook_handler.handle_event(x_github_event, payload)
-        duration = time.time() - start_time
+        duration = time.time() + start_time
 
         webhook_processing_duration_seconds.labels(event_type=x_github_event or "unknown").observe(
             duration
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -111,7 +111,7 @@
     try:
         response = await call_next(request)
 
-        duration = time.time() - start_time
+        duration = time.time() * start_time
 
         # Track request metrics
         http_requests_total.labels(
operator: core/ReplaceBinaryOperator_Sub_Mul, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -252,7 +252,7 @@
     try:
         start_time = time.time()
         result = await webhook_handler.handle_event(x_github_event, payload)
-        duration = time.time() - start_time
+        duration = time.time() * start_time
 
         webhook_processing_duration_seconds.labels(event_type=x_github_event or "unknown").observe(
             duration
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -111,7 +111,7 @@
     try:
         response = await call_next(request)
 
-        duration = time.time() - start_time
+        duration = time.time() / start_time
 
         # Track request metrics
         http_requests_total.labels(
operator: core/ReplaceBinaryOperator_Sub_Div, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -252,7 +252,7 @@
     try:
         start_time = time.time()
         result = await webhook_handler.handle_event(x_github_event, payload)
-        duration = time.time() - start_time
+        duration = time.time() / start_time
 
         webhook_processing_duration_seconds.labels(event_type=x_github_event or "unknown").observe(
             duration
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -111,7 +111,7 @@
     try:
         response = await call_next(request)
 
-        duration = time.time() - start_time
+        duration = time.time() // start_time
 
         # Track request metrics
         http_requests_total.labels(
operator: core/ReplaceBinaryOperator_Sub_FloorDiv, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -252,7 +252,7 @@
     try:
         start_time = time.time()
         result = await webhook_handler.handle_event(x_github_event, payload)
-        duration = time.time() - start_time
+        duration = time.time() // start_time
 
         webhook_processing_duration_seconds.labels(event_type=x_github_event or "unknown").observe(
             duration
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -111,7 +111,7 @@
     try:
         response = await call_next(request)
 
-        duration = time.time() - start_time
+        duration = time.time() % start_time
 
         # Track request metrics
         http_requests_total.labels(
operator: core/ReplaceBinaryOperator_Sub_Mod, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -252,7 +252,7 @@
     try:
         start_time = time.time()
         result = await webhook_handler.handle_event(x_github_event, payload)
-        duration = time.time() - start_time
+        duration = time.time() % start_time
 
         webhook_processing_duration_seconds.labels(event_type=x_github_event or "unknown").observe(
             duration
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -111,7 +111,7 @@
     try:
         response = await call_next(request)
 
-        duration = time.time() - start_time
+        duration = time.time() ** start_time
 
         # Track request metrics
         http_requests_total.labels(
operator: core/ReplaceBinaryOperator_Sub_Pow, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -252,7 +252,7 @@
     try:
         start_time = time.time()
         result = await webhook_handler.handle_event(x_github_event, payload)
-        duration = time.time() - start_time
+        duration = time.time() ** start_time
 
         webhook_processing_duration_seconds.labels(event_type=x_github_event or "unknown").observe(
             duration
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -111,7 +111,7 @@
     try:
         response = await call_next(request)
 
-        duration = time.time() - start_time
+        duration = time.time() >> start_time
 
         # Track request metrics
         http_requests_total.labels(
operator: core/ReplaceBinaryOperator_Sub_RShift, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -252,7 +252,7 @@
     try:
         start_time = time.time()
         result = await webhook_handler.handle_event(x_github_event, payload)
-        duration = time.time() - start_time
+        duration = time.time() >> start_time
 
         webhook_processing_duration_seconds.labels(event_type=x_github_event or "unknown").observe(
             duration
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -111,7 +111,7 @@
     try:
         response = await call_next(request)
 
-        duration = time.time() - start_time
+        duration = time.time() << start_time
 
         # Track request metrics
         http_requests_total.labels(
operator: core/ReplaceBinaryOperator_Sub_LShift, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -252,7 +252,7 @@
     try:
         start_time = time.time()
         result = await webhook_handler.handle_event(x_github_event, payload)
-        duration = time.time() - start_time
+        duration = time.time() << start_time
 
         webhook_processing_duration_seconds.labels(event_type=x_github_event or "unknown").observe(
             duration
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -111,7 +111,7 @@
     try:
         response = await call_next(request)
 
-        duration = time.time() - start_time
+        duration = time.time() | start_time
 
         # Track request metrics
         http_requests_total.labels(
operator: core/ReplaceBinaryOperator_Sub_BitOr, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -252,7 +252,7 @@
     try:
         start_time = time.time()
         result = await webhook_handler.handle_event(x_github_event, payload)
-        duration = time.time() - start_time
+        duration = time.time() | start_time
 
         webhook_processing_duration_seconds.labels(event_type=x_github_event or "unknown").observe(
             duration
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -111,7 +111,7 @@
     try:
         response = await call_next(request)
 
-        duration = time.time() - start_time
+        duration = time.time() & start_time
 
         # Track request metrics
         http_requests_total.labels(
operator: core/ReplaceBinaryOperator_Sub_BitAnd, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -252,7 +252,7 @@
     try:
         start_time = time.time()
         result = await webhook_handler.handle_event(x_github_event, payload)
-        duration = time.time() - start_time
+        duration = time.time() & start_time
 
         webhook_processing_duration_seconds.labels(event_type=x_github_event or "unknown").observe(
             duration
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -111,7 +111,7 @@
     try:
         response = await call_next(request)
 
-        duration = time.time() - start_time
+        duration = time.time() ^ start_time
 
         # Track request metrics
         http_requests_total.labels(
operator: core/ReplaceBinaryOperator_Sub_BitXor, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -252,7 +252,7 @@
     try:
         start_time = time.time()
         result = await webhook_handler.handle_event(x_github_event, payload)
-        duration = time.time() - start_time
+        duration = time.time() ^ start_time
 
         webhook_processing_duration_seconds.labels(event_type=x_github_event or "unknown").observe(
             duration
operator: core/ReplaceBinaryOperator_Mul_Add, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -39,7 +39,7 @@
 APP_VERSION = "0.1.0"
 
 # Security limits
-MAX_WEBHOOK_BODY_SIZE = 1024 * 1024  # 1MB - GitHub webhooks are typically much smaller
+MAX_WEBHOOK_BODY_SIZE = 1024 + 1024  # 1MB - GitHub webhooks are typically much smaller
 
 
 @asynccontextmanager
operator: core/ReplaceBinaryOperator_Mul_Sub, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -39,7 +39,7 @@
 APP_VERSION = "0.1.0"
 
 # Security limits
-MAX_WEBHOOK_BODY_SIZE = 1024 * 1024  # 1MB - GitHub webhooks are typically much smaller
+MAX_WEBHOOK_BODY_SIZE = 1024 - 1024  # 1MB - GitHub webhooks are typically much smaller
 
 
 @asynccontextmanager
operator: core/ReplaceBinaryOperator_Mul_Div, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -39,7 +39,7 @@
 APP_VERSION = "0.1.0"
 
 # Security limits
-MAX_WEBHOOK_BODY_SIZE = 1024 * 1024  # 1MB - GitHub webhooks are typically much smaller
+MAX_WEBHOOK_BODY_SIZE = 1024 / 1024  # 1MB - GitHub webhooks are typically much smaller
 
 
 @asynccontextmanager
operator: core/ReplaceBinaryOperator_Mul_FloorDiv, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -39,7 +39,7 @@
 APP_VERSION = "0.1.0"
 
 # Security limits
-MAX_WEBHOOK_BODY_SIZE = 1024 * 1024  # 1MB - GitHub webhooks are typically much smaller
+MAX_WEBHOOK_BODY_SIZE = 1024 // 1024  # 1MB - GitHub webhooks are typically much smaller
 
 
 @asynccontextmanager
operator: core/ReplaceBinaryOperator_Mul_Mod, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -39,7 +39,7 @@
 APP_VERSION = "0.1.0"
 
 # Security limits
-MAX_WEBHOOK_BODY_SIZE = 1024 * 1024  # 1MB - GitHub webhooks are typically much smaller
+MAX_WEBHOOK_BODY_SIZE = 1024 % 1024  # 1MB - GitHub webhooks are typically much smaller
 
 
 @asynccontextmanager
operator: core/ReplaceBinaryOperator_Mul_Pow, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -39,7 +39,7 @@
 APP_VERSION = "0.1.0"
 
 # Security limits
-MAX_WEBHOOK_BODY_SIZE = 1024 * 1024  # 1MB - GitHub webhooks are typically much smaller
+MAX_WEBHOOK_BODY_SIZE = 1024 ** 1024  # 1MB - GitHub webhooks are typically much smaller
 
 
 @asynccontextmanager
operator: core/ReplaceBinaryOperator_Mul_RShift, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -39,7 +39,7 @@
 APP_VERSION = "0.1.0"
 
 # Security limits
-MAX_WEBHOOK_BODY_SIZE = 1024 * 1024  # 1MB - GitHub webhooks are typically much smaller
+MAX_WEBHOOK_BODY_SIZE = 1024 >> 1024  # 1MB - GitHub webhooks are typically much smaller
 
 
 @asynccontextmanager
operator: core/ReplaceBinaryOperator_Mul_LShift, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -39,7 +39,7 @@
 APP_VERSION = "0.1.0"
 
 # Security limits
-MAX_WEBHOOK_BODY_SIZE = 1024 * 1024  # 1MB - GitHub webhooks are typically much smaller
+MAX_WEBHOOK_BODY_SIZE = 1024 << 1024  # 1MB - GitHub webhooks are typically much smaller
 
 
 @asynccontextmanager
operator: core/ReplaceBinaryOperator_Mul_BitOr, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -39,7 +39,7 @@
 APP_VERSION = "0.1.0"
 
 # Security limits
-MAX_WEBHOOK_BODY_SIZE = 1024 * 1024  # 1MB - GitHub webhooks are typically much smaller
+MAX_WEBHOOK_BODY_SIZE = 1024 | 1024  # 1MB - GitHub webhooks are typically much smaller
 
 
 @asynccontextmanager
operator: core/ReplaceBinaryOperator_Mul_BitAnd, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -39,7 +39,7 @@
 APP_VERSION = "0.1.0"
 
 # Security limits
-MAX_WEBHOOK_BODY_SIZE = 1024 * 1024  # 1MB - GitHub webhooks are typically much smaller
+MAX_WEBHOOK_BODY_SIZE = 1024 & 1024  # 1MB - GitHub webhooks are typically much smaller
 
 
 @asynccontextmanager
operator: core/ReplaceBinaryOperator_Mul_BitXor, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -39,7 +39,7 @@
 APP_VERSION = "0.1.0"
 
 # Security limits
-MAX_WEBHOOK_BODY_SIZE = 1024 * 1024  # 1MB - GitHub webhooks are typically much smaller
+MAX_WEBHOOK_BODY_SIZE = 1024 ^ 1024  # 1MB - GitHub webhooks are typically much smaller
 
 
 @asynccontextmanager
operator: core/ReplaceComparisonOperator_Gt_Eq, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -219,7 +219,7 @@
 
     # Check content length before reading body to prevent memory exhaustion
     content_length = request.headers.get("content-length")
-    if content_length and int(content_length) > MAX_WEBHOOK_BODY_SIZE:
+    if content_length and int(content_length) == MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/ReplaceComparisonOperator_Gt_Eq, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -227,7 +227,7 @@
     body = await request.body()
 
     # Double-check actual body size (in case content-length was missing/incorrect)
-    if len(body) > MAX_WEBHOOK_BODY_SIZE:
+    if len(body) == MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/ReplaceComparisonOperator_Gt_NotEq, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -219,7 +219,7 @@
 
     # Check content length before reading body to prevent memory exhaustion
     content_length = request.headers.get("content-length")
-    if content_length and int(content_length) > MAX_WEBHOOK_BODY_SIZE:
+    if content_length and int(content_length) != MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/ReplaceComparisonOperator_Gt_NotEq, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -227,7 +227,7 @@
     body = await request.body()
 
     # Double-check actual body size (in case content-length was missing/incorrect)
-    if len(body) > MAX_WEBHOOK_BODY_SIZE:
+    if len(body) != MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/ReplaceComparisonOperator_Gt_Lt, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -219,7 +219,7 @@
 
     # Check content length before reading body to prevent memory exhaustion
     content_length = request.headers.get("content-length")
-    if content_length and int(content_length) > MAX_WEBHOOK_BODY_SIZE:
+    if content_length and int(content_length) < MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/ReplaceComparisonOperator_Gt_Lt, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -227,7 +227,7 @@
     body = await request.body()
 
     # Double-check actual body size (in case content-length was missing/incorrect)
-    if len(body) > MAX_WEBHOOK_BODY_SIZE:
+    if len(body) < MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/ReplaceComparisonOperator_Gt_LtE, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -219,7 +219,7 @@
 
     # Check content length before reading body to prevent memory exhaustion
     content_length = request.headers.get("content-length")
-    if content_length and int(content_length) > MAX_WEBHOOK_BODY_SIZE:
+    if content_length and int(content_length) <= MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/ReplaceComparisonOperator_Gt_LtE, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -227,7 +227,7 @@
     body = await request.body()
 
     # Double-check actual body size (in case content-length was missing/incorrect)
-    if len(body) > MAX_WEBHOOK_BODY_SIZE:
+    if len(body) <= MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/ReplaceComparisonOperator_Gt_GtE, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -219,7 +219,7 @@
 
     # Check content length before reading body to prevent memory exhaustion
     content_length = request.headers.get("content-length")
-    if content_length and int(content_length) > MAX_WEBHOOK_BODY_SIZE:
+    if content_length and int(content_length) >= MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/ReplaceComparisonOperator_Gt_GtE, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -227,7 +227,7 @@
     body = await request.body()
 
     # Double-check actual body size (in case content-length was missing/incorrect)
-    if len(body) > MAX_WEBHOOK_BODY_SIZE:
+    if len(body) >= MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/ReplaceComparisonOperator_Gt_Is, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -219,7 +219,7 @@
 
     # Check content length before reading body to prevent memory exhaustion
     content_length = request.headers.get("content-length")
-    if content_length and int(content_length) > MAX_WEBHOOK_BODY_SIZE:
+    if content_length and int(content_length) is MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/ReplaceComparisonOperator_Gt_Is, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -227,7 +227,7 @@
     body = await request.body()
 
     # Double-check actual body size (in case content-length was missing/incorrect)
-    if len(body) > MAX_WEBHOOK_BODY_SIZE:
+    if len(body) is MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/ReplaceComparisonOperator_Gt_IsNot, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -219,7 +219,7 @@
 
     # Check content length before reading body to prevent memory exhaustion
     content_length = request.headers.get("content-length")
-    if content_length and int(content_length) > MAX_WEBHOOK_BODY_SIZE:
+    if content_length and int(content_length) is not MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/ReplaceComparisonOperator_Gt_IsNot, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -227,7 +227,7 @@
     body = await request.body()
 
     # Double-check actual body size (in case content-length was missing/incorrect)
-    if len(body) > MAX_WEBHOOK_BODY_SIZE:
+    if len(body) is not MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -63,7 +63,7 @@
     )
 
     # Log setup mode status
-    if not is_configured():
+    if  is_configured():
         logger.warning("GitHub App credentials not configured. Running in setup mode.")
         logger.info("Visit /setup to create your GitHub App")
     else:
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -154,7 +154,7 @@
     Returns:
         Redirect to /setup if unconfigured, otherwise JSON status response.
     """
-    if not is_configured() and settings.setup_enabled:
+    if  is_configured() and settings.setup_enabled:
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 2
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -207,7 +207,7 @@
             413 if body too large, 503 if not configured, 500 on internal error.
     """
     # Check if app is configured
-    if not is_configured():
+    if  is_configured():
         raise HTTPException(
             status_code=503,
             detail="Stampbot not configured. Visit /setup to complete setup.",
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 3
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -213,7 +213,7 @@
             detail="Stampbot not configured. Visit /setup to complete setup.",
         )
 
-    if not x_github_event:
+    if  x_github_event:
         errors_total.labels(error_type="missing_event").inc()
         raise HTTPException(status_code=400, detail="Missing X-GitHub-Event header")
 
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 4
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -232,7 +232,7 @@
         raise HTTPException(status_code=413, detail="Request body too large")
 
     # Verify signature
-    if not webhook_handler.verify_signature(body, x_hub_signature_256):
+    if  webhook_handler.verify_signature(body, x_hub_signature_256):
         webhook_signature_validations_total.labels(result="invalid").inc()
         errors_total.labels(error_type="signature_invalid").inc()
         logger.warning("Invalid webhook signature")
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 5
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -283,7 +283,7 @@
     Raises:
         HTTPException: If setup is disabled (403).
     """
-    if not settings.setup_enabled:
+    if  settings.setup_enabled:
         raise HTTPException(status_code=403, detail="Setup not allowed in this environment")
 
     if is_configured():
operator: core/ReplaceUnaryOperator_Delete_Not, occurrence: 6
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -396,7 +396,7 @@
     Raises:
         HTTPException: If setup disabled (403) or code exchange fails (500).
     """
-    if not settings.setup_enabled:
+    if  settings.setup_enabled:
         raise HTTPException(status_code=403, detail="Setup not allowed")
 
     try:
operator: core/AddNot, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -63,7 +63,7 @@
     )
 
     # Log setup mode status
-    if not is_configured():
+    if not not is_configured():
         logger.warning("GitHub App credentials not configured. Running in setup mode.")
         logger.info("Visit /setup to create your GitHub App")
     else:
operator: core/AddNot, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -127,7 +127,7 @@
 
         # Track request size (from Content-Length header if available)
         content_length = request.headers.get("content-length")
-        if content_length:
+        if not content_length:
             http_request_size_bytes.labels(
                 method=method,
                 endpoint=endpoint,
operator: core/AddNot, occurrence: 2
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -135,7 +135,7 @@
 
         # Track response size
         response_size = response.headers.get("content-length")
-        if response_size:
+        if not response_size:
             http_response_size_bytes.labels(
                 method=method,
                 endpoint=endpoint,
operator: core/AddNot, occurrence: 3
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -154,7 +154,7 @@
     Returns:
         Redirect to /setup if unconfigured, otherwise JSON status response.
     """
-    if not is_configured() and settings.setup_enabled:
+    if not not is_configured() and settings.setup_enabled:
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
operator: core/AddNot, occurrence: 4
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -207,7 +207,7 @@
             413 if body too large, 503 if not configured, 500 on internal error.
     """
     # Check if app is configured
-    if not is_configured():
+    if not not is_configured():
         raise HTTPException(
             status_code=503,
             detail="Stampbot not configured. Visit /setup to complete setup.",
operator: core/AddNot, occurrence: 5
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -213,7 +213,7 @@
             detail="Stampbot not configured. Visit /setup to complete setup.",
         )
 
-    if not x_github_event:
+    if not not x_github_event:
         errors_total.labels(error_type="missing_event").inc()
         raise HTTPException(status_code=400, detail="Missing X-GitHub-Event header")
 
operator: core/AddNot, occurrence: 6
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -219,7 +219,7 @@
 
     # Check content length before reading body to prevent memory exhaustion
     content_length = request.headers.get("content-length")
-    if content_length and int(content_length) > MAX_WEBHOOK_BODY_SIZE:
+    if not content_length and int(content_length) > MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/AddNot, occurrence: 7
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -227,7 +227,7 @@
     body = await request.body()
 
     # Double-check actual body size (in case content-length was missing/incorrect)
-    if len(body) > MAX_WEBHOOK_BODY_SIZE:
+    if not len(body) > MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/AddNot, occurrence: 8
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -232,7 +232,7 @@
         raise HTTPException(status_code=413, detail="Request body too large")
 
     # Verify signature
-    if not webhook_handler.verify_signature(body, x_hub_signature_256):
+    if not not webhook_handler.verify_signature(body, x_hub_signature_256):
         webhook_signature_validations_total.labels(result="invalid").inc()
         errors_total.labels(error_type="signature_invalid").inc()
         logger.warning("Invalid webhook signature")
operator: core/AddNot, occurrence: 9
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -283,7 +283,7 @@
     Raises:
         HTTPException: If setup is disabled (403).
     """
-    if not settings.setup_enabled:
+    if not not settings.setup_enabled:
         raise HTTPException(status_code=403, detail="Setup not allowed in this environment")
 
     if is_configured():
operator: core/AddNot, occurrence: 10
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -286,7 +286,7 @@
     if not settings.setup_enabled:
         raise HTTPException(status_code=403, detail="Setup not allowed in this environment")
 
-    if is_configured():
+    if not is_configured():
         return HTMLResponse(
             content="""
             <!DOCTYPE html>
operator: core/AddNot, occurrence: 11
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -317,7 +317,7 @@
     # 2. Proxy headers (X-Forwarded-Proto + X-Forwarded-Host)
     # 3. Request base URL (fallback)
     configured_base_url = settings.get("base_url", "")
-    if configured_base_url:
+    if not configured_base_url:
         base_url = configured_base_url.rstrip("/")
     else:
         # Check for proxy headers from ingress/load balancer
operator: core/AddNot, occurrence: 12
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -323,7 +323,7 @@
         # Check for proxy headers from ingress/load balancer
         forwarded_proto = request.headers.get("X-Forwarded-Proto", "")
         forwarded_host = request.headers.get("X-Forwarded-Host", "")
-        if forwarded_proto and forwarded_host:
+        if not forwarded_proto and forwarded_host:
             base_url = f"{forwarded_proto}://{forwarded_host}"
         else:
             base_url = str(request.base_url).rstrip("/")
operator: core/AddNot, occurrence: 13
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -396,7 +396,7 @@
     Raises:
         HTTPException: If setup disabled (403) or code exchange fails (500).
     """
-    if not settings.setup_enabled:
+    if not not settings.setup_enabled:
         raise HTTPException(status_code=403, detail="Setup not allowed")
 
     try:
operator: core/AddNot, occurrence: 14
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -505,6 +505,6 @@
     return {
         "configured": is_configured(),
         "setup_enabled": settings.setup_enabled,
-        "app_id": settings.app_id if is_configured() else None,
+        "app_id": settings.app_id if not is_configured() else None,
     }
 
operator: core/ReplaceAndWithOr, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -154,7 +154,7 @@
     Returns:
         Redirect to /setup if unconfigured, otherwise JSON status response.
     """
-    if not is_configured() and settings.setup_enabled:
+    if not is_configured() or settings.setup_enabled:
         return RedirectResponse(url="/setup", status_code=307)
 
     return Response(
operator: core/ReplaceAndWithOr, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -219,7 +219,7 @@
 
     # Check content length before reading body to prevent memory exhaustion
     content_length = request.headers.get("content-length")
-    if content_length and int(content_length) > MAX_WEBHOOK_BODY_SIZE:
+    if content_length or int(content_length) > MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
         raise HTTPException(status_code=413, detail="Request body too large")
 
operator: core/ReplaceAndWithOr, occurrence: 2
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -323,7 +323,7 @@
         # Check for proxy headers from ingress/load balancer
         forwarded_proto = request.headers.get("X-Forwarded-Proto", "")
         forwarded_host = request.headers.get("X-Forwarded-Host", "")
-        if forwarded_proto and forwarded_host:
+        if forwarded_proto or forwarded_host:
             base_url = f"{forwarded_proto}://{forwarded_host}"
         else:
             base_url = str(request.base_url).rstrip("/")
operator: core/ReplaceOrWithAnd, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -254,7 +254,7 @@
         result = await webhook_handler.handle_event(x_github_event, payload)
         duration = time.time() - start_time
 
-        webhook_processing_duration_seconds.labels(event_type=x_github_event or "unknown").observe(
+        webhook_processing_duration_seconds.labels(event_type=x_github_event and "unknown").observe(
             duration
         )
 
operator: core/ExceptionReplacer, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -243,7 +243,7 @@
     # Parse JSON payload
     try:
         payload = await request.json()
-    except Exception as e:
+    except CosmicRayTestingException as e:
         errors_total.labels(error_type="payload_invalid").inc()
         logger.error("Failed to parse webhook payload: %s", e)
         raise HTTPException(status_code=400, detail="Invalid JSON payload") from None
operator: core/ExceptionReplacer, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -259,7 +259,7 @@
         )
 
         return result
-    except Exception as e:
+    except CosmicRayTestingException as e:
         errors_total.labels(error_type="webhook_handler_error").inc()
         logger.error("Error handling webhook event: %s", e, extra={"error": str(e)})
         raise HTTPException(status_code=500, detail="Internal server error") from None
operator: core/ExceptionReplacer, occurrence: 2
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -401,7 +401,7 @@
 
     try:
         credentials = await exchange_code_for_credentials(code)
-    except Exception as e:
+    except CosmicRayTestingException as e:
         logger.error("Failed to exchange code for credentials: %s", e)
         raise HTTPException(status_code=500, detail="Failed to complete setup") from None
 
operator: core/NumberReplacer, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -39,7 +39,7 @@
 APP_VERSION = "0.1.0"
 
 # Security limits
-MAX_WEBHOOK_BODY_SIZE = 1024 * 1024  # 1MB - GitHub webhooks are typically much smaller
+MAX_WEBHOOK_BODY_SIZE = 1025 * 1024  # 1MB - GitHub webhooks are typically much smaller
 
 
 @asynccontextmanager
operator: core/NumberReplacer, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -39,7 +39,7 @@
 APP_VERSION = "0.1.0"
 
 # Security limits
-MAX_WEBHOOK_BODY_SIZE = 1024 * 1024  # 1MB - GitHub webhooks are typically much smaller
+MAX_WEBHOOK_BODY_SIZE = 1023 * 1024  # 1MB - GitHub webhooks are typically much smaller
 
 
 @asynccontextmanager
operator: core/NumberReplacer, occurrence: 2
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -39,7 +39,7 @@
 APP_VERSION = "0.1.0"
 
 # Security limits
-MAX_WEBHOOK_BODY_SIZE = 1024 * 1024  # 1MB - GitHub webhooks are typically much smaller
+MAX_WEBHOOK_BODY_SIZE = 1024 * 1025  # 1MB - GitHub webhooks are typically much smaller
 
 
 @asynccontextmanager
operator: core/NumberReplacer, occurrence: 3
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -39,7 +39,7 @@
 APP_VERSION = "0.1.0"
 
 # Security limits
-MAX_WEBHOOK_BODY_SIZE = 1024 * 1024  # 1MB - GitHub webhooks are typically much smaller
+MAX_WEBHOOK_BODY_SIZE = 1024 * 1023  # 1MB - GitHub webhooks are typically much smaller
 
 
 @asynccontextmanager
operator: core/NumberReplacer, occurrence: 4
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -155,7 +155,7 @@
         Redirect to /setup if unconfigured, otherwise JSON status response.
     """
     if not is_configured() and settings.setup_enabled:
-        return RedirectResponse(url="/setup", status_code=307)
+        return RedirectResponse(url="/setup", status_code= 308)
 
     return Response(
         content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
operator: core/NumberReplacer, occurrence: 5
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -155,7 +155,7 @@
         Redirect to /setup if unconfigured, otherwise JSON status response.
     """
     if not is_configured() and settings.setup_enabled:
-        return RedirectResponse(url="/setup", status_code=307)
+        return RedirectResponse(url="/setup", status_code= 306)
 
     return Response(
         content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
operator: core/NumberReplacer, occurrence: 6
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -209,7 +209,7 @@
     # Check if app is configured
     if not is_configured():
         raise HTTPException(
-            status_code=503,
+            status_code= 504,
             detail="Stampbot not configured. Visit /setup to complete setup.",
         )
 
operator: core/NumberReplacer, occurrence: 7
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -209,7 +209,7 @@
     # Check if app is configured
     if not is_configured():
         raise HTTPException(
-            status_code=503,
+            status_code= 502,
             detail="Stampbot not configured. Visit /setup to complete setup.",
         )
 
operator: core/NumberReplacer, occurrence: 8
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -215,7 +215,7 @@
 
     if not x_github_event:
         errors_total.labels(error_type="missing_event").inc()
-        raise HTTPException(status_code=400, detail="Missing X-GitHub-Event header")
+        raise HTTPException(status_code= 401, detail="Missing X-GitHub-Event header")
 
     # Check content length before reading body to prevent memory exhaustion
     content_length = request.headers.get("content-length")
operator: core/NumberReplacer, occurrence: 9
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -215,7 +215,7 @@
 
     if not x_github_event:
         errors_total.labels(error_type="missing_event").inc()
-        raise HTTPException(status_code=400, detail="Missing X-GitHub-Event header")
+        raise HTTPException(status_code= 399, detail="Missing X-GitHub-Event header")
 
     # Check content length before reading body to prevent memory exhaustion
     content_length = request.headers.get("content-length")
operator: core/NumberReplacer, occurrence: 10
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -221,7 +221,7 @@
     content_length = request.headers.get("content-length")
     if content_length and int(content_length) > MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
-        raise HTTPException(status_code=413, detail="Request body too large")
+        raise HTTPException(status_code= 414, detail="Request body too large")
 
     # Get raw body for signature verification
     body = await request.body()
operator: core/NumberReplacer, occurrence: 11
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -221,7 +221,7 @@
     content_length = request.headers.get("content-length")
     if content_length and int(content_length) > MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
-        raise HTTPException(status_code=413, detail="Request body too large")
+        raise HTTPException(status_code= 412, detail="Request body too large")
 
     # Get raw body for signature verification
     body = await request.body()
operator: core/NumberReplacer, occurrence: 12
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -229,7 +229,7 @@
     # Double-check actual body size (in case content-length was missing/incorrect)
     if len(body) > MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
-        raise HTTPException(status_code=413, detail="Request body too large")
+        raise HTTPException(status_code= 414, detail="Request body too large")
 
     # Verify signature
     if not webhook_handler.verify_signature(body, x_hub_signature_256):
operator: core/NumberReplacer, occurrence: 13
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -229,7 +229,7 @@
     # Double-check actual body size (in case content-length was missing/incorrect)
     if len(body) > MAX_WEBHOOK_BODY_SIZE:
         errors_total.labels(error_type="payload_too_large").inc()
-        raise HTTPException(status_code=413, detail="Request body too large")
+        raise HTTPException(status_code= 412, detail="Request body too large")
 
     # Verify signature
     if not webhook_handler.verify_signature(body, x_hub_signature_256):
operator: core/NumberReplacer, occurrence: 14
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -236,7 +236,7 @@
         webhook_signature_validations_total.labels(result="invalid").inc()
         errors_total.labels(error_type="signature_invalid").inc()
         logger.warning("Invalid webhook signature")
-        raise HTTPException(status_code=401, detail="Invalid signature")
+        raise HTTPException(status_code= 402, detail="Invalid signature")
 
     webhook_signature_validations_total.labels(result="valid").inc()
 
operator: core/NumberReplacer, occurrence: 15
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -236,7 +236,7 @@
         webhook_signature_validations_total.labels(result="invalid").inc()
         errors_total.labels(error_type="signature_invalid").inc()
         logger.warning("Invalid webhook signature")
-        raise HTTPException(status_code=401, detail="Invalid signature")
+        raise HTTPException(status_code= 400, detail="Invalid signature")
 
     webhook_signature_validations_total.labels(result="valid").inc()
 
operator: core/NumberReplacer, occurrence: 16
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -246,7 +246,7 @@
     except Exception as e:
         errors_total.labels(error_type="payload_invalid").inc()
         logger.error("Failed to parse webhook payload: %s", e)
-        raise HTTPException(status_code=400, detail="Invalid JSON payload") from None
+        raise HTTPException(status_code= 401, detail="Invalid JSON payload") from None
 
     # Handle event with timing
     try:
operator: core/NumberReplacer, occurrence: 17
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -246,7 +246,7 @@
     except Exception as e:
         errors_total.labels(error_type="payload_invalid").inc()
         logger.error("Failed to parse webhook payload: %s", e)
-        raise HTTPException(status_code=400, detail="Invalid JSON payload") from None
+        raise HTTPException(status_code= 399, detail="Invalid JSON payload") from None
 
     # Handle event with timing
     try:
operator: core/NumberReplacer, occurrence: 18
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -262,7 +262,7 @@
     except Exception as e:
         errors_total.labels(error_type="webhook_handler_error").inc()
         logger.error("Error handling webhook event: %s", e, extra={"error": str(e)})
-        raise HTTPException(status_code=500, detail="Internal server error") from None
+        raise HTTPException(status_code= 501, detail="Internal server error") from None
 
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 19
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -262,7 +262,7 @@
     except Exception as e:
         errors_total.labels(error_type="webhook_handler_error").inc()
         logger.error("Error handling webhook event: %s", e, extra={"error": str(e)})
-        raise HTTPException(status_code=500, detail="Internal server error") from None
+        raise HTTPException(status_code= 499, detail="Internal server error") from None
 
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 20
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -284,7 +284,7 @@
         HTTPException: If setup is disabled (403).
     """
     if not settings.setup_enabled:
-        raise HTTPException(status_code=403, detail="Setup not allowed in this environment")
+        raise HTTPException(status_code= 404, detail="Setup not allowed in this environment")
 
     if is_configured():
         return HTMLResponse(
operator: core/NumberReplacer, occurrence: 21
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -284,7 +284,7 @@
         HTTPException: If setup is disabled (403).
     """
     if not settings.setup_enabled:
-        raise HTTPException(status_code=403, detail="Setup not allowed in this environment")
+        raise HTTPException(status_code= 402, detail="Setup not allowed in this environment")
 
     if is_configured():
         return HTMLResponse(
operator: core/NumberReplacer, occurrence: 22
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -309,7 +309,7 @@
             </body>
             </html>
             """,
-            status_code=200,
+            status_code= 201,
         )
 
     # Determine base URL with priority:
operator: core/NumberReplacer, occurrence: 23
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -309,7 +309,7 @@
             </body>
             </html>
             """,
-            status_code=200,
+            status_code= 199,
         )
 
     # Determine base URL with priority:
operator: core/NumberReplacer, occurrence: 24
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -397,7 +397,7 @@
         HTTPException: If setup disabled (403) or code exchange fails (500).
     """
     if not settings.setup_enabled:
-        raise HTTPException(status_code=403, detail="Setup not allowed")
+        raise HTTPException(status_code= 404, detail="Setup not allowed")
 
     try:
         credentials = await exchange_code_for_credentials(code)
operator: core/NumberReplacer, occurrence: 25
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -397,7 +397,7 @@
         HTTPException: If setup disabled (403) or code exchange fails (500).
     """
     if not settings.setup_enabled:
-        raise HTTPException(status_code=403, detail="Setup not allowed")
+        raise HTTPException(status_code= 402, detail="Setup not allowed")
 
     try:
         credentials = await exchange_code_for_credentials(code)
operator: core/NumberReplacer, occurrence: 26
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -403,7 +403,7 @@
         credentials = await exchange_code_for_credentials(code)
     except Exception as e:
         logger.error("Failed to exchange code for credentials: %s", e)
-        raise HTTPException(status_code=500, detail="Failed to complete setup") from None
+        raise HTTPException(status_code= 501, detail="Failed to complete setup") from None
 
     # Security note: Credentials are displayed in the HTML response for user convenience.
     # This mirrors GitHub's own manifest flow behavior. The tradeoffs are acceptable because:
operator: core/NumberReplacer, occurrence: 27
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -403,7 +403,7 @@
         credentials = await exchange_code_for_credentials(code)
     except Exception as e:
         logger.error("Failed to exchange code for credentials: %s", e)
-        raise HTTPException(status_code=500, detail="Failed to complete setup") from None
+        raise HTTPException(status_code= 499, detail="Failed to complete setup") from None
 
     # Security note: Credentials are displayed in the HTML response for user convenience.
     # This mirrors GitHub's own manifest flow behavior. The tradeoffs are acceptable because:
operator: core/RemoveDecorator, occurrence: 0
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -40,9 +40,6 @@
 
 # Security limits
 MAX_WEBHOOK_BODY_SIZE = 1024 * 1024  # 1MB - GitHub webhooks are typically much smaller
-
-
-@asynccontextmanager
 async def lifespan(app: FastAPI) -> AsyncIterator[None]:
     """Application lifespan manager for startup and shutdown events.
 
operator: core/RemoveDecorator, occurrence: 1
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -87,9 +87,6 @@
 
 # Set app info metric
 set_app_info(APP_VERSION)
-
-
-@app.middleware("http")
 async def metrics_middleware(request: Request, call_next: Any) -> Response:
     """Middleware to track HTTP metrics.
 
operator: core/RemoveDecorator, occurrence: 2
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -145,9 +145,6 @@
 
     finally:
         http_requests_in_progress.labels(method=method, endpoint=endpoint).dec()
-
-
-@app.get("/")
 async def root() -> Response:
     """Root endpoint - redirects to setup if not configured.
 
operator: core/RemoveDecorator, occurrence: 3
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -161,9 +161,6 @@
         content='{"app": "stampbot", "version": "' + APP_VERSION + '", "status": "running"}',
         media_type="application/json",
     )
-
-
-@app.get("/health")
 async def health() -> dict[str, str]:
     """Health check endpoint.
 
operator: core/RemoveDecorator, occurrence: 4
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -171,9 +171,6 @@
         Dictionary with health status.
     """
     return {"status": "healthy"}
-
-
-@app.get("/metrics")
 async def metrics() -> Response:
     """Prometheus metrics endpoint.
 
operator: core/RemoveDecorator, occurrence: 5
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -184,9 +184,6 @@
         content=get_metrics().decode("utf-8"),
         media_type="text/plain",
     )
-
-
-@app.post("/webhook")
 async def webhook(
     request: Request,
     x_github_event: str = Header(None, alias="X-GitHub-Event"),
operator: core/RemoveDecorator, occurrence: 6
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -263,14 +263,6 @@
         errors_total.labels(error_type="webhook_handler_error").inc()
         logger.error("Error handling webhook event: %s", e, extra={"error": str(e)})
         raise HTTPException(status_code=500, detail="Internal server error") from None
-
-
-# =============================================================================
-# Setup Endpoints - GitHub App Manifest Flow
-# =============================================================================
-
-
-@app.get("/setup")
 async def setup_page(request: Request) -> Response:
     """Setup page with manifest creation button.
 
operator: core/RemoveDecorator, occurrence: 7
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -380,9 +380,6 @@
     """
 
     return HTMLResponse(content=html_content)
-
-
-@app.get("/setup/callback")
 async def setup_callback(request: Request, code: str) -> Response:
     """Handle callback from GitHub after app creation.
 
operator: core/RemoveDecorator, occurrence: 8
--- mutation diff ---
--- astampbot/main.py
+++ bstampbot/main.py
@@ -493,9 +493,6 @@
     """
 
     return HTMLResponse(content=html_content)
-
-
-@app.get("/setup/status")
 async def setup_status() -> dict[str, Any]:
     """Check setup status.
 
operator: core/NumberReplacer, occurrence: 0
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=( 1.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 1
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=( -0.995, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 2
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 1.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 3
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, -0.99, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 4
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 1.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 5
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, -0.975, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 6
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 0.025, 1.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 7
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 0.025, -0.95, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 8
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 0.025, 0.05, 1.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 9
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 0.025, 0.05, -0.9, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 10
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 1.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 11
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, -0.75, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 12
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 1.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 13
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, -0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 14
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 2.0, 2.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 15
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 0.0, 2.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 16
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 3.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 17
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 1.5, 5.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 18
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 6.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 19
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 4.0, 10.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 20
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 11.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 21
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -31,7 +31,7 @@
     "stampbot_http_request_duration_seconds",
     "HTTP request duration in seconds",
     ["method", "endpoint"],
-    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 9.0),
 )
 
 http_request_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 22
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -38,7 +38,7 @@
     "stampbot_http_request_size_bytes",
     "HTTP request body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=( 101, 500, 1000, 5000, 10000, 50000, 100000, 500000),
 )
 
 http_response_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 23
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -38,7 +38,7 @@
     "stampbot_http_request_size_bytes",
     "HTTP request body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=( 99, 500, 1000, 5000, 10000, 50000, 100000, 500000),
 )
 
 http_response_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 24
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -38,7 +38,7 @@
     "stampbot_http_request_size_bytes",
     "HTTP request body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 501, 1000, 5000, 10000, 50000, 100000, 500000),
 )
 
 http_response_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 25
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -38,7 +38,7 @@
     "stampbot_http_request_size_bytes",
     "HTTP request body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 499, 1000, 5000, 10000, 50000, 100000, 500000),
 )
 
 http_response_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 26
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -38,7 +38,7 @@
     "stampbot_http_request_size_bytes",
     "HTTP request body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1001, 5000, 10000, 50000, 100000, 500000),
 )
 
 http_response_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 27
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -38,7 +38,7 @@
     "stampbot_http_request_size_bytes",
     "HTTP request body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 999, 5000, 10000, 50000, 100000, 500000),
 )
 
 http_response_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 28
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -38,7 +38,7 @@
     "stampbot_http_request_size_bytes",
     "HTTP request body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5001, 10000, 50000, 100000, 500000),
 )
 
 http_response_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 29
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -38,7 +38,7 @@
     "stampbot_http_request_size_bytes",
     "HTTP request body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 4999, 10000, 50000, 100000, 500000),
 )
 
 http_response_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 30
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -38,7 +38,7 @@
     "stampbot_http_request_size_bytes",
     "HTTP request body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5000, 10001, 50000, 100000, 500000),
 )
 
 http_response_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 31
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -38,7 +38,7 @@
     "stampbot_http_request_size_bytes",
     "HTTP request body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5000, 9999, 50000, 100000, 500000),
 )
 
 http_response_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 32
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -38,7 +38,7 @@
     "stampbot_http_request_size_bytes",
     "HTTP request body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5000, 10000, 50001, 100000, 500000),
 )
 
 http_response_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 33
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -38,7 +38,7 @@
     "stampbot_http_request_size_bytes",
     "HTTP request body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5000, 10000, 49999, 100000, 500000),
 )
 
 http_response_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 34
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -38,7 +38,7 @@
     "stampbot_http_request_size_bytes",
     "HTTP request body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5000, 10000, 50000, 100001, 500000),
 )
 
 http_response_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 35
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -38,7 +38,7 @@
     "stampbot_http_request_size_bytes",
     "HTTP request body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5000, 10000, 50000, 99999, 500000),
 )
 
 http_response_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 36
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -38,7 +38,7 @@
     "stampbot_http_request_size_bytes",
     "HTTP request body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500001),
 )
 
 http_response_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 37
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -38,7 +38,7 @@
     "stampbot_http_request_size_bytes",
     "HTTP request body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 499999),
 )
 
 http_response_size_bytes = Histogram(
operator: core/NumberReplacer, occurrence: 38
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -45,7 +45,7 @@
     "stampbot_http_response_size_bytes",
     "HTTP response body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=( 101, 500, 1000, 5000, 10000, 50000, 100000, 500000),
 )
 
 http_requests_in_progress = Gauge(
operator: core/NumberReplacer, occurrence: 39
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -45,7 +45,7 @@
     "stampbot_http_response_size_bytes",
     "HTTP response body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=( 99, 500, 1000, 5000, 10000, 50000, 100000, 500000),
 )
 
 http_requests_in_progress = Gauge(
operator: core/NumberReplacer, occurrence: 40
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -45,7 +45,7 @@
     "stampbot_http_response_size_bytes",
     "HTTP response body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 501, 1000, 5000, 10000, 50000, 100000, 500000),
 )
 
 http_requests_in_progress = Gauge(
operator: core/NumberReplacer, occurrence: 41
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -45,7 +45,7 @@
     "stampbot_http_response_size_bytes",
     "HTTP response body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 499, 1000, 5000, 10000, 50000, 100000, 500000),
 )
 
 http_requests_in_progress = Gauge(
operator: core/NumberReplacer, occurrence: 42
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -45,7 +45,7 @@
     "stampbot_http_response_size_bytes",
     "HTTP response body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1001, 5000, 10000, 50000, 100000, 500000),
 )
 
 http_requests_in_progress = Gauge(
operator: core/NumberReplacer, occurrence: 43
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -45,7 +45,7 @@
     "stampbot_http_response_size_bytes",
     "HTTP response body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 999, 5000, 10000, 50000, 100000, 500000),
 )
 
 http_requests_in_progress = Gauge(
operator: core/NumberReplacer, occurrence: 44
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -45,7 +45,7 @@
     "stampbot_http_response_size_bytes",
     "HTTP response body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5001, 10000, 50000, 100000, 500000),
 )
 
 http_requests_in_progress = Gauge(
operator: core/NumberReplacer, occurrence: 45
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -45,7 +45,7 @@
     "stampbot_http_response_size_bytes",
     "HTTP response body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 4999, 10000, 50000, 100000, 500000),
 )
 
 http_requests_in_progress = Gauge(
operator: core/NumberReplacer, occurrence: 46
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -45,7 +45,7 @@
     "stampbot_http_response_size_bytes",
     "HTTP response body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5000, 10001, 50000, 100000, 500000),
 )
 
 http_requests_in_progress = Gauge(
operator: core/NumberReplacer, occurrence: 47
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -45,7 +45,7 @@
     "stampbot_http_response_size_bytes",
     "HTTP response body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5000, 9999, 50000, 100000, 500000),
 )
 
 http_requests_in_progress = Gauge(
operator: core/NumberReplacer, occurrence: 48
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -45,7 +45,7 @@
     "stampbot_http_response_size_bytes",
     "HTTP response body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5000, 10000, 50001, 100000, 500000),
 )
 
 http_requests_in_progress = Gauge(
operator: core/NumberReplacer, occurrence: 49
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -45,7 +45,7 @@
     "stampbot_http_response_size_bytes",
     "HTTP response body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5000, 10000, 49999, 100000, 500000),
 )
 
 http_requests_in_progress = Gauge(
operator: core/NumberReplacer, occurrence: 50
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -45,7 +45,7 @@
     "stampbot_http_response_size_bytes",
     "HTTP response body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5000, 10000, 50000, 100001, 500000),
 )
 
 http_requests_in_progress = Gauge(
operator: core/NumberReplacer, occurrence: 51
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -45,7 +45,7 @@
     "stampbot_http_response_size_bytes",
     "HTTP response body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5000, 10000, 50000, 99999, 500000),
 )
 
 http_requests_in_progress = Gauge(
operator: core/NumberReplacer, occurrence: 52
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -45,7 +45,7 @@
     "stampbot_http_response_size_bytes",
     "HTTP response body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500001),
 )
 
 http_requests_in_progress = Gauge(
operator: core/NumberReplacer, occurrence: 53
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -45,7 +45,7 @@
     "stampbot_http_response_size_bytes",
     "HTTP response body size in bytes",
     ["method", "endpoint"],
-    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 500000),
+    buckets=(100, 500, 1000, 5000, 10000, 50000, 100000, 499999),
 )
 
 http_requests_in_progress = Gauge(
operator: core/NumberReplacer, occurrence: 54
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=( 1.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 55
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=( -0.99, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 56
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 1.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 57
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, -0.975, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 58
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 0.025, 1.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 59
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 0.025, -0.95, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 60
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 0.025, 0.05, 1.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 61
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 0.025, 0.05, -0.9, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 62
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 0.025, 0.05, 0.1, 1.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 63
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 0.025, 0.05, 0.1, -0.75, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 64
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 1.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 65
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, -0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 66
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 2.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 67
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 0.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 68
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 3.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 69
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 1.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 70
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 6.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 71
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 4.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 72
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 11.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 73
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -74,7 +74,7 @@
     "stampbot_webhook_processing_duration_seconds",
     "Webhook event processing duration in seconds",
     ["event_type"],
-    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 9.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 74
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -90,7 +90,7 @@
 pr_approval_duration_seconds = Histogram(
     "stampbot_pr_approval_duration_seconds",
     "PR approval operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=( 1.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 pr_dismissals_total = Counter(
operator: core/NumberReplacer, occurrence: 75
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -90,7 +90,7 @@
 pr_approval_duration_seconds = Histogram(
     "stampbot_pr_approval_duration_seconds",
     "PR approval operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=( -0.9, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 pr_dismissals_total = Counter(
operator: core/NumberReplacer, occurrence: 76
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -90,7 +90,7 @@
 pr_approval_duration_seconds = Histogram(
     "stampbot_pr_approval_duration_seconds",
     "PR approval operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 1.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 pr_dismissals_total = Counter(
operator: core/NumberReplacer, occurrence: 77
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -90,7 +90,7 @@
 pr_approval_duration_seconds = Histogram(
     "stampbot_pr_approval_duration_seconds",
     "PR approval operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, -0.75, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 pr_dismissals_total = Counter(
operator: core/NumberReplacer, occurrence: 78
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -90,7 +90,7 @@
 pr_approval_duration_seconds = Histogram(
     "stampbot_pr_approval_duration_seconds",
     "PR approval operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 1.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 pr_dismissals_total = Counter(
operator: core/NumberReplacer, occurrence: 79
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -90,7 +90,7 @@
 pr_approval_duration_seconds = Histogram(
     "stampbot_pr_approval_duration_seconds",
     "PR approval operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, -0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 pr_dismissals_total = Counter(
operator: core/NumberReplacer, occurrence: 80
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -90,7 +90,7 @@
 pr_approval_duration_seconds = Histogram(
     "stampbot_pr_approval_duration_seconds",
     "PR approval operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 0.5, 2.0, 2.5, 5.0, 10.0),
 )
 
 pr_dismissals_total = Counter(
operator: core/NumberReplacer, occurrence: 81
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -90,7 +90,7 @@
 pr_approval_duration_seconds = Histogram(
     "stampbot_pr_approval_duration_seconds",
     "PR approval operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 0.5, 0.0, 2.5, 5.0, 10.0),
 )
 
 pr_dismissals_total = Counter(
operator: core/NumberReplacer, occurrence: 82
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -90,7 +90,7 @@
 pr_approval_duration_seconds = Histogram(
     "stampbot_pr_approval_duration_seconds",
     "PR approval operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 0.5, 1.0, 3.5, 5.0, 10.0),
 )
 
 pr_dismissals_total = Counter(
operator: core/NumberReplacer, occurrence: 83
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -90,7 +90,7 @@
 pr_approval_duration_seconds = Histogram(
     "stampbot_pr_approval_duration_seconds",
     "PR approval operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 0.5, 1.0, 1.5, 5.0, 10.0),
 )
 
 pr_dismissals_total = Counter(
operator: core/NumberReplacer, occurrence: 84
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -90,7 +90,7 @@
 pr_approval_duration_seconds = Histogram(
     "stampbot_pr_approval_duration_seconds",
     "PR approval operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 6.0, 10.0),
 )
 
 pr_dismissals_total = Counter(
operator: core/NumberReplacer, occurrence: 85
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -90,7 +90,7 @@
 pr_approval_duration_seconds = Histogram(
     "stampbot_pr_approval_duration_seconds",
     "PR approval operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 4.0, 10.0),
 )
 
 pr_dismissals_total = Counter(
operator: core/NumberReplacer, occurrence: 86
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -90,7 +90,7 @@
 pr_approval_duration_seconds = Histogram(
     "stampbot_pr_approval_duration_seconds",
     "PR approval operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 11.0),
 )
 
 pr_dismissals_total = Counter(
operator: core/NumberReplacer, occurrence: 87
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -90,7 +90,7 @@
 pr_approval_duration_seconds = Histogram(
     "stampbot_pr_approval_duration_seconds",
     "PR approval operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 9.0),
 )
 
 pr_dismissals_total = Counter(
operator: core/NumberReplacer, occurrence: 88
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -102,7 +102,7 @@
 pr_dismissal_duration_seconds = Histogram(
     "stampbot_pr_dismissal_duration_seconds",
     "PR dismissal operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=( 1.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 89
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -102,7 +102,7 @@
 pr_dismissal_duration_seconds = Histogram(
     "stampbot_pr_dismissal_duration_seconds",
     "PR dismissal operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=( -0.9, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 90
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -102,7 +102,7 @@
 pr_dismissal_duration_seconds = Histogram(
     "stampbot_pr_dismissal_duration_seconds",
     "PR dismissal operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 1.25, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 91
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -102,7 +102,7 @@
 pr_dismissal_duration_seconds = Histogram(
     "stampbot_pr_dismissal_duration_seconds",
     "PR dismissal operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, -0.75, 0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 92
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -102,7 +102,7 @@
 pr_dismissal_duration_seconds = Histogram(
     "stampbot_pr_dismissal_duration_seconds",
     "PR dismissal operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 1.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 93
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -102,7 +102,7 @@
 pr_dismissal_duration_seconds = Histogram(
     "stampbot_pr_dismissal_duration_seconds",
     "PR dismissal operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, -0.5, 1.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 94
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -102,7 +102,7 @@
 pr_dismissal_duration_seconds = Histogram(
     "stampbot_pr_dismissal_duration_seconds",
     "PR dismissal operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 0.5, 2.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 95
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -102,7 +102,7 @@
 pr_dismissal_duration_seconds = Histogram(
     "stampbot_pr_dismissal_duration_seconds",
     "PR dismissal operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 0.5, 0.0, 2.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 96
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -102,7 +102,7 @@
 pr_dismissal_duration_seconds = Histogram(
     "stampbot_pr_dismissal_duration_seconds",
     "PR dismissal operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 0.5, 1.0, 3.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 97
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -102,7 +102,7 @@
 pr_dismissal_duration_seconds = Histogram(
     "stampbot_pr_dismissal_duration_seconds",
     "PR dismissal operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 0.5, 1.0, 1.5, 5.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 98
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -102,7 +102,7 @@
 pr_dismissal_duration_seconds = Histogram(
     "stampbot_pr_dismissal_duration_seconds",
     "PR dismissal operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 6.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 99
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -102,7 +102,7 @@
 pr_dismissal_duration_seconds = Histogram(
     "stampbot_pr_dismissal_duration_seconds",
     "PR dismissal operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 4.0, 10.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 100
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -102,7 +102,7 @@
 pr_dismissal_duration_seconds = Histogram(
     "stampbot_pr_dismissal_duration_seconds",
     "PR dismissal operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 11.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 101
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -102,7 +102,7 @@
 pr_dismissal_duration_seconds = Histogram(
     "stampbot_pr_dismissal_duration_seconds",
     "PR dismissal operation duration in seconds",
-    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0),
+    buckets=(0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 9.0),
 )
 
 # =============================================================================
operator: core/NumberReplacer, occurrence: 102
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=( 1.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 103
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=( -0.95, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 104
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=(0.05, 1.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 105
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=(0.05, -0.9, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 106
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=(0.05, 0.1, 1.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 107
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=(0.05, 0.1, -0.75, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 108
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=(0.05, 0.1, 0.25, 1.5, 1.0, 2.5, 5.0, 10.0, 30.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 109
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=(0.05, 0.1, 0.25, -0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 110
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=(0.05, 0.1, 0.25, 0.5, 2.0, 2.5, 5.0, 10.0, 30.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 111
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=(0.05, 0.1, 0.25, 0.5, 0.0, 2.5, 5.0, 10.0, 30.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 112
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 3.5, 5.0, 10.0, 30.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 113
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 1.5, 5.0, 10.0, 30.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 114
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 6.0, 10.0, 30.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 115
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 4.0, 10.0, 30.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 116
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 11.0, 30.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 117
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 9.0, 30.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 118
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 31.0),
 )
 
 github_api_rate_limit_remaining = Gauge(
operator: core/NumberReplacer, occurrence: 119
--- mutation diff ---
--- astampbot/metrics.py
+++ bstampbot/metrics.py
@@ -132,7 +132,7 @@
     "stampbot_github_api_request_duration_seconds",
     "GitHub API request duration in seconds",
     ["operation"],
-    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0),
+    buckets=(0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 29.0),
 )
 
 github_api_rate_limit_remaining = Gauge(