Merge branch 'main' into claude/silly-lederberg-231f6c
Continuous Integration / lint-and-security (pull_request) Successful in 20s
Continuous Integration / tests-and-coverage (pull_request) Successful in 24s

Conflicted only on the README feature list, where main's list_cargo()
bullet and this branch's bridge bullet were added at the same spot. Kept
both: list_cargo() with the other cargo queries, and the bridge one last,
since it is about what all of them run against.

list_cargo() landing also makes tests/test_gamescript.py's command check
meaningful in the other direction -- the bridge has answered list_cargo
all along with nothing sending it, which is exactly the asymmetry that
check tolerates on purpose.

Co-Authored-By: Claude <[email protected]>
This commit is contained in:
2026-08-31 19:12:41 +02:00
co-authored by Claude
7 changed files with 117 additions and 4 deletions
+2 -1
View File
@@ -67,7 +67,8 @@ def test_gamescript_implements_every_command_the_client_sends():
"""Each command in a client payload must have a handler in the bridge's dispatch table.
A command the bridge does not know is silently dropped, so the caller only sees a timeout.
The bridge may implement more than the client wraps (list_cargo currently has no method).
Checked one way round only: the bridge is allowed to implement more than the client wraps,
which is how list_cargo sat there answering nobody until a method was written for it.
"""
commands = set(re.findall(r"^\s*(\w+)\s*=\s*{ handler",
_block(MAIN_NUT, "COMMANDS = {", "\n\t};"), re.MULTILINE))