Skip to content

safety: use the global watchdog configuration - #2453

Draft
adeebshihadeh wants to merge 1 commit into
masterfrom
safety-tick-no-args
Draft

adeebshihadeh wants to merge 1 commit into
masterfrom
safety-tick-no-args

Conversation

@adeebshihadeh

Copy link
Copy Markdown
Contributor

Updates the firmware caller for commaai/opendbc#3759. Depends on that opendbc change.

SpysyWeeb added a commit to SpysyWeeb/Spysypilot that referenced this pull request Sep 14, 2026
opendbc_repo 88505d3e7 -> e7eca010a (SpysyWeeb/opendbc BLaTv3, 2026-09-12).
panda stays at commaai 5314c84d9.

The pinned pair no longer built. commaai/opendbc 95195b31 ("safety: enable 100%
branch coverage, part 2", 2026-09-12) changed the hook to `void safety_tick(void)`.
The fork's BLaTv3 branch merged commaai master past that point, so 88505d3e7
declares `safety_tick(void)`, but panda 5314c84d9 calls
`safety_tick(&current_safety_config)` (board/main.c:242). The matching panda change
is still open as commaai/panda#2453. Upstream openpilot pins opendbc a3d3b7c6c and
panda 5314c84d9, and both use the argument form.

The rule: a consumer branch's panda/opendbc gitlink may only point at the newest
first-parent commit of its tracked fork branch whose merge-base with commaai
master is an ancestor of the commit upstream openpilot pins. If a submodule points
at commaai directly, the target is upstream openpilot's pin. On this branch panda
points at commaai directly and already equals upstream's pin. Upstream only bumps
panda and opendbc together once both build, so taking our pin from theirs means we
get the same guarantee.

Evidence:
  merge-base(e7eca010a, commaai/master) = a3d3b7c6c, which is upstream openpilot's
  pin; e7eca010a declares `void safety_tick(const safety_config *cfg)`, matching
  panda 5314c84d9.
  e7eca010a is the newest first-parent commit on the fork's BLaTv3 branch that
  qualifies. The 19 non-merge commits between it and the old pin all came from
  commaai master, and no fork-owned path differs.

This is where the rule puts the pin now, not a stopgap. The target moves forward
once commaai/panda#2453 merges and upstream openpilot bumps its pair. BLaTv3 is
not in sync-submodules.yaml's matrix, so nothing moves this pin automatically
yet.

Verified on GitHub Actions, engagement-smoke dispatched on a probe of this tree:
scons built every target, including the signed panda firmware against opendbc
e7eca010a; pytest then passed 257 tests across test_torqued, test_car_interfaces and the modeld tests, and the cereal import and upstream-field check were clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
SpysyWeeb added a commit to SpysyWeeb/Spysypilot that referenced this pull request Sep 14, 2026
opendbc_repo c76a2eead -> 33f0bb7df (SpysyWeeb/opendbc Spysypilot, 2026-09-12).
panda stays at 8a7c80aa0.

The pinned pair no longer built. commaai/opendbc 95195b31 ("safety: enable 100%
branch coverage, part 2", 2026-09-12) changed the hook to `void safety_tick(void)`.
The fork's Spysypilot branch merged commaai master past that point, so c76a2eead
declares `safety_tick(void)`, but panda 8a7c80aa0 still calls
`safety_tick(&current_safety_config)` (board/main.c:244). The matching panda change
is still open as commaai/panda#2453. Upstream openpilot pins opendbc a3d3b7c6c and
panda 5314c84d9, and both use the argument form.

The rule: a consumer branch's panda/opendbc gitlink may only point at the newest
first-parent commit of its tracked fork branch whose merge-base with commaai
master is an ancestor of the commit upstream openpilot pins. If a submodule points
at commaai directly, the target is upstream openpilot's pin. Upstream only bumps
panda and opendbc together once both build, so taking our pin from theirs means we
get the same guarantee.

Evidence:
  merge-base(33f0bb7df, commaai/master) = a3d3b7c6c, which is upstream openpilot's
  pin; 33f0bb7df declares `void safety_tick(const safety_config *cfg)`, matching
  panda 8a7c80aa0 (whose own commaai base is 5314c84d9, upstream's panda pin).
  33f0bb7df is the newest first-parent commit on Spysypilot that qualifies. The
  19 non-merge commits between it and the old pin all came from commaai master.
  opendbc/safety/spysypilot/aol.h and aol_types.h are byte-identical at c76a2eead
  and 33f0bb7df.

This is where the rule puts the pin now, not a stopgap. The target moves forward
once commaai/panda#2453 merges and upstream openpilot bumps its pair.

sync-submodules.yaml runs daily from combo, the default branch, with SOL in its
matrix. It still advances each submodule to its tracked fork-branch tip, so it
will try c76a2eead again; its build step fails on the safety_tick mismatch
before the push, so it cannot land it.

Verified on GitHub Actions, engagement-smoke dispatched on a probe of this tree:
scons built every target, including the signed panda firmware against opendbc
33f0bb7df; pytest then passed 251 tests across test_torqued and test_car_interfaces, and the cereal import and upstream-field check were clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant