* fix(#6611): make regeneration transaction canonical * fix(#6611): close cross-provider regeneration blockers * fix(#6611): harden regeneration transaction boundaries * fix(#6611): bind canonical context and fork lineage * fix(#6611): restore active turn token stamping * test(#6611): make regeneration regressions CI portable * test(#6611): preserve the tracked regeneration error fixture * fix(#6611): preserve extracted session harness contracts * fix(regeneration): preserve concurrent and imported turn ownership (#6611) * fix(regeneration): honor imported turn ownership safely (#6611) * test(regeneration): cover both session lock outcomes (#6611) * test(regeneration): clear unused transaction fixtures (#6611) * fix(#6611): consume public active-turn marker * ci: re-trigger (Playwright install hung ~2.5h on GH runners, warm-cache retry) --------- Co-authored-by: nesquena-hermes <nesquena+hermes@gmail.com> Co-authored-by: n <a@n>
23 lines
831 B
Python
23 lines
831 B
Python
import json
|
|
from pathlib import Path
|
|
|
|
|
|
_FIXTURE_PATH = Path(__file__).parent / "fixtures" / "issue6611_regeneration_rows.json"
|
|
_EXPECTED_ROWS = [
|
|
{"role": "user", "content": "same prompt"},
|
|
{"role": "assistant", "content": "provider failed", "_error": True},
|
|
]
|
|
|
|
|
|
def load_issue6611_fixture():
|
|
fixture = json.loads(_FIXTURE_PATH.read_text(encoding="utf-8"))
|
|
assert set(fixture) == {"issue", "rows"}
|
|
assert fixture["issue"] == 6611
|
|
assert isinstance(fixture["rows"], list)
|
|
assert fixture["rows"] == _EXPECTED_ROWS
|
|
assert all(set(row) == {"role", "content"} for row in fixture["rows"][:1])
|
|
assert set(fixture["rows"][1]) == {"role", "content", "_error"}
|
|
assert [row["role"] for row in fixture["rows"]] == ["user", "assistant"]
|
|
assert fixture["rows"][1]["_error"] is True
|
|
return fixture
|