Skip to content

Add searchfox-based tools to the code review agent

3917e53
Select commit
Loading
Failed to load commit list.
Open

Add more tools (based on searchfox-py) to the LLM review agent, and make it patch stack aware to a certain extent #6051

Add searchfox-based tools to the code review agent
3917e53
Select commit
Loading
Failed to load commit list.
Community-TC Integration / bugbug lint failed May 26, 2026 in 8m 30s

Community-TC (pull_request)

bugbug lint

Details

View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster

Task Status

Started: 2026-05-26T17:08:40.795Z
Resolved: 2026-05-26T17:17:09.622Z
Task Execution Time: 8 minutes, 28 seconds, 827 milliseconds
Task Status: failed
Reason Resolved: failed
TaskId: S6-leinJRl21MJlfltoReg
RunId: 0

Artifacts

- public/logs/live_backing.log
- public/logs/live.log


[taskcluster 2026-05-26T17:08:40.872Z] Worker Type (proj-bugbug/batch) settings:
[taskcluster 2026-05-26T17:08:40.872Z]   {
[taskcluster 2026-05-26T17:08:40.872Z]     "generic-worker": {
[taskcluster 2026-05-26T17:08:40.872Z]       "config": {
[taskcluster 2026-05-26T17:08:40.872Z]         "capacity": 1,
[taskcluster 2026-05-26T17:08:40.872Z]         "headlessTasks": false
[taskcluster 2026-05-26T17:08:40.872Z]       },
[taskcluster 2026-05-26T17:08:40.872Z]       "engine": "multiuser",
[taskcluster 2026-05-26T17:08:40.872Z]       "go-arch": "amd64",
[taskcluster 2026-05-26T17:08:40.872Z]       "go-os": "linux",
[taskcluster 2026-05-26T17:08:40.872Z]       "go-version": "go1.26.2",
[taskcluster 2026-05-26T17:08:40.872Z]       "release": "https://github.com/taskcluster/taskcluster/releases/tag/v100.0.1",
[taskcluster 2026-05-26T17:08:40.872Z]       "revision": "fcf9d8ed582ed8de3d1cdb8f4f91ccec93b7803c",
[taskcluster 2026-05-26T17:08:40.872Z]       "source": "https://github.com/taskcluster/taskcluster/commits/fcf9d8ed582ed8de3d1cdb8f4f91ccec93b7803c",
[taskcluster 2026-05-26T17:08:40.872Z]       "version": "100.0.1"
[taskcluster 2026-05-26T17:08:40.872Z]     },
[taskcluster 2026-05-26T17:08:40.872Z]     "image": "projects/community-tc-workers/global/images/generic-worker-ubuntu-24-04-bngpghpfficdxtlhnusi",
[taskcluster 2026-05-26T17:08:40.872Z]     "instance-id": "6776799414992793056",
[taskcluster 2026-05-26T17:08:40.872Z]     "instance-type": "projects/757942385826/machineTypes/n2-standard-2",
[taskcluster 2026-05-26T17:08:40.872Z]     "local-ipv4": "10.128.0.71",

...(11845 lines hidden)...

⠇ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠋ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠙ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠹ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠸ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠼ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠴ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠦ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠧ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠇ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠋ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠙ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠹ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠸ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠼ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠴ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠦ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠧ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠇ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠋ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠙ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠹ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠸ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠼ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠴ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠦ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠧ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠇ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠋ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠙ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠹ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠸ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠼ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠴ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠦ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠧ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠇ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠋ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠙ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠹ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠸ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠼ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠴ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠦ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠧ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠇ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠋ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠙ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠹ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠸ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠼ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠴ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠦ Preparing packages... (218/219)                                               

   Building llama-cpp-python==0.3.19
⠧ Preparing packages... (218/219)                                               

      Built llama-cpp-python==0.3.19
⠧ Preparing packages... (218/219)                                               
⠧  (219/219)                                                                    
░░░░░░░░░░░░░░░░░░░░ [0/0] Installing wheels...                                 
░░░░░░░░░░░░░░░░░░░░ [0/219] Installing wheels...                               
░░░░░░░░░░░░░░░░░░░░ [0/219] graphviz==0.21                                     
░░░░░░░░░░░░░░░░░░░░ [1/219] graphviz==0.21                                     
░░░░░░░░░░░░░░░░░░░░ [1/219] python-multipart==0.0.26                           
░░░░░░░░░░░░░░░░░░░░ [2/219] python-multipart==0.0.26                           
░░░░░░░░░░░░░░░░░░░░ [2/219] pydantic==2.12.5                                   
░░░░░░░░░░░░░░░░░░░░ [3/219] pydantic==2.12.5                                   
░░░░░░░░░░░░░░░░░░░░ [3/219] abnf==2.2.0                                        
░░░░░░░░░░░░░░░░░░░░ [4/219] abnf==2.2.0                                        
░░░░░░░░░░░░░░░░░░░░ [4/219] executing==2.2.1                                   
░░░░░░░░░░░░░░░░░░░░ [5/219] executing==2.2.1                                   
░░░░░░░░░░░░░░░░░░░░ [5/219] pyjwt==2.12.1                                      
░░░░░░░░░░░░░░░░░░░░ [6/219] pyjwt==2.12.1                                      
░░░░░░░░░░░░░░░░░░░░ [6/219] greenlet==3.3.2                                    
░░░░░░░░░░░░░░░░░░░░ [7/219] greenlet==3.3.2                                    
░░░░░░░░░░░░░░░░░░░░ [7/219] validx==0.8.1                                      
░░░░░░░░░░░░░░░░░░░░ [8/219] validx==0.8.1                                      
░░░░░░░░░░░░░░░░░░░░ [8/219] intervaltree==3.2.1                                
░░░░░░░░░░░░░░░░░░░░ [9/219] intervaltree==3.2.1                                
█████░░░░░░░░░░░░░░░ [63/219] whatthepatch==1.0.7                               
████████░░░░░░░░░░░░ [91/219] cint==1.0.0                                       
██████████░░░░░░░░░░ [115/219] fonttools==4.62.1                                
███████████░░░░░░░░░ [127/219] polyfile-weave==0.5.9                            
██████████████░░░░░░ [154/219] langchain-openai==1.1.14                         
█████████████████░░░ [188/219] diskcache==5.6.3                                 
██████████████████░░ [205/219] ortools==9.15.6755                               
███████████████████░ [216/219] pandas==3.0.1                                    
███████████████████░ [217/219] pandas==3.0.1                                    
███████████████████░ [217/219] scipy==1.17.1                                    
Installed 219 packages in 507ms
[INFO] Initializing environment for https://github.com/pre-commit/mirrors-prettier.
[INFO] Initializing environment for https://github.com/pre-commit/mirrors-prettier:prettier@4.0.0-alpha.8.
[INFO] Initializing environment for https://github.com/astral-sh/ruff-pre-commit.
[INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks.
[INFO] Initializing environment for https://github.com/codespell-project/codespell.
[INFO] Initializing environment for https://github.com/marco-c/taskcluster_yml_validator.
[INFO] Initializing environment for https://github.com/asottile/yesqa.
[INFO] Initializing environment for https://github.com/pre-commit/mirrors-mypy.
[INFO] Initializing environment for https://github.com/pre-commit/mirrors-mypy:types-pkg_resources==0.1.2,types-python-dateutil==2.9.0.20260408,types-PyYAML==6.0.12.20260408,types-orjson==3.6.2,types-tabulate==0.10.0.20260408,types-requests==2.33.0.20260503.
[INFO] Initializing environment for https://github.com/pre-commit/mirrors-mypy:types-pkg_resources==0.1.2,types-requests==2.33.0.20260503,types-Flask==1.1.6,types-redis==4.6.0.20241004,types-python-dateutil==2.9.0.20260408,types-orjson==3.6.2,types-tabulate==0.10.0.20260408.
[INFO] Installing environment for https://github.com/pre-commit/mirrors-prettier.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/astral-sh/ruff-pre-commit.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/codespell-project/codespell.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/marco-c/taskcluster_yml_validator.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/asottile/yesqa.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/pre-commit/mirrors-mypy.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/pre-commit/mirrors-mypy.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
prettier.................................................................Passed
ruff check...............................................................Passed
ruff format..............................................................Failed
- hook id: ruff-format
- files were modified by this hook

warning: Selection `CPY` has no effect because preview is not enabled.
1 file reformatted, 243 files left unchanged

check python ast.........................................................Passed
check docstring is first.................................................Passed
check that executables have shebangs.....................................Passed
check for merge conflicts................................................Passed
check for broken symlinks............................(no files to check)Skipped
debug statements (python)................................................Passed
trim trailing whitespace.................................................Passed
check yaml...............................................................Passed
mixed line ending........................................................Passed
python tests naming......................................................Passed
check json...............................................................Passed
check vcs permalinks.....................................................Passed
codespell................................................................Passed
taskcluster_yml..........................................................Passed
Strip unnecessary `# noqa`s..............................................Passed
mypy-bugbug..............................................................Passed
mypy-bugbug-http.........................................................Passed
Check for useless excludes...............................................Passed
pre-commit hook(s) made changes.
If you are seeing this message in CI, reproduce locally with: `pre-commit run --all-files`.
To run `pre-commit` as part of git workflow, use `pre-commit install`.
All changes made by hooks:
diff --git a/tests/test_code_review.py b/tests/test_code_review.py
index 456b6e38..17ec0845 100644
--- a/tests/test_code_review.py
+++ b/tests/test_code_review.py
@@ -98,21 +98,27 @@ def test_get_file_after_stack_modifies_file():
         "--- a/foo.txt\n+++ b/foo.txt\n@@ -1,3 +1,4 @@\n a\n-b\n+B\n c\n+d\n"
     )
     result = asyncio.run(
-        get_file_after_stack(patch.patch_stack,"foo.txt", make_fetch({"foo.txt": "a\nb\nc\n"}))
+        get_file_after_stack(
+            patch.patch_stack, "foo.txt", make_fetch({"foo.txt": "a\nb\nc\n"})
+        )
     )
     assert result == "a\nB\nc\nd\n"
 
 
 def test_get_file_after_stack_added_file():
     patch = make_patch("--- /dev/null\n+++ b/new.txt\n@@ -0,0 +1,2 @@\n+a\n+b\n")
-    result = asyncio.run(get_file_after_stack(patch.patch_stack,"new.txt", make_fetch({})))
+    result = asyncio.run(
+        get_file_after_stack(patch.patch_stack, "new.txt", make_fetch({}))
+    )
     assert result == "a\nb\n"
 
 
 def test_get_file_after_stack_unmodified_file():
     patch = make_patch("")
     result = asyncio.run(
-        get_file_after_stack(patch.patch_stack,"foo.txt", make_fetch({"foo.txt": "a\nb\n"}))
+        get_file_after_stack(
+            patch.patch_stack, "foo.txt", make_fetch({"foo.txt": "a\nb\n"})
+        )
     )
     assert result == "a\nb\n"
 
@@ -122,7 +128,9 @@ def test_get_file_after_stack_applies_stack():
         "--- /dev/null\n+++ b/f.txt\n@@ -0,0 +1,2 @@\n+a\n+b\n",
         "--- a/f.txt\n+++ b/f.txt\n@@ -1,2 +1,3 @@\n a\n-b\n+B\n+c\n",
     )
-    result = asyncio.run(get_file_after_stack(patch.patch_stack,"f.txt", make_fetch({})))
+    result = asyncio.run(
+        get_file_after_stack(patch.patch_stack, "f.txt", make_fetch({}))
+    )
     assert result == "a\nB\nc\n"
 
 
@@ -130,7 +138,9 @@ def test_get_file_after_stack_raises_for_deleted_file():
     patch = make_patch("--- a/f.txt\n+++ /dev/null\n@@ -1,2 +0,0 @@\n-a\n-b\n")
     try:
         asyncio.run(
-            get_file_after_stack(patch.patch_stack,"f.txt", make_fetch({"f.txt": "a\nb\n"}))
+            get_file_after_stack(
+                patch.patch_stack, "f.txt", make_fetch({"f.txt": "a\nb\n"})
+            )
         )
         assert False, "expected FileNotFoundError"
     except FileNotFoundError:
@@ -143,7 +153,9 @@ def test_get_file_after_stack_follows_renames():
         "--- a/old.txt\n+++ b/new.txt\n@@ -1,2 +1,3 @@\n a\n-B\n+C\n+d\n",
     )
     result = asyncio.run(
-        get_file_after_stack(patch.patch_stack,"new.txt", make_fetch({"old.txt": "a\nb\n"}))
+        get_file_after_stack(
+            patch.patch_stack, "new.txt", make_fetch({"old.txt": "a\nb\n"})
+        )
     )
     assert result == "a\nC\nd\n"
 
[taskcluster 2026-05-26T17:17:07.433Z]                        Exit Code: 1
[taskcluster 2026-05-26T17:17:07.433Z]                        User Time: 153.768ms
[taskcluster 2026-05-26T17:17:07.433Z]                      Kernel Time: 209.684ms
[taskcluster 2026-05-26T17:17:07.433Z]                        Wall Time: 8m2.090364587s
[taskcluster 2026-05-26T17:17:07.433Z]  Average Available System Memory: 5.83 GiB
[taskcluster 2026-05-26T17:17:07.433Z]       Average System Memory Used: 1.92 GiB
[taskcluster 2026-05-26T17:17:07.433Z]          Peak System Memory Used: 2.70 GiB
[taskcluster 2026-05-26T17:17:07.433Z]              Total System Memory: 7.75 GiB
[taskcluster 2026-05-26T17:17:07.433Z]                           Result: FAILED
[taskcluster 2026-05-26T17:17:07.434Z] === Task Finished ===
[taskcluster 2026-05-26T17:17:07.434Z] Task Duration: 8m2.091913655s
[taskcluster:error] exit status 1