Skip to content

Home since rc.1: Camera agent's camera.notify is refused (family collision with the device camera service) #408

Open

Description

@ymote

Found by the host-API family audit (App Hub #172), by reading the code. Not reproduced on a device.

What happens: in the phone shell, the device camera service (platform services) registers before the shell's notice service. glance_notice::serve_system_apps() skips any family that already has a service. So os.camera, which ships only in the phone build, never gets a notice service. Its agent's declared tool camera.notify reaches the device service instead, which refuses it ("Device methods require an empty object"). This worked at beta.1 and beta.2 and broke at rc.1, when the device service started taking the camera family on phone.

Why tests miss it: glance_notice's test (system_apps_without_a_service_of_their_own_get_the_notice_service) runs on the desktop system-app list, where os.camera isn't present.

Fix options:

  1. The device camera service answers notify by handing it to glance_notice::notify, the way Mail and News hand theirs over through on_notify.
  2. os.camera gets its own namespace service, as os.photos did on main.
  3. Rename one family. That breaks callers, so it's not preferred.

Add a phone-shell test that asserts every system app declaring <namespace>.notify reaches a service that answers it.

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions