You need to sign in before continuing.
Commit c8501c46a0715938dcf923efa71412e5df10f70c
1 parent
dcac03bd
graphlemon: auto-commit uncommitted changes for 88612ded-ac9f-499c-9872-dcd05cad9495
Showing
2 changed files
with
13 additions
and
1 deletions
src/e2e_pipeline.py
| ... | ... | @@ -412,7 +412,13 @@ def _test_script_verify_fn(node_artifact_types, script_artifact_type="test_scrip |
| 412 | 412 | def verify_fn(node, output): |
| 413 | 413 | if node_artifact_types.get(node["node_id"]) != script_artifact_type: |
| 414 | 414 | return True, None |
| 415 | - return check_script_compiles(output["content"]) | |
| 415 | + ok, detail = check_script_compiles(output["content"]) | |
| 416 | + # work_graph_orchestrate._verify_and_maybe_regenerate does | |
| 417 | + # "; ".join(feedback or []), i.e. it expects a list of messages (the | |
| 418 | + # PRD-consistency verify_fn's `issues` shape) -- check_script_compiles | |
| 419 | + # returns a single string, which `join` would otherwise iterate | |
| 420 | + # character-by-character into a garbled reflect-prompt. | |
| 421 | + return ok, ([detail] if detail else None) | |
| 416 | 422 | return verify_fn |
| 417 | 423 | |
| 418 | 424 | ... | ... |
src/test_e2e_pipeline.py
| ... | ... | @@ -272,6 +272,12 @@ class TestScriptVerifyFnTest(unittest.TestCase): |
| 272 | 272 | verify_fn = e2e_pipeline._test_script_verify_fn(node_artifact_types) |
| 273 | 273 | ok, detail = verify_fn({"node_id": "script"}, {"content": "this is narrative, not code, no way"}) |
| 274 | 274 | self.assertFalse(ok) |
| 275 | + # regression: work_graph_orchestrate does "; ".join(feedback or []) on | |
| 276 | + # this return value -- a bare string would get joined character-by- | |
| 277 | + # character into a garbled reflect prompt (2026-08-06 self-hosting | |
| 278 | + # incident). Must be a list containing the message, not the message. | |
| 279 | + self.assertIsInstance(detail, list) | |
| 280 | + self.assertIn("py_compile", detail[0]) | |
| 275 | 281 | |
| 276 | 282 | def test_test_script_node_with_real_code_passes(self): |
| 277 | 283 | node_artifact_types = {"script": "test_script"} | ... | ... |