Skip to content

fix(desktop): register the relocated notification bridge actions with flow lint - #11984

Closed
aryanorastar wants to merge 1 commit into
BasedHardware:mainfrom
aryanorastar:fix/flow-lint-relocated-notification-actions
Closed

fix(desktop): register the relocated notification bridge actions with flow lint#11984
aryanorastar wants to merge 1 commit into
BasedHardware:mainfrom
aryanorastar:fix/flow-lint-relocated-notification-actions

Conversation

@aryanorastar

@aryanorastar aryanorastar commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Summary

desktop-flow-lint currently fails on main. Two bridge actions were relocated to a new file without adding that file to the contract list the lint reads, so both became invisible and the flow that references them fails.

Cause

d5596a6 ("refactor(macos): relocate journal copy + notification bridge actions to satisfy line-count ratchet") moved settings_notifications_snapshot and set_notification_settings out of DesktopAutomationBridge.swift into DesktopAutomationBridge+Notifications.swift, but left ACTION_SOURCE_RELATIVE_PATHS in desktop/macos/scripts/desktop_flow_contract.py unchanged.

The lint reads registered actions only from that list. notifications-settings.yaml still references both actions, so on current 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)

This is main-wide rather than branch-specific: every desktop PR that merges current main inherits a red desktop-core-e2e-t0. It went unnoticed because main's own Desktop Backend Contracts runs are sitting at action_required rather than executing, so nothing re-ran the lint after the relocation.

Fix

One line: add the relocated file to ACTION_SOURCE_RELATIVE_PATHS.

That file's own comment states the intent this restores — "Keep the flow lint reader and CI impact resolver on this single list so an added bridge action cannot skip its flow validation route." A relocated action is an added action as far as that list is concerned.

Verification

  • Pristine origin/main (41afef9b) reproduces both errors — this is not introduced by any branch.
  • With this line: desktop-flow-lint OK (72 flows, 162 registered actions), up from 161.
  • Guard proven live: removing the line again reproduces the same 2 errors, so the fix is doing the work rather than the failure having moved.
  • desktop/macos/tests/test-e2e-flow-coverage.sh — passed.
  • .github/scripts/test_pre_push_ci_prediction.py — 22 passed (the other consumer of this contract).

Honest gaps

No new test. The lint itself is the guard, it already runs in the desktop-core-e2e-t0 lane, and it fails correctly when the entry is absent — a test asserting the list contains a specific string would be a static tripwire restating the data, not behavioural coverage.

Failure-Class: none

Review in cubic

… flow lint

d5596a6 moved settings_notifications_snapshot and set_notification_settings
out of DesktopAutomationBridge.swift into DesktopAutomationBridge+Notifications.swift
to satisfy the line-count ratchet, but did not add the new file to
ACTION_SOURCE_RELATIVE_PATHS. The flow lint reads registered actions only from
that list, so both actions became invisible and notifications-settings.yaml —
which still references them — now fails on 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)

This is main-wide, not specific to any branch: every desktop PR that merges
current main inherits a red desktop-core-e2e-t0. It went unnoticed because
main's own Desktop Backend Contracts runs are sitting at action_required
rather than executing.

The contract file's own comment states the intent this restores — "Keep the
flow lint reader and CI impact resolver on this single list so an added bridge
action cannot skip its flow validation route." A relocated action is an added
action as far as that list is concerned.

Verification:
- pristine origin/main (41afef9) reproduces both errors
- with this line: desktop-flow-lint OK (72 flows, 162 registered actions), up
  from 161
- guard proven live: removing the line again reproduces the same 2 errors
- desktop/macos/tests/test-e2e-flow-coverage.sh -> passed
- .github/scripts/test_pre_push_ci_prediction.py -> 22 passed (the other
  consumer of this contract)

Failure-Class: none
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@aryanorastar

Copy link
Copy Markdown
Contributor Author

Tracking issue with the full reproduction and the wider concern: #11985.

Also blocking #11804, which surfaced this by merging current main — that PR's own desktop-flow-lint failure is this bug, not its diff.

@aryanorastar

Copy link
Copy Markdown
Contributor Author

Closing — main fixed this independently while the PR was open, and this diff is now a literal no-op.

4d7c209e (#11962) added the same Desktop/Sources/DesktopAutomationBridge+Notifications.swift entry to ACTION_SOURCE_RELATIVE_PATHS. Verified against current main (78028bf4):

$ git diff origin/main HEAD -- desktop/macos/scripts/desktop_flow_contract.py
(no output — identical)

$ git archive origin/main | tar -x -C /tmp/mainlint && cd /tmp/mainlint
$ python3 desktop/macos/scripts/desktop-flow-lint.py
desktop-flow-lint OK (72 flows, 162 registered actions)

The bug was real and reproducible when I filed this: main was at 41afef9b (2026-08-20 23:16) and failed both checks. 4d7c209e landed at 00:09 the next morning, 53 minutes later, and carried the fix along with unrelated memory-TTL work. My reproduction was accurate for the main that existed at the time; it just stopped being the current main.

Nothing to merge here. Tracking issue #11985 updated with the same finding — leaving that open only for the wider point it raises, which #11962 does not address: nothing enforces that a file defining a bridge action appears on that list, so the next relocation defeats it the same way.

@github-actions

Copy link
Copy Markdown
Contributor

Hey @aryanorastar 👋

Thank you so much for taking the time to contribute to Omi! We truly appreciate you putting in the effort to submit this pull request.

After careful review, we've decided not to merge this particular PR. Please don't take this personally — we genuinely try to merge as many contributions as possible, but sometimes we have to make tough calls based on:

  • Project standards — Ensuring consistency across the codebase
  • User needs — Making sure changes align with what our users need
  • Code best practices — Maintaining code quality and maintainability
  • Project direction — Keeping aligned with our product principles and locked invariants

Before your next PR, please skim:

  • PRODUCT.md — product north star
  • Product invariants — locked rules (shared chat, memory tiers, agent control plane, integrations, brand)

If this was declined for direction or taste, maintainers should cite an invariant ID or open a proposed one — ask if that citation is missing.

Your contribution is still valuable to us, and we'd love to see you contribute again in the future! If you'd like feedback on how to improve this PR or want to discuss alternative approaches, please don't hesitate to reach out.

Thank you for being part of the Omi community!

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