desktop-flow-lint fails on current main (41afef9b), which reddens desktop-core-e2e-t0 for every desktop PR that merges main.
notifications-settings.yaml: unknown bridge action 'settings_notifications_snapshot'
notifications-settings.yaml: unknown bridge action 'set_notification_settings'
desktop-flow-lint: 2 error(s)
Reproduce against a pristine checkout of main, no branch involved:
git archive origin/main | tar -x -C /tmp/mainlint
cd /tmp/mainlint && python3 desktop/macos/scripts/desktop-flow-lint.py
Cause. d5596a6 ("refactor(macos): relocate journal copy + notification bridge actions to satisfy line-count ratchet") moved settings_notifications_snapshot and set_notification_settings from DesktopAutomationBridge.swift into the new DesktopAutomationBridge+Notifications.swift, but did not add that file to ACTION_SOURCE_RELATIVE_PATHS in desktop/macos/scripts/desktop_flow_contract.py. The lint reads registered actions only from that list, so both actions became invisible while notifications-settings.yaml still references them.
Why it went unnoticed. Main's own Desktop Backend Contracts runs are sitting at action_required rather than executing, so nothing re-ran the lint after the relocation. The first signal was PRs merging main and inheriting the failure.
Fix is one line, opened as #11984.
Worth a second look beyond the one-liner: the contract file's comment says the list exists "so an added bridge action cannot skip its flow validation route", but nothing currently enforces that a file defining a bridge action appears on it. A relocation silently defeats it. A check that every file matching the action-registration shape is present in ACTION_SOURCE_RELATIVE_PATHS would make this mechanical rather than depending on the author remembering — worth considering, though I'd rather land the one-line unblock first and let a maintainer decide whether the stronger guard is wanted.
Also worth a maintainer's attention separately: action_required on main's contract runs means this lane is not actually gating main right now.
desktop-flow-lintfails on currentmain(41afef9b), which reddensdesktop-core-e2e-t0for every desktop PR that merges main.Reproduce against a pristine checkout of main, no branch involved:
Cause.
d5596a6("refactor(macos): relocate journal copy + notification bridge actions to satisfy line-count ratchet") movedsettings_notifications_snapshotandset_notification_settingsfromDesktopAutomationBridge.swiftinto the newDesktopAutomationBridge+Notifications.swift, but did not add that file toACTION_SOURCE_RELATIVE_PATHSindesktop/macos/scripts/desktop_flow_contract.py. The lint reads registered actions only from that list, so both actions became invisible whilenotifications-settings.yamlstill references them.Why it went unnoticed. Main's own Desktop Backend Contracts runs are sitting at
action_requiredrather than executing, so nothing re-ran the lint after the relocation. The first signal was PRs merging main and inheriting the failure.Fix is one line, opened as #11984.
Worth a second look beyond the one-liner: the contract file's comment says the list exists "so an added bridge action cannot skip its flow validation route", but nothing currently enforces that a file defining a bridge action appears on it. A relocation silently defeats it. A check that every file matching the action-registration shape is present in
ACTION_SOURCE_RELATIVE_PATHSwould make this mechanical rather than depending on the author remembering — worth considering, though I'd rather land the one-line unblock first and let a maintainer decide whether the stronger guard is wanted.Also worth a maintainer's attention separately:
action_requiredon main's contract runs means this lane is not actually gating main right now.