feat(research): add CALF/LegNav comparator diagnostic - #7357
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🔍 PR Contract Check SummaryOverall Status: 🟢 PASSED
ℹ️ Info
This check is mechanized. Please resolve any blockers to pass CI. |
Maintainer Decision RequiredWhat is complete:
What is missing for merge:
|
Exact-Head Review Verdict
Findings Disposition
Validation Executed (exact head)
base-policy: ordinary-cas @ 28e5214 |
Exact-head self-review — PR #7357
Local proof
Gate disposition
|
ll7
left a comment
There was a problem hiding this comment.
Exact-head CALF comparator review — PR #7357
- Reviewed head:
c680b6811b6b8d1b8f750ec9c1892c7d433d9901. - Reviewed base:
462032df2abc3e086655935288c806b9df8bda2b(origin/main). - Rebased/merged cleanly onto current
main. - Local validation: 4 tests passed in
tests/dev/test_issue_7331_benchmark_namespace_inventory.py. Ruff check and format passed.git diff --checkpassed. - Domain-aware approval: pending maintainer decision.
- Reconciled PR metadata:
pr-metadata: reconciled @ afe9c4c61d65be7f42e06ce3f607e8ad0dc1dba4bb78716ce6830073e68b9fc4.
gate-verdict: accepted @ c680b6811b6b8d1b8f750ec9c1892c7d433d9901
merge-ready: no (domain-aware approval pending)
Domain-aware review — paired observation-contract validityReviewed head: Not author-reservedThe diff adds a comparator module, two schemas, a runner, a frozen smoke config, a docs page, and Pairing verified empirically, not from the bodyLive paired smoke on the committed config, both rows executed, no fallback/degraded execution:
Same candidate One fail-open found (tracked: #7454)
A validated fix exists on branch Why this is parkedThe branch received a base refresh from the autonomous factory a few minutes before this review, and RecommendationMerge Hosted CI at this head was still fully pending when this review was written. |
|
Self-review disposition (2026-08-18; not an approval): current head The comparator is explicitly diagnostic-only and its body correctly keeps domain-aware approval pending before promotion. The implementation/schema/tests may proceed through independent exact-head review, but no claim-eligible comparison, campaign, evidence admission, publication, compute, scheduler, or issue-state mutation is authorized by this PR. |
|
#7357: approve-diagnostic-contract-after-fail-closed-binding Approve the paired observation-contract direction and its narrow claim boundary: one Robot SF candidate, scenario, and seed may be compared under the fixture's ideal-state and bounded perception-limited observations as a diagnostic plumbing smoke. It is not a CALF reproduction, sensor-realism result, transfer result, safety result, benchmark ranking, or paper-facing finding. The committed smoke's observed pair is valid, but two enforcement conditions remain before this head can receive Domain-Aware Approval. First, land the prepared #7454 hardening: bind each fixed slot to its derived observation condition, block swapped/degenerate pairs, and include Automatic consequence: remove Decision evaluated at head |
PR reconciliation — comparator contract incompleteThis PR must not merge in its current form. Issue #7454 identified a fail-open: the report does not bind each condition slot to the observed evidence class and does not include Keep in draft until:
The one-seed fixture remains diagnostic and cannot support transfer or policy-ranking claims. |
…7508) (#7519) ## Summary Make `scripts/dev/pr_loop_policy.py` machine-recognize the two workflow markers that PR #7500 introduced to `goal-pr-review` (docs-only): the advisory `review-claim: <lane> @ <head> until <UTC>` comment marker and the `author_decision` parking state (`decision-required` label + `### Decision packet` comment at the live head). PRs parked by either are classified `active_writer` / `author_decision` with recommended action `no_action`/stop, distinct from `blocked_preflight`, so reviewer lanes and the factory stop racing on the same branch. ## Linked Issues - Closes `#7508` - Refs `#7500` (defines the marker formats), `#7491` (not-ready-sentinel half, intentionally NOT implemented here) ## Stack / Dependency - Base dependency: none - Required prior PRs: #7500 (merged, defines the marker contract) - Stack follow-up issues: none - Safe to review independently: yes - Review dependency reason, if any: the marker format is defined by #7500's docs. ## What Changed - `scripts/dev/pr_loop_policy.py`: - `VALID_STATES` gains `active_writer` and `author_decision`. - New marker parsing: `_REVIEW_CLAIM_RE` (`review-claim: <lane> @ <sha> until <UTC>`), `_REVIEW_CLAIM_RELEASED_RE` (`review-claim: released @ <sha>`), `_DECISION_PACKET_HEADING_RE` (`### Decision packet`), plus a `ReviewClaim` dataclass. - New pure helpers: `_parse_review_claim_marker`, `_review_claim_released_shas`, `_has_decision_packet_heading`, `_trusted_marker_comments` (OWNER/MEMBER/COLLABORATOR only, reading both `comments` and `reviews` bodies), `active_review_claim` (unexpired + unreleased + head-bound, `now=None` -> `datetime.now(UTC)`), `has_author_decision_packet` (live-head binding; review-body packets must name the live head). - `classify_pr_state` takes an explicit `now` kwarg; draft/error/closed still return `no_action` first; `active_writer`/`author_decision` are checked before `blocked_preflight` and the rest of the pipeline (precedence per issue). - `recommend_action` maps both new states to `no_action` with named reasons; flow decision is `stop` for both. - Module docstring documents the lane-identity limitation (snapshot cannot distinguish lanes, so any unexpired unreleased trusted marker parks) and links **#7491 as explicitly out of scope** — no not-ready-sentinel implementation was added. - `tests/dev/test_pr_loop_policy.py`: 24 new tests with fixed timestamps (no monkeypatching): park on unexpired trusted claim, untrusted does not park, released clears, expiry, `now == until` is expiry, head mismatch, unparseable timestamp fails closed, claim in review body, parser round-trips, author_decision with/without label and packet, live vs stale head, untrusted packet, precedence over `blocked_preflight` and over ready-to-merge, draft still `no_action`, VALID_STATES contract, queue-level evaluation. - `CHANGELOG.md`: Unreleased -> Changed entry. ## Why It Matters - Added value: the loop tooling now parks PRs with an active review-claim or author-reserved decision instead of racing the branch, which was the observed 2026-08-18 failure mode (6 PRs had exact-head evidence voided by mid-run factory rebases; #7357 and #7347 raced within minutes). - Expected impact: workflow reliability only; no benchmark/planner/evidence semantics change. - Why this is worth merging now: closes the machine-recognition gap left by #7500 so the advisory markers become enforceable. ## Research Result Guidance - Target claim / hypothesis / blocker this should affect: NA - support/tooling-only; no research claim. - Comparator or baseline, if applicable: NA - Evidence tier: NA - support helper. - Result classification: NA - Decision or stop rule, if applicable: NA - Parent issue, claim map, registry, context note, or synthesis surface to update: NA - New research/benchmark/metric/paper-facing analysis tool, if any: NA - support helper. ## Domain-Aware Approval - Required for this PR: no - workflow/tooling classification change; no evidence classification, comparison methodology, figure eligibility, benchmark interpretation, or paper-facing claim change. - Domains reviewed: NA - Status: not required - Approver/review source or waiver: NA - Validity checklist (machine-detected labels unchanged): - Target claim/hypothesis: NA - Comparator or split/evidence validity: NA - Fallback/degraded exclusions: NA - Claim boundary: NA - Implementation integrity vs experimental validity: implementation integrity only. ## Falsification / Non-Transfer Check - Did the mechanism activate? NA - Did the intervention change command source, selected command, trajectory, or route progress? NA - Did the scenario actually contain the targeted failure mode? NA - Result route: NA - Follow-up question or issue for weak, negative, or non-transfer results: NA ## Next Empirical Action - Rerun needed: no - Extractor or analysis tool needed: no - Artifact missing or unavailable: none - Stop / revise / continue decision: NA - Proposed child issue or existing follow-up: none ## Validation / Proof - Commands run (worktree root): - `uv run pytest tests/dev/test_pr_loop_policy.py -q` — 174 passed (150 pre-existing + 24 new). - `uv run pytest tests/dev/test_snapshot_pr_queue.py -q` — 55 passed (companion). - `uv run ruff check scripts/dev/pr_loop_policy.py tests/dev/test_pr_loop_policy.py` — clean. - `uv run ruff format --check scripts/dev/pr_loop_policy.py tests/dev/test_pr_loop_policy.py` — clean. - Smoke: real `snapshot_pr_queue --active | pr_loop_policy --stdin --json` — exit 0, no crash; synthetic snapshot emits `active_writer` and `author_decision` states via the CLI. - Evidence that the change works here: 24 focused tests cover the marker grammar, expiry/release semantics, live-head binding, precedence, and queue-level behavior with fixed timestamps. - Benchmarks or smoke tests, if applicable: none (workflow tooling). ## Performance Evidence - (Not a `perf` change; section deleted per template guidance.) ## Risks / Rollout - Compatibility risks: additive states and an explicit `now` kwarg (default preserves current behavior); existing classifications re-tested (draft still no_action, ready_to_merge precedence preserved). - Failure modes: unparseable claim timestamps fail closed (documented); lane identity is not distinguishable in the snapshot, so any unexpired unreleased trusted marker parks (documented limitation). - Rollback or fallback plan: revert the single commit; the new states are purely additive. ## Docs / Provenance - Updated docs: module docstring in `pr_loop_policy.py` documents the marker grammar, precedence, lane-identity limitation, and the #7491 out-of-scope boundary; CHANGELOG entry. - Relevant design or provenance notes: marker grammar comes from the merged #7500 goal-pr-review docs. - Any assumptions that need to be preserved: the #7491 not-ready-sentinel half must remain tracked there, not duplicated here. ## Downstream Propagation - Parent issue updated (yes/no/NA): yes - issue #7508 will be closed by this PR. - Claim map / benchmark report updated (yes/no/NA): NA - Leaderboard / artifact catalog updated (yes/no/NA): NA - Registry or config index updated (yes/no/NA): NA - Context index / memory note updated (yes/no/NA): NA - Follow-up issue opened for deferred propagation (yes/no/NA): no - Not applicable because: workflow/tooling-only change with no research-facing downstream surface. ## Follow-Up Issues - Deferred work: the #7491 not-ready-sentinel machine check (tracked there). - Issues opened for follow-up: none. ## Reviewer Notes - Anything a reviewer should verify closely: the marker regex grammar matches the #7500 docs exactly (`review-claim: <lane-id> @ <head-sha> until <UTC>`); precedence of `active_writer`/`author_decision` over `blocked_preflight`; the live-head binding for author_decision packets. - Any known limitations: snapshot does not carry lane identity, so the active-writer check cannot exclude the claiming lane itself; documented in the module docstring. - Shared-helper migration: NA - single-file CLI helper change.
|
review-claim: goal-autopilot-7454 @ c680b68 until 2026-08-18T16:17:00Z I am taking the bounded #7454 landing/review lane for PR #7357. The intended action is to refresh |
ll7
left a comment
There was a problem hiding this comment.
Exact-head review after landing the prepared #7454 hardening.
- reviewed head:
ec2f61aca6db146345471537663a146d2d4202fb - reviewed base:
a2d9279cd9da9740a7011f25ebe96860d95617dc - intended design: keep the CALF/LegNav comparator diagnostic-only while making slot-to-observed-
condition binding and paired horizon identity fail closed - changed landing: prepared commit
5949b7024fbddfc1e021bc49db5f87e0e2132be9, plus current-main
namespace lock refresh from 296 to 297 direct children - validation: 28 focused comparator/namespace/diagnostic tests passed; Ruff check/format and
git diff --checkpassed; docs/proof consistency passed for 12 changed files; committed smoke
returnedstatus: available, both bindingsmatched,runner_error_count: 0, and
evidence_status: diagnostic-only - findings: the prepared fail-closed binding and horizon checks are present; no new actionable
implementation defect was found - domain-aware approval: still pending, as required by the maintainer ruling; the smoke remains
diagnostic plumbing only and does not establish a CALF reproduction, transfer, safety, ranking,
or paper-facing result - readiness boundary: repository readiness recognizes the domain section as structurally complete
but remains blocked until status isapprovedorwaived; nomerge-readylabel is applied - merge boundary: hosted CI, authorized domain decision, independent review, maintainer acceptance,
and guarded merge preflight remain outstanding
gate-verdict: blocked @ ec2f61a
pr-metadata: reconciled @ 10dfe4c44f0f7e175fd7b58b1595dc41f0a189a32e08c3f13725bc6b103a3e91
ll7
left a comment
There was a problem hiding this comment.
Exact-head research review — PR #7357
Reviewed draft PR #7357 at exact head 441534346c5a4f81826267af10d3a6ef88588590 against current
origin/main 51df8965b0ceff300e15f88fc248cd3217e23ff1.
The current-main refresh exposed and repaired one real integration gap: the new direct benchmark
module was missing from the fail-closed namespace classification manifest. The effective diff now
contains that registration alongside the comparator, its schema/config, the observation-contract
adapter, docs, and focused tests.
Local exact-head proof:
- Comparator, diagnostic-runner, and namespace tests: 31 passed.
- Focused Ruff check, format check, Python compilation, and
git diff --check: passed. - Config-first dry run: passed.
- Actual two-condition smoke:
status=available,evidence_status=diagnostic-only, zero runner
errors; one paired episode remains insufficient for uncertainty or a research conclusion.
The implementation remains explicit that it does not execute CALF/LegNav or establish sensor,
embodiment, safety, transfer, benchmark, or paper-facing validity. This is a comment-only
exact-head self-audit under the documented single-account waiver; it is not an approval. Domain
review, draft/dependency state, and hosted checks remain open.
base-policy: ordinary-cas @ 4415343
pr-metadata: reconciled @ 65a747e9f65baf81b1c265d8ad02759505f701164aa2a6d0b95b17879d6e2db7
gate-verdict: blocked @ 4415343 (domain review, draft/dependency state, and hosted checks pending)
merge-ready: no
Exact-head research review — comparator plumbing passes; transfer gate remains open
Exact-head proof passed:
The implementation records observation/sensor boundaries, timeout/runner-error states, and provenance without silently converting the CALF/LegNav preprint setup into Robot SF benchmark evidence. No policy promotion, universal ranking, real-world safety claim, or paper-facing result is established. The PR remains draft and blocked on maintainer/domain review of transferability and the dependency gate. The source is TurtleBot/indoor-simulator research; any later comparison must retain sensor, embodiment, perception, and proxy boundaries. No compute or benchmark campaign is authorized by this review.
|
|
Autopilot exact-head admission carrier for PR #7357. At head base-policy: ordinary-cas @ 73ca7b0 |
ll7
left a comment
There was a problem hiding this comment.
Reviewed the refreshed exact head d659f1a8ac7a367bc2bdb9a7d91fc2256860d071 from the current origin/main base 69bf08968dfc528221518a6bde29ef4a2e889754.
Evidence:
- The source branch was refreshed by a clean merge of current
origin/main; the CALF/LegNav comparator source is unchanged from the previously reviewed implementation. - Focused comparator, policy-search diagnostics, and benchmark-namespace tests: 56 passed.
- Final
pr_ready_checkcompleted at2026-08-21T10:31:28.559835+00:00; comparator coverage is 92.0% (230/250), above the 80% floor, with CPU/provider-free execution. Readiness stamp SHA:e0efbb74810dfca2afc008963e4ff2ea1c8b2b31e120febfd95b42136419a92b. - Hosted checks are terminal and green, including
pr-contract-check,pr-body-contracts, andchanged-coverage-gate.coverage-gateandmerge-queue-gateare the expected skipped jobs for this draft/diagnostic lane. - Reconciled PR-body metadata digest:
ab4e88aa57d543fbae5499c71909e147c621794d0e7fcf485b01a138fb6cbebb.
Review conclusion: the current-main refresh is review-ready as a diagnostic-only research contribution. This review does not establish external CALF/LegNav parity, benchmark superiority, safety, or paper-facing claims. The PR remains a draft and is blocked by its declared external dependency labels; no merge is requested while those blockers remain.
ll7
left a comment
There was a problem hiding this comment.
Exact-head research comparator review — PR #7357
Reviewed exact head af60709a9087c85a93744f3f6893347db7511689 against the current local
origin/main / base 75387dd4dbbaac7f23474b6785df1327ad31dc8d in linked worktree
/home/luttkule/git/robot_sf_ll7.worktrees/pr-7357-live-7538-20260821.
No actionable implementation or local provenance finding remains in the comparator diff. The
implementation correctly keeps the paired observation contracts, execution provenance, malformed
trace handling, conservative distance sampling, exact/proxy metric mapping, and external CALF/
LegNav non-parity boundary explicit.
Evidence:
- 56 focused comparator/diagnostic/namespace tests passed.
- Provider-free dry-run emitted both condition commands; the actual smoke completed with
status=available,evidence_status=diagnostic-only, and zero runner errors. It is one paired
deterministic episode with no uncertainty estimate and is not research or benchmark evidence. - Fast-lane routing, docs/evidence integrity, docs/proof consistency, Ruff 0.16.3, compilation, and
git diff --checkpassed. - Final readiness reached 5,009 passed tests and 5 skips, then failed closed on current-main-only
defects: reopened #7634 (evidence-registry review companion) and new #7692 (production assertion
inventory). No final readiness stamp was recorded. - No external provider, CALF policy, LegNav simulator, benchmark campaign, safety result, transfer
result, or paper-facing claim was produced.
The PR remains diagnostic-only and draft. Independent domain approval for research/benchmark
semantics, the #7318 parent decision, and current-main readiness friction remain blockers; withhold
merge-ready.
trusted-review: no findings @ af60709
base-policy: ordinary-cas/current-base @ 75387dd
pr-metadata: reconciled @ e9325913c98371c8a79c9b5cdb24a3389d3300c57b33d7de5bb8b6fde4bd4933
gate-verdict: blocked @ af60709
merge-ready: no @ af60709
|
Exact-head review receipt for PR #7357: implementation/provenance review found no actionable findings. The PR remains blocked and draft. Independent domain approval for research/benchmark semantics, base-policy: ordinary-cas/current-base @ 75387dd |
Current-base review handoff
|
Current-base review handoff — 2026-08-22
Disposition remains |
Current-base review handoff — 2026-08-22
Disposition remains |
ll7
left a comment
There was a problem hiding this comment.
Exact-head research comparator review — PR #7357
Reviewed and advanced the pushed head 67348d8a725e80f2e4e38ca414d66581208636d5 against PR base
66c07e171b87da1166e390de18abac101413ba96. Current origin/main observed by the final snapshot is
0f9d0a9928bba055458df2b3b3a405f2ef845f60.
Changes made
- Pushed
67348d8a725e80f2e4e38ca414d66581208636d5(fix(research): fail closed paired comparator outcomes). - Paired traces now require matching effective algorithm identity.
- An unavailable or mislabelled observation contract now blocks that condition's metric values and
paired deltas instead of leaving a misleading available contrast. - Timeout inference now distinguishes a terminated full-horizon episode from horizon truncation.
- Updated the PR body with exact pushed-head metadata, blocked smoke evidence, and the revised claim
boundary. Metadata reconciliation returned digest
e88693613f93dcaa5a709a9e6fea54b5b9ddee2cab2e07a017f23703d9457b04.
Evidence
- Focused comparator/diagnostic/namespace proof:
58 passed; Ruff check/format andgit diff --check
passed. - Dry-run emitted both expected paired commands for candidate
ppo_issue791_best_v1, scenario
issue_2756_occluded_emergence, seed111, horizon12. - Canonical smoke is schema-valid but
status=blockedwith two runner errors. Both conditions stop
before writing traces becausestable_baselines3is not installed. The optional-dependency probe
independently reports missingstable_baselines3,torch, and other training extras. This is
environment/setup evidence, not a changed-code failure; no policy episode executed. - The registry-pinned PPO release artifact was hydrated only in ignored local cache; its local SHA-256
matches the registry value
2b30df812bfcc737924b126b0763d69c567fe20716dc1c1eba8f56f926b49c1dand size93662266bytes. - Current-base merge-tree auto-merges the docs and namespace-manifest changes but has one content
conflict intests/conftest.py. The PR remains base-stale and mergeableCONFLICTING. - Final live snapshot: PR open/draft; labels include
dependency:has-blockers,
domain-review-required, andstate:blocked; reported checks are 2 terminal successes with no
failures; unresolved review threads0; no gate-verdict acceptance exists for this pushed head.
Disposition
blocked_external; keep draft, state:blocked, dependency-blocked, and domain-review-required.
No merge-ready label, approval, benchmark claim, safety claim, transfer claim, or paper-facing claim
is authorized.
Next admission step
- Install the repository training extras on a suitable execution host and rerun the canonical smoke;
require both native conditions to produce traces with no runner errors or fallback/degraded status. - Refresh the PR against current
origin/main, resolvetests/conftest.pywhile preserving all
current-main fast-shard registrations, and rerun focused/full readiness proof. - Obtain independent domain approval and the parent #7318 decision before any stronger evidence
admission.
Exact head: 67348d8
gate-verdict: blocked @ 67348d8
merge-ready: no @ 67348d8
Bind each paired condition slot to the observation contract actually observed in its trace. A perfect_perception slot whose trace reports perception_limited (or vice versa) now marks the condition unavailable/blocked instead of reporting a mislabelled contrast as available evidence. Also add horizon to the paired identity check so the two rows cannot differ in replay length. Refs #7318 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> (cherry picked from commit f9a3f399967e64fb491383e5501216c7c3519cf9)
67348d8 to
78a1005
Compare
|
Final exact-head review for
|
Summary
Implements #7318 as a bounded CALF/LegNav-inspired Robot SF comparator diagnostic. It runs the
same local PPO candidate, scenario, and seed under ideal and perception-limited observation
contracts, records paired local trace metrics, and preserves explicit blocked, unavailable, and
qualified-proxy fields.
The comparator does not execute the external CALF policy, LegNav simulator, calibrated leg sensor,
TurtleBot 4 deployment, or source training recipe. Its output is diagnostic-only and is not
benchmark, safety, transfer, or paper-facing evidence.
Research / Evidence Boundary
perception-limited observations for one local policy smoke.
contracts; no external policy parity or scientific comparator is asserted.
estimate uncertainty or support a research conclusion.
distance fields; every action must expose at least one distance field, and incomplete distance
coverage is unavailable rather than silently reduced to a partial denominator.
done_info.successcannot be overridden by a true row-levelis_success; contradictory outcomes are unavailable.missing traces, runner errors, schema mismatch, missing or contradictory fallback/degraded
verdicts, or unknown source fields remain blocked or unavailable.
Exact Refresh
eeb42cfdacf540078dd640a5797b8049743a1026.78a10050c15738820d467d78d020e4f4c02af9e6.research/issue-7318-calf.origin/main; thetests/conftest.pyfast-lane conflict was resolved while retaining all current registrationsand the CALF comparator test registration.
Repair
metrics as unavailable when any executed row lacks both distance fields.
true row success flag instead of combining them with an unconditional
or.Domain-Aware Approval
execution handling, current-base integration, and CALF/LegNav claim boundaries.
PR remains held as
draft,state:blocked, anddomain-review-required.but it is not claimed as trusted domain approval or a waiver.
no CALF/LegNav performance or transfer hypothesis is tested.
same-seed traces with per-action distance completeness and explicit metric availability.
verdicts, incomplete traces, and unavailable native prerequisites remain blocked/unavailable.
transfer, or paper-facing claim.
external-policy parity, multi-seed uncertainty, and experimental validity remain unproved.
Validation / Proof
reported available and contradictory success was accepted.
findings=0.robot_sf/benchmark/calf_legnav_comparator.py92.9% (247/266 executablelines), above the 80% minimum. The remaining uncovered paths are diagnostic/error branches; no
coverage threshold was weakened.
git diff --check: passed.training/runtime artifacts and dependencies (
stable_baselines3/torch) are not hydrated. Nopolicy episode, CALF parity result, uncertainty estimate, or benchmark result was produced.
native prerequisites are absent; fallback/degraded execution is not success evidence.
Follow-Up Issues
embodiment, real-manifest, multi-seed, multi-scenario, and uncertainty decisions.
canonical smoke; fallback mode must remain excluded from success evidence.
Gate
This branch is rebased and the bounded diagnostic contracts are repaired, but the PR remains a
draft and blocked. Hosted checks, local contract tests, and local readiness are not research
admission. No merge-ready label or merge is requested while native artifact availability,
independent domain approval, and the parent research decision remain unresolved.
Exact head: 78a1005
gate-verdict: blocked @ 78a1005
merge-ready: no @ 78a1005
compute: none
PR Metadata
eeb42cfdacf540078dd640a5797b8049743a1026.78a10050c15738820d467d78d020e4f4c02af9e6./home/luttkule/git/robot_sf_ll7.worktrees/fix-pr-7357-cycle14.