okstra 0.165.1 → 0.165.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
package/runtime/BUILD.json
CHANGED
|
@@ -3983,6 +3983,29 @@ def _validate_gate_blocked_by(data: dict, failures: list[str]) -> None:
|
|
|
3983
3983
|
)
|
|
3984
3984
|
return
|
|
3985
3985
|
|
|
3986
|
+
if not actual_causes and _PLAN_GATE_RANK.get(declared_gate) == 0:
|
|
3987
|
+
# A blocking value with nothing left blocking it. The two checks around
|
|
3988
|
+
# this one both walk from a recorded cause outward, so a gate that
|
|
3989
|
+
# simply stopped being updated fell between them: a self-fix loop
|
|
3990
|
+
# resolved every majority-disagree item, `gateBlockedBy` emptied
|
|
3991
|
+
# correctly, and the gate token stayed at its round-1 value. The plan
|
|
3992
|
+
# was approvable and nothing said so — run-prep refused the approval,
|
|
3993
|
+
# and the refusal propagated far enough to take the run wizard down
|
|
3994
|
+
# with it, so no run could be started in that project at all. Rescoring
|
|
3995
|
+
# with `okstra plan-verify` and recording what it returns is the fix;
|
|
3996
|
+
# the round is not complete until that call agrees with the report.
|
|
3997
|
+
failures.append(
|
|
3998
|
+
"final-report data.json: implementationPlanning.planBodyVerification "
|
|
3999
|
+
f"`gateResult` is `{declared_gate}` but nothing blocks approval — "
|
|
4000
|
+
"no plan item is `majority-disagree`, no dispatch was a non-result, "
|
|
4001
|
+
"and no Requirement Coverage row blocks independently. A gate that "
|
|
4002
|
+
"withholds approval with no recorded cause is almost always a value "
|
|
4003
|
+
"left behind by an earlier round: rescore with `okstra plan-verify` "
|
|
4004
|
+
"and record its `gate.recomputed` "
|
|
4005
|
+
'(plan-body-verification.md §"Round protocol" step 5).'
|
|
4006
|
+
)
|
|
4007
|
+
return
|
|
4008
|
+
|
|
3986
4009
|
if declared_causes != actual_causes:
|
|
3987
4010
|
failures.append(
|
|
3988
4011
|
"final-report data.json: implementationPlanning.planBodyVerification "
|