fix(maf): en vakt som gikk inert i STILLHET, funnet ved aa loefte pinnen (F15, ORDRE 20260829T155150Z)
MAF core 1.9.0 -> 1.16.0, orchestrations 1.0.1 -> 1.1.1. De to kan ikke loeftes hver for seg: orchestrations 1.1.1 krever selv core>=1.15.0. Iron Law: vakt-testen kjoert ROED mot 1.9.0 (2 failed) FOER pinnen ble roert. Gulvet bor i EN konstant og pyproject-asserten deriverer sin streng fra den. NEVNER: 16 private/ugaranterte former, derivert fra repoets EGNE siteringer, alle 16 sjekket mot begge versjoner, 2 endret seg. Kjent-positiv: MiddlewareFailure flippet NO -> YES. KP-kandidaten _compaction.py ble FORKASTET (teller 0 i begge, diskriminerer ingenting). DEN FARLIGE ENDRINGEN er den ordren navnga - formen som fortsatt importerer, men har flyttet semantikk i stillhet. En park skriver naa TO checkpoints og bare EN baerer plan-review-typen, saa en feildeklarert _ALLOWED_CHECKPOINT_TYPES toemmer ikke lenger listingen: den taper nOEyaktig den checkpointen som betyr noe, get_latest returnerer den ANDRE, og _parks `latest is None`-vakt passerte mens kjOEringen svarte rc=0 og skrev et spOErsmaal som aldri kan baere svaret. Vakten sjekker naa EGENSKAPEN den alltid mente (request_id in pending_request_info_events - et DEKLARERT felt) i stedet for symptomet som pleide aa innebaere den, og fjerner dermed en privat avhengighet i stedet for aa legge til en. ExperimentalWarning-paret P4 pkt. 2 betalte for aa BEHOLDE er borte fordi MAF sluttet aa sende det: _feature_stage.py emitterer ved FOERSTE BRUK, ikke ved import. Goldenens stderr regenerert som BESLUTNING (fire -> to linjer); site-packages- maskeringen BEHOLDT (spannet er ubebodd, ikke pensjonert). Load-bearing MAALT mot HELE suiten, gronn kontroll 1089/5, stdout BYTE-UENDRET (ea8c534773acdbe41ae68f2c55724d69aaf8be4f): M1 revert av vakten -> 1 rod. EN mutasjon ble IKKE rod og staar som aerlighets-grense, ikke som gate: spikens checkpoint_ids[-1] er rekkefolge-avhengig (Path.glob), altsaa flaky. Rapport: docs/2026-09-02-f15-maf-pinnen.md Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
67eb8939d3
commit
ef2f1cbe61
15 changed files with 366 additions and 54 deletions
|
|
@ -517,9 +517,22 @@ async def checkpoint_until_plan_review(storage_dir: str) -> dict[str, Any]:
|
|||
checkpoints = await _checkpoint_storage(storage_dir).list_checkpoints(
|
||||
workflow_name=workflow.name
|
||||
)
|
||||
request_id = pending[0].request_id if pending else None
|
||||
# F15 (core 1.16.0, MEASURED): a park now leaves TWO checkpoints, and only one of them carries
|
||||
# the plan-review request. Naming the LAST entry of a listing was correct while there was one;
|
||||
# with two it picks by whatever ``Path.glob`` returned and the resume dies on "No pending
|
||||
# requests found in workflow context." The id handed across the process boundary is therefore
|
||||
# the one whose ``pending_request_info_events`` holds THIS request — the same property
|
||||
# ``explore._park`` asserts, rather than a position in an unordered listing.
|
||||
carrying = [
|
||||
c
|
||||
for c in checkpoints
|
||||
if request_id is not None and str(request_id) in c.pending_request_info_events
|
||||
]
|
||||
return {
|
||||
"request_id": pending[0].request_id if pending else None,
|
||||
"request_id": request_id,
|
||||
"checkpoint_ids": [c.checkpoint_id for c in checkpoints],
|
||||
"resume_checkpoint_id": str(carrying[-1].checkpoint_id) if carrying else None,
|
||||
"outputs": [str(o) for o in (result.get_outputs() or [])],
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue