Release: dev → main (first public release) #258

Merged
bvandeusen merged 94 commits from dev into main 2026-09-25 10:02:40 -04:00
Showing only changes of commit a4c66601db - Show all commits
+20 -6
View File
@@ -362,19 +362,33 @@ def test_the_agent_heartbeats_whether_or_not_it_holds_a_lease():
Read from the source rather than by running the loop: it is a `while True`
with a sleep, so exercising it means threads and timing, and the property
is simply that the call is not behind a `if ids:`.
is simply that the call is not behind a guard on `ids`.
Parsed rather than grepped, and that is not fussiness — the first cut
searched the raw function text and failed on its own explanation. The
docstring of the fix quotes the construct the fix removed, because that is
what a docstring explaining a fix DOES. A source-text assertion cannot
tell the code from the prose about the code; the AST can, so the body is
unparsed with its docstring dropped.
"""
import ast
from pathlib import Path
src = (
Path(__file__).resolve().parents[1] / "agent" / "fc_agent" / "worker.py"
).read_text()
loop = src[src.index("def _heartbeat_loop"):]
loop = loop[:loop.index("\n def ")]
fn = next(
n for n in ast.walk(ast.parse(src))
if isinstance(n, ast.FunctionDef) and n.name == "_heartbeat_loop"
)
code = "\n".join(
ast.unparse(n) for n in fn.body
if not (isinstance(n, ast.Expr) and isinstance(n.value, ast.Constant))
)
assert "self.client.heartbeat(ids)" in loop
assert "if ids:" not in loop, (
assert "self.client.heartbeat(ids)" in code
assert "if ids" not in code, (
"the heartbeat is gated on holding leases again; an idle agent then "
"reads as stopped after 300s while sleep mode backs its lease poll "
"off to 900s"
f"off to 900s\n\n{code}"
)